X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/dde98e9b0697474876840059a645d7a429a31341..169bb518bf6a43bd0bf14e1291f055017a5d5937:/build.gradle.kts?ds=sidebyside diff --git a/build.gradle.kts b/build.gradle.kts index 7fdb8f61..5d18e9e0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,9 +3,10 @@ plugins { application eclipse `check-lib-versions` + id("org.graalvm.buildtools.native") version "0.9.6" } -version = "0.8.4.1" +version = "0.9.0" java { sourceCompatibility = JavaVersion.VERSION_11 @@ -16,6 +17,15 @@ application { 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() @@ -54,51 +64,3 @@ tasks.withType { ) } } - -tasks.withType { - val appArgs: String? by project - if (appArgs != null) { - // allow passing command-line arguments to the main application e.g.: - // $ gradle run -PappArgs="['-u', '+...', 'daemon', '--json']" - args = groovy.util.Eval.me(appArgs) as MutableList - } -} - -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() - ) - } - } -}