2019-08-09 12:51:42 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
2020-04-28 10:03:01 +00:00
|
|
|
set -eou pipefail
|
2019-08-15 07:02:43 +00:00
|
|
|
|
2020-05-02 11:25:38 +00:00
|
|
|
BABASHKA_XMX=${BABASHKA_XMX:-"-J-Xmx4500m"}
|
2020-01-09 10:19:48 +00:00
|
|
|
|
2020-03-30 18:29:08 +00:00
|
|
|
if [ -z "$GRAALVM_HOME" ]; then
|
|
|
|
|
echo "Please set GRAALVM_HOME"
|
|
|
|
|
exit 1
|
2020-03-29 14:07:30 +00:00
|
|
|
fi
|
|
|
|
|
|
2020-04-28 10:03:01 +00:00
|
|
|
BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
|
|
|
|
|
|
|
|
|
|
BABASHKA_JAR=${BABASHKA_JAR:-"target/babashka-$BABASHKA_VERSION-standalone.jar"}
|
|
|
|
|
|
|
|
|
|
if [[ ! -f "$BABASHKA_JAR" ]]
|
|
|
|
|
then
|
|
|
|
|
echo "Please run script/uberjar first."
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2020-04-30 10:39:44 +00:00
|
|
|
"$GRAALVM_HOME/bin/gu" install native-image
|
2019-08-09 12:51:42 +00:00
|
|
|
|
2020-01-09 10:11:12 +00:00
|
|
|
export JAVA_HOME=$GRAALVM_HOME
|
2020-05-23 12:53:28 +00:00
|
|
|
export PATH=$GRAALVM_HOME/bin:$PATH
|
2020-01-09 10:11:12 +00:00
|
|
|
|
2021-01-19 23:30:26 +00:00
|
|
|
rm -rf resources/*.class
|
2020-07-16 07:40:34 +00:00
|
|
|
SVM_JAR=$(find -L "$GRAALVM_HOME" | grep svm.jar)
|
2020-04-30 10:39:44 +00:00
|
|
|
"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java
|
2020-12-05 19:56:12 +00:00
|
|
|
"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffSunAwtWwwContentAudioAiff.java
|
2020-03-06 15:55:52 +00:00
|
|
|
|
2020-05-23 12:53:28 +00:00
|
|
|
if [ -z "$BABASHKA_JAR" ]; then
|
|
|
|
|
lein with-profiles +reflection,+native-image "do" run
|
|
|
|
|
lein "do" clean, uberjar
|
|
|
|
|
BABASHKA_JAR=${BABASHKA_JAR:-"target/babashka-$BABASHKA_VERSION-standalone.jar"}
|
|
|
|
|
fi
|
2020-04-28 10:03:01 +00:00
|
|
|
|
2020-03-30 18:29:08 +00:00
|
|
|
BABASHKA_BINARY=${BABASHKA_BINARY:-"bb"}
|
2020-03-29 14:07:30 +00:00
|
|
|
|
2020-04-30 10:39:44 +00:00
|
|
|
args=( "-jar" "$BABASHKA_JAR"
|
|
|
|
|
"-H:Name=$BABASHKA_BINARY"
|
|
|
|
|
"-H:+ReportExceptionStackTraces"
|
|
|
|
|
"-J-Dclojure.spec.skip-macros=true"
|
|
|
|
|
"-J-Dclojure.compiler.direct-linking=true"
|
|
|
|
|
"-H:IncludeResources=BABASHKA_VERSION"
|
|
|
|
|
"-H:IncludeResources=SCI_VERSION"
|
|
|
|
|
"-H:ReflectionConfigurationFiles=reflection.json"
|
|
|
|
|
"--initialize-at-build-time"
|
2020-12-05 19:56:12 +00:00
|
|
|
# "-H:+PrintAnalysisCallTree"
|
2020-04-30 10:39:44 +00:00
|
|
|
"-H:Log=registerResource:"
|
2020-08-12 07:34:38 +00:00
|
|
|
"-H:EnableURLProtocols=http,https,jar"
|
2020-04-30 10:39:44 +00:00
|
|
|
"--enable-all-security-services"
|
|
|
|
|
"-H:+JNI"
|
|
|
|
|
"--verbose"
|
|
|
|
|
"--no-fallback"
|
|
|
|
|
"--no-server"
|
|
|
|
|
"--report-unsupported-elements-at-runtime"
|
|
|
|
|
"--initialize-at-run-time=org.postgresql.sspi.SSPIClient"
|
2020-12-05 19:56:12 +00:00
|
|
|
"--native-image-info"
|
|
|
|
|
"--verbose"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileReader"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileReader"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.MixerProvider"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.FormatConversionProvider"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.sampled.spi.AudioFileWriter"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiDeviceProvider"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.SoundbankReader"
|
|
|
|
|
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileWriter"
|
2020-04-30 10:39:44 +00:00
|
|
|
"$BABASHKA_XMX" )
|
2020-02-23 11:04:18 +00:00
|
|
|
|
2020-04-28 10:03:01 +00:00
|
|
|
BABASHKA_STATIC=${BABASHKA_STATIC:-}
|
|
|
|
|
|
2020-02-23 11:04:18 +00:00
|
|
|
if [ "$BABASHKA_STATIC" = "true" ]; then
|
|
|
|
|
args+=("--static")
|
|
|
|
|
fi
|
|
|
|
|
|
2020-04-30 10:20:00 +00:00
|
|
|
BABASHKA_FEATURE_HSQLDB=${BABASHKA_FEATURE_HSQLDB:-}
|
|
|
|
|
|
2020-04-26 11:10:30 +00:00
|
|
|
if [ "$BABASHKA_FEATURE_HSQLDB" = "true" ]; then
|
2020-04-30 10:39:44 +00:00
|
|
|
args+=("-H:IncludeResources=org/hsqldb/.*\.properties" "-H:IncludeResources=org/hsqldb/.*\.sql")
|
2020-04-26 11:10:30 +00:00
|
|
|
fi
|
|
|
|
|
|
2020-04-30 10:39:44 +00:00
|
|
|
BABASHKA_LEAN=${BABASHKA_LEAN:-}
|
|
|
|
|
|
2020-04-30 10:20:00 +00:00
|
|
|
if [ "$BABASHKA_LEAN" = "true" ]
|
|
|
|
|
then
|
2020-11-12 18:59:21 +00:00
|
|
|
# Remove all the default features, unless explicitly set to true:
|
|
|
|
|
export BABASHKA_FEATURE_XML="${BABASHKA_FEATURE_XML:-false}"
|
|
|
|
|
export BABASHKA_FEATURE_YAML="${BABASHKA_FEATURE_YAML:-false}"
|
|
|
|
|
export BABASHKA_FEATURE_CORE_ASYNC="${BABASHKA_FEATURE_CORE_ASYNC:-false}"
|
|
|
|
|
export BABASHKA_FEATURE_CSV="${BABASHKA_FEATURE_CSV:-false}"
|
|
|
|
|
export BABAHSKA_FEATURE_TRANSIT="${BABAHSKA_FEATURE_TRANSIT:-false}"
|
|
|
|
|
export BABASHKA_FEATURE_JAVA_TIME="${BABASHKA_FEATURE_JAVA_TIME:-false}"
|
|
|
|
|
export BABASHKA_FEATURE_JAVA_NIO="${BABASHKA_FEATURE_JAVA_NIO:-false}"
|
|
|
|
|
export BABASHKA_FEATURE_HTTPKIT_CLIENT="${BABASHKA_FEATURE_HTTPKIT_CLIENT:-false}"
|
|
|
|
|
export BABASHKA_FEATURE_HTTPKIT_SERVER="${BABASHKA_FEATURE_HTTPKIT_SERVER:-false}"
|
2021-01-23 13:02:00 +00:00
|
|
|
export BABASHKA_FEATURE_CORE_MATCH="${BABASHKA_FEATURE_CORE_MATCH:-false}"
|
2021-01-23 21:47:35 +00:00
|
|
|
export BABASHKA_FEATURE_HICCUP="${BABASHKA_FEATURE_HICCUP:-false}"
|
2020-04-30 10:20:00 +00:00
|
|
|
fi
|
|
|
|
|
|
2020-04-30 10:39:44 +00:00
|
|
|
"$GRAALVM_HOME/bin/native-image" "${args[@]}"
|