Merge branch 'develop' into releases/Release_2_11_2_Branch
[jalview.git] / utils / jdeps_jlink_all.sh
1 #/usr/bin/env bash
2
3 # Be in the jalview top level dir.
4 # lib -- contains usual jalview jar files
5 #        make sure it contains the extra jar files needed in classpath for Java 11
6 # j11lib -- contains java11 style modules to be put into the JRE (not needed at runtime)
7 #
8 # j11jre -- dir containing JRE environments for jalview
9 #
10 # creates file modules.new which is comma-separated list of modules needed, can be used like this in jlink argument
11 # and a java 11 JRE in j11jre/jre-new
12
13 ( for x in lib/*.jar j11lib/*.jar dist/jalview.jar; do echo $x >&2; jdeps --list-deps --module-path j11lib $x | grep -v Warning: | grep -v "JDK removed" | sed -e 's/^ *//;s/\/.*//;s/$/,/;'; done ) | sort -u | perl -p -e 'chomp;' | perl -p -e 's/,$//;chomp;' > modules.new
14
15 if [ x$JAVA_HOME != x ]; then
16   jlink --no-header-files --no-man-pages --strip-debug --module-path "$JAVA_HOME/jmods:j11lib" --add-modules `cat modules.new` --compress=2 --output j11jre/jre-new
17 else
18   jlink --no-header-files --no-man-pages --strip-debug --module-path "j11lib" --add-modules `cat modules.new` --compress=2 --output j11jre/jre-new
19 fi
20
21
22 # or if you're in a hurry for a one-liner...
23 #jlink --no-header-files --no-man-pages --strip-debug --module-path "$JAVA_HOME/jmods:j11lib" --add-modules ` ( for x in lib/*.jar j11lib/*.jar dist/jalview.jar; do echo $x >&2; jdeps --list-deps --module-path j11mod $x | grep -v "Warning:" | grep -v "JDK removed" | sed -e 's/^ *//;s/\/.*//;s/$/,/;'; done ) | sort -u | perl -p -e 'chomp;' | perl -p -e 's/,$//;chomp;' ` --compress=2 --output j11jre/jre-new