]> nmode's Git Repositories - signal-cli/blobdiff - build.gradle.kts
Switch to Java 21
[signal-cli] / build.gradle.kts
index 12854c97a41ca4d4ee1a614e4f08e04b97ea8b22..68eed610b3e04e9cc30e6064284bf097fb2c023d 100644 (file)
@@ -3,14 +3,18 @@ plugins {
     application
     eclipse
     `check-lib-versions`
-    id("org.graalvm.buildtools.native") version "0.9.6"
+    id("org.graalvm.buildtools.native") version "0.9.28"
 }
 
-version = "0.9.2"
+version = "0.12.4"
 
 java {
-    sourceCompatibility = JavaVersion.VERSION_17
-    targetCompatibility = JavaVersion.VERSION_17
+    sourceCompatibility = JavaVersion.VERSION_21
+    targetCompatibility = JavaVersion.VERSION_21
+
+    toolchain {
+        languageVersion.set(JavaLanguageVersion.of(21))
+    }
 }
 
 application {
@@ -20,27 +24,28 @@ application {
 graalvmNative {
     binaries {
         this["main"].run {
+            resources.autodetect()
             configurationFileDirectories.from(file("graalvm-config-dir"))
-            buildArgs.add("--allow-incomplete-classpath")
-            buildArgs.add("--report-unsupported-elements-at-runtime")
+            if (System.getenv("GRAALVM_HOME") == null) {
+                toolchainDetection.set(true)
+                javaLauncher.set(javaToolchains.launcherFor {
+                    languageVersion.set(JavaLanguageVersion.of(21))
+                })
+            } else {
+                toolchainDetection.set(false)
+            }
         }
     }
 }
 
-repositories {
-    mavenLocal()
-    mavenCentral()
-    maven {
-        url = uri("https://raw.github.com/AsamK/maven/master/releases/")
-    }
-}
-
 dependencies {
-    implementation("org.bouncycastle:bcprov-jdk15on:1.69")
-    implementation("net.sourceforge.argparse4j:argparse4j:0.9.0")
-    implementation("com.github.hypfvieh:dbus-java-transport-native-unixsocket:4.0.0-beta")
-    implementation("org.slf4j:slf4j-simple:1.7.32")
-    implementation("org.slf4j", "jul-to-slf4j", "1.7.32")
+    implementation(libs.bouncycastle)
+    implementation(libs.jackson.databind)
+    implementation(libs.argparse4j)
+    implementation(libs.dbusjava)
+    implementation(libs.slf4j.api)
+    implementation(libs.slf4j.jul)
+    implementation(libs.logback)
     implementation(project(":lib"))
 }
 
@@ -76,10 +81,12 @@ task("fatJar", type = Jar::class) {
         "META-INF/*.SF",
         "META-INF/*.DSA",
         "META-INF/*.RSA",
-        "META-INF/NOTICE",
-        "META-INF/LICENSE",
+        "META-INF/NOTICE*",
+        "META-INF/LICENSE*",
+        "META-INF/INDEX.LIST",
         "**/module-info.class"
     )
+    duplicatesStrategy = DuplicatesStrategy.WARN
     from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
-    with(tasks.jar.get() as CopySpec)
+    with(tasks.jar.get())
 }