]> nmode's Git Repositories - signal-cli/commitdiff
Use official graalvm native-image gradle plugin
authorAsamK <asamk@gmx.de>
Sun, 12 Sep 2021 17:08:47 +0000 (19:08 +0200)
committerAsamK <asamk@gmx.de>
Sun, 12 Sep 2021 17:08:47 +0000 (19:08 +0200)
README.md
build.gradle.kts
run_tests.sh

index 178573fe32ced0fe3f6841036825352242912fc6..b63733d1ea674608c04789fa94f12ee763b22982 100644 (file)
--- a/README.md
+++ b/README.md
@@ -98,9 +98,9 @@ This is still experimental and will not work in all situations.
 2. [Install prerequisites](https://www.graalvm.org/reference-manual/native-image/#prerequisites)
 3. Execute Gradle:
 
 2. [Install prerequisites](https://www.graalvm.org/reference-manual/native-image/#prerequisites)
 3. Execute Gradle:
 
-        ./gradlew assembleNativeImage
+        ./gradlew nativeCompile
 
 
-   The binary is available at *build/native-image/signal-cli*
+   The binary is available at *build/native/nativeCompile/signal-cli*
 
 ## FAQ and Troubleshooting
 For frequently asked questions and issues have a look at the [wiki](https://github.com/AsamK/signal-cli/wiki/FAQ)
 
 ## FAQ and Troubleshooting
 For frequently asked questions and issues have a look at the [wiki](https://github.com/AsamK/signal-cli/wiki/FAQ)
index 37b94492b1ce3e9cf54a0df587c42f92f35a7c08..0ef51bda6ce667362b4e6b80ad53c39ba0b2c2b1 100644 (file)
@@ -3,6 +3,7 @@ plugins {
     application
     eclipse
     `check-lib-versions`
     application
     eclipse
     `check-lib-versions`
+    id("org.graalvm.buildtools.native") version "0.9.5"
 }
 
 version = "0.9.0"
 }
 
 version = "0.9.0"
@@ -16,6 +17,15 @@ application {
     mainClass.set("org.asamk.signal.Main")
 }
 
     mainClass.set("org.asamk.signal.Main")
 }
 
+graalvmNative {
+    binaries {
+        this["main"].run {
+            configurationFileDirectories.from(file("graalvm-config-dir"))
+            buildArgs.add("--allow-incomplete-classpath")
+        }
+    }
+}
+
 repositories {
     mavenLocal()
     mavenCentral()
 repositories {
     mavenLocal()
     mavenCentral()
@@ -63,42 +73,3 @@ tasks.withType<JavaExec> {
         args = groovy.util.Eval.me(appArgs) as MutableList<String>
     }
 }
         args = groovy.util.Eval.me(appArgs) as MutableList<String>
     }
 }
-
-val assembleNativeImage by tasks.registering {
-    dependsOn("assemble")
-
-    var graalVMHome = ""
-    doFirst {
-        graalVMHome = System.getenv("GRAALVM_HOME")
-            ?: throw GradleException("Required GRAALVM_HOME environment variable not set.")
-    }
-
-    doLast {
-        val nativeBinaryOutputPath = "$buildDir/native-image"
-        val nativeBinaryName = "signal-cli"
-
-        mkdir(nativeBinaryOutputPath)
-
-        exec {
-            workingDir = File(".")
-            commandLine(
-                "$graalVMHome/bin/native-image",
-                "-H:Path=$nativeBinaryOutputPath",
-                "-H:Name=$nativeBinaryName",
-                "-H:JNIConfigurationFiles=graalvm-config-dir/jni-config.json",
-                "-H:DynamicProxyConfigurationFiles=graalvm-config-dir/proxy-config.json",
-                "-H:ResourceConfigurationFiles=graalvm-config-dir/resource-config.json",
-                "-H:ReflectionConfigurationFiles=graalvm-config-dir/reflect-config.json",
-                "--no-fallback",
-                "--allow-incomplete-classpath",
-                "--report-unsupported-elements-at-runtime",
-                "--enable-url-protocols=http,https",
-                "--enable-https",
-                "--enable-all-security-services",
-                "-cp",
-                sourceSets.main.get().runtimeClasspath.asPath,
-                application.mainClass.get()
-            )
-        }
-    }
-}
index 5978eed975da0bff1efaa5e10f0ecf8ac06dc9f0..d306dfa9daa5b1f34641a19168cfe2b036532051 100755 (executable)
@@ -11,17 +11,22 @@ if [ ! -z "$GRAALVM_HOME" ]; then
   export JAVA_HOME=$GRAALVM_HOME
   export SIGNAL_CLI_OPTS='-agentlib:native-image-agent=config-merge-dir=graalvm-config-dir/'
 fi
   export JAVA_HOME=$GRAALVM_HOME
   export SIGNAL_CLI_OPTS='-agentlib:native-image-agent=config-merge-dir=graalvm-config-dir/'
 fi
-export SIGNAL_CLI="$PWD/build/install/signal-cli/bin/signal-cli"
 
 NUMBER_1="$1"
 NUMBER_2="$2"
 TEST_PIN_1=456test_pin_foo123
 
 NUMBER_1="$1"
 NUMBER_2="$2"
 TEST_PIN_1=456test_pin_foo123
+NATIVE=1
 
 PATH_TEST_CONFIG="$PWD/build/test-config"
 PATH_MAIN="$PATH_TEST_CONFIG/main"
 PATH_LINK="$PATH_TEST_CONFIG/link"
 
 
 PATH_TEST_CONFIG="$PWD/build/test-config"
 PATH_MAIN="$PATH_TEST_CONFIG/main"
 PATH_LINK="$PATH_TEST_CONFIG/link"
 
-./gradlew installDist
+if [ "$NATIVE" -eq 1 ]; then
+       SIGNAL_CLI="$PWD/build/native/nativeCompile/signal-cli"
+else
+       ./gradlew installDist
+       SIGNAL_CLI="$PWD/build/install/signal-cli/bin/signal-cli"
+fi
 
 run() {
   set -x
 
 run() {
   set -x