X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/f69d9e64aaf0d6589977e53f6808b5435711a66f..323a8016000f436ff05b7431b126216cc8c00a73:/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts index 0353aa2e..0d4ebe84 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -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.10.1" } -version = "0.9.1" +version = "0.13.2-SNAPSHOT" java { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 + + toolchain { + languageVersion.set(JavaLanguageVersion.of(21)) + } } application { @@ -20,22 +24,31 @@ application { graalvmNative { binaries { this["main"].run { + buildArgs.add("--install-exit-handlers") + buildArgs.add("-Dfile.encoding=UTF-8") + buildArgs.add("-J-Dfile.encoding=UTF-8") + resources.autodetect() configurationFileDirectories.from(file("graalvm-config-dir")) - buildArgs.add("--allow-incomplete-classpath") + 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() -} - dependencies { - implementation("org.bouncycastle:bcprov-jdk15on:1.69") - implementation("net.sourceforge.argparse4j:argparse4j:0.9.0") - implementation("com.github.hypfvieh:dbus-java:3.3.1") - implementation("org.slf4j:slf4j-simple:1.7.30") + 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")) } @@ -64,3 +77,19 @@ tasks.withType { ) } } + +task("fatJar", type = Jar::class) { + archiveBaseName.set("${project.name}-fat") + exclude( + "META-INF/*.SF", + "META-INF/*.DSA", + "META-INF/*.RSA", + "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()) +}