X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/68b7416e572ce36f27a38d2fc7e195cb508cf00d..b92cbc6a7c93124afe07d1d14e9a4b3d255a5e2e:/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts index e491dd7d..67a180fb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -46,7 +46,41 @@ graalvmNative { } } +val artifactType = Attribute.of("artifactType", String::class.java) +val minified = Attribute.of("minified", Boolean::class.javaObjectType) dependencies { + attributesSchema { + attribute(minified) + } + artifactTypes.getByName("jar") { + attributes.attribute(minified, false) + } +} + +configurations.runtimeClasspath.configure { + attributes { + attribute(minified, true) + } +} +val excludePatterns = mapOf( + "libsignal-client" to setOf( + "libsignal_jni_testing_amd64.so", + "signal_jni_testing_amd64.dll", + "libsignal_jni_testing_amd64.dylib", + "libsignal_jni_testing_aarch64.dylib", + ) +) + +dependencies { + registerTransform(JarFileExcluder::class) { + from.attribute(minified, false).attribute(artifactType, "jar") + to.attribute(minified, true).attribute(artifactType, "jar") + + parameters { + excludeFilesByArtifact = excludePatterns + } + } + implementation(libs.bouncycastle) implementation(libs.jackson.databind) implementation(libs.argparse4j) @@ -92,9 +126,11 @@ tasks.register("fatJar", type = Jar::class) { "META-INF/NOTICE*", "META-INF/LICENSE*", "META-INF/INDEX.LIST", - "**/module-info.class" + "**/module-info.class", ) duplicatesStrategy = DuplicatesStrategy.WARN - from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) + doFirst { + from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) + } with(tasks.jar.get()) }