babashka/script/compile

60 lines
1.6 KiB
Text
Raw Normal View History

2019-08-09 12:51:42 +00:00
#!/usr/bin/env bash
2019-08-15 07:02:43 +00:00
set -eo pipefail
2020-01-09 10:28:11 +00:00
if [ -z "$BABASHKA_XMX" ]; then
2020-01-09 10:19:48 +00:00
export BABASHKA_XMX="-J-Xmx3g"
fi
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-03-30 18:29:08 +00:00
$GRAALVM_HOME/bin/gu install native-image
2020-01-09 10:11:12 +00:00
2019-08-09 12:51:42 +00:00
BABASHKA_VERSION=$(cat resources/BABASHKA_VERSION)
2020-01-09 10:11:12 +00:00
export JAVA_HOME=$GRAALVM_HOME
2020-04-18 16:10:32 +00:00
SVM_JAR=$(find "$GRAALVM_HOME" | grep svm.jar)
$GRAALVM_HOME/bin/javac -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java
2020-03-30 18:29:08 +00:00
if [ -z "$BABASHKA_JAR" ]; then
lein with-profiles +reflection do run
lein do clean, uberjar
BABASHKA_JAR=${BABASHKA_JAR:-"target/babashka-$BABASHKA_VERSION-standalone.jar"}
2020-03-29 14:07:30 +00:00
fi
2020-03-30 18:29:08 +00:00
BABASHKA_BINARY=${BABASHKA_BINARY:-"bb"}
2020-03-29 14:07:30 +00:00
2020-03-30 18:29:08 +00:00
args=( -jar $BABASHKA_JAR \
-H:Name=$BABASHKA_BINARY \
2020-02-23 11:04:18 +00:00
-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-run-time=java.lang.Math\$RandomNumberGeneratorHolder \
--initialize-at-build-time \
-H:Log=registerResource: \
2020-04-16 18:57:59 +00:00
-H:EnableURLProtocols=http,https \
2020-02-23 11:04:18 +00:00
--enable-all-security-services \
-H:+JNI \
--verbose \
--no-fallback \
--no-server \
--report-unsupported-elements-at-runtime \
2020-02-23 11:04:18 +00:00
"$BABASHKA_XMX" )
if [ "$BABASHKA_STATIC" = "true" ]; then
args+=("--static")
fi
$GRAALVM_HOME/bin/native-image "${args[@]}"
2019-08-09 12:51:42 +00:00
2020-03-30 18:29:08 +00:00
if [ ! -z "$(command -v lein)" ]; then
lein clean
fi