forked from AsamK/signal-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
96 lines (82 loc) · 2.73 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
plugins {
java
application
eclipse
`check-lib-versions`
}
version = "0.8.0"
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
application {
mainClass.set("org.asamk.signal.Main")
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
implementation("org.bouncycastle:bcprov-jdk15on:1.68")
implementation("net.sourceforge.argparse4j:argparse4j:0.8.1")
implementation("com.github.hypfvieh:dbus-java:3.2.4")
implementation("org.slf4j:slf4j-simple:1.7.30")
implementation(project(":lib"))
}
configurations {
implementation {
resolutionStrategy.failOnVersionConflict()
}
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Jar> {
manifest {
attributes(
"Implementation-Title" to project.name,
"Implementation-Version" to project.version,
"Main-Class" to application.mainClass.get()
)
}
}
tasks.withType<JavaExec> {
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<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())
}
}
}