From cdf829c75e3524534f7ad0c4b57da198e8293f0e Mon Sep 17 00:00:00 2001 From: Michael Kebe Date: Fri, 22 Jan 2021 01:02:53 +0100 Subject: [PATCH] moved from gradle graalvm-native-image plugin to native-build.sh --- build.gradle | 30 +++++++++--------------------- native-build.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 21 deletions(-) create mode 100755 native-build.sh diff --git a/build.gradle b/build.gradle index 1046bcb7..db952979 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,6 @@ -plugins { - id 'java' - id 'application' - id 'eclipse' - id 'org.mikeneck.graalvm-native-image' version '1.1.0' -} +apply plugin: 'java' +apply plugin: 'application' +apply plugin: 'eclipse' sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 @@ -27,21 +24,6 @@ dependencies { implementation 'org.slf4j:slf4j-simple:1.7.30' } -nativeImage { - mainClass = mainClassName - executableName = 'signal-cli' - arguments( - "--no-fallback", - "--allow-incomplete-classpath", - "--report-unsupported-elements-at-runtime", - "--enable-url-protocols=http,https", - "--enable-https", - "--enable-all-security-services", - "-H:ResourceConfigurationFiles=graalvm-config-dir/resource-config.json", - "-H:ReflectionConfigurationFiles=graalvm-config-dir/reflect-config.json" - ) -} - jar { manifest { attributes( @@ -92,3 +74,9 @@ task checkLibVersions { } } } + +task printRuntimeClasspath { + doLast { + print sourceSets.main.runtimeClasspath.asPath + } +} diff --git a/native-build.sh b/native-build.sh new file mode 100755 index 00000000..5b8983ee --- /dev/null +++ b/native-build.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +if [ -z "$GRAALVM_HOME" ]; then + echo "The GRAALVM_HOME environment variable is required.\n\n e.g. export GRAALVM_HOME=../graalvm-ce-java11-21.0.0/\n" 1>&2 + exit 1 +fi +export JAVA_HOME=$GRAALVM_HOME + +./gradlew clean build + +RUNTIME_CLASSPATH=$(./gradlew -q printRuntimeClasspath) + +mkdir -p build/native-image + +echo Compiling native-image... +$GRAALVM_HOME/bin/native-image \ + -cp "$RUNTIME_CLASSPATH"\ + -H:Path=build/native-image\ + -H:Name=signal-cli\ + -H:JNIConfigurationFiles=\ + -H:DynamicProxyConfigurationFiles=\ + -H:ReflectionConfigurationFiles=\ + -H:ResourceConfigurationFiles=\ + --no-fallback\ + --allow-incomplete-classpath\ + --report-unsupported-elements-at-runtime\ + --enable-url-protocols=http,https\ + --enable-https\ + --enable-all-security-services\ + -H:ResourceConfigurationFiles=graalvm-config-dir/resource-config.json\ + -H:ReflectionConfigurationFiles=graalvm-config-dir/reflect-config.json\ + org.asamk.signal.Main +