Prepare build.gradle for kotlin migration

This commit is contained in:
AsamK 2021-01-23 13:36:39 +01:00
parent 383e7db360
commit 69149b16c1
2 changed files with 42 additions and 57 deletions

View file

@ -1,15 +1,17 @@
apply plugin: 'java' plugins {
apply plugin: 'application' id "java"
apply plugin: 'eclipse' id "application"
id "eclipse"
}
sourceCompatibility = JavaVersion.VERSION_11 sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11
mainClassName = 'org.asamk.signal.Main' mainClassName = "org.asamk.signal.Main"
version = '0.7.4' version = "0.7.4"
compileJava.options.encoding = 'UTF-8' compileJava.options.encoding = "UTF-8"
repositories { repositories {
mavenLocal() mavenLocal()
@ -17,20 +19,20 @@ repositories {
} }
dependencies { dependencies {
implementation 'com.google.protobuf:protobuf-javalite:3.10.0' implementation("com.google.protobuf:protobuf-javalite:3.10.0")
implementation 'com.github.turasa:signal-service-java:2.15.3_unofficial_18' implementation("com.github.turasa:signal-service-java:2.15.3_unofficial_18")
implementation 'org.bouncycastle:bcprov-jdk15on:1.68' implementation("org.bouncycastle:bcprov-jdk15on:1.68")
implementation 'net.sourceforge.argparse4j:argparse4j:0.8.1' implementation("net.sourceforge.argparse4j:argparse4j:0.8.1")
implementation 'com.github.hypfvieh:dbus-java:3.2.4' implementation("com.github.hypfvieh:dbus-java:3.2.4")
implementation 'org.slf4j:slf4j-simple:1.7.30' implementation("org.slf4j:slf4j-simple:1.7.30")
} }
jar { jar {
manifest { manifest {
attributes( attributes(
'Implementation-Title': project.name, "Implementation-Title": project.name,
'Implementation-Version': project.version, "Implementation-Version": project.version,
'Main-Class': project.mainClassName, "Main-Class": project.mainClassName,
) )
} }
} }
@ -39,7 +41,7 @@ run {
if (project.hasProperty("appArgs")) { if (project.hasProperty("appArgs")) {
// allow passing command-line arguments to the main application e.g.: // allow passing command-line arguments to the main application e.g.:
// $ gradle run -PappArgs="['-u', '+...', 'daemon', '--json']" // $ gradle run -PappArgs="['-u', '+...', 'daemon', '--json']"
args Eval.me(appArgs) args(Eval.me(appArgs))
} }
} }
@ -54,19 +56,19 @@ task checkLibVersions {
def version = dependency.version def version = dependency.version
if (!checked[dependency]) { if (!checked[dependency]) {
def group = dependency.group def group = dependency.group
def path = group.replace('.', '/') def path = group.replace(".", "/")
def name = dependency.name def name = dependency.name
def url = "https://repo1.maven.org/maven2/$path/$name/maven-metadata.xml" def url = "https://repo1.maven.org/maven2/$path/$name/maven-metadata.xml"
try { try {
def metadata = new XmlSlurper().parseText(url.toURL().text) def metadata = new XmlSlurper().parseText(url.toURL().text)
def newest = metadata.versioning.latest; def newest = metadata.versioning.latest;
if ("$version" != "$newest") { if ("$version" != "$newest") {
println "UPGRADE {\"group\": \"$group\", \"name\": \"$name\", \"current\": \"$version\", \"latest\": \"$newest\"}" println("UPGRADE {\"group\": \"$group\", \"name\": \"$name\", \"current\": \"$version\", \"latest\": \"$newest\"}")
} }
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
logger.debug "Unable to download $url: $e.message" logger.debug("Unable to download $url: $e.message")
} catch (org.xml.sax.SAXParseException e) { } catch (org.xml.sax.SAXParseException e) {
logger.debug "Unable to parse $url: $e.message" logger.debug("Unable to parse $url: $e.message")
} }
checked[dependency] = true checked[dependency] = true
} }
@ -81,31 +83,31 @@ task assembleNativeImage {
doLast { doLast {
def graalVMHome = System.getenv("GRAALVM_HOME") def graalVMHome = System.getenv("GRAALVM_HOME")
if (!graalVMHome) { if (!graalVMHome) {
throw new GradleException('Required GRAALVM_HOME environment variable not set.') throw new GradleException("Required GRAALVM_HOME environment variable not set.")
} }
def nativeBinaryOutputPath = "$buildDir/native-image" def nativeBinaryOutputPath = "$buildDir/native-image"
def nativeBinaryName = "signal-cli" def nativeBinaryName = "signal-cli"
mkdir nativeBinaryOutputPath mkdir(nativeBinaryOutputPath)
exec { exec {
workingDir "." workingDir = "."
commandLine "$graalVMHome/bin/native-image", commandLine("$graalVMHome/bin/native-image",
"-H:Path=$nativeBinaryOutputPath", "-H:Path=$nativeBinaryOutputPath",
"-H:Name=$nativeBinaryName", "-H:Name=$nativeBinaryName",
"-H:JNIConfigurationFiles=graalvm-config-dir/jni-config.json", "-H:JNIConfigurationFiles=graalvm-config-dir/jni-config.json",
"-H:DynamicProxyConfigurationFiles=graalvm-config-dir/proxy-config.json", "-H:DynamicProxyConfigurationFiles=graalvm-config-dir/proxy-config.json",
"-H:ResourceConfigurationFiles=graalvm-config-dir/resource-config.json", "-H:ResourceConfigurationFiles=graalvm-config-dir/resource-config.json",
"-H:ReflectionConfigurationFiles=graalvm-config-dir/reflect-config.json", "-H:ReflectionConfigurationFiles=graalvm-config-dir/reflect-config.json",
"--no-fallback", "--no-fallback",
"--allow-incomplete-classpath", "--allow-incomplete-classpath",
"--report-unsupported-elements-at-runtime", "--report-unsupported-elements-at-runtime",
"--enable-url-protocols=http,https", "--enable-url-protocols=http,https",
"--enable-https", "--enable-https",
"--enable-all-security-services", "--enable-all-security-services",
"-cp", "-cp",
sourceSets.main.runtimeClasspath.asPath, sourceSets.main.runtimeClasspath.asPath,
project.mainClassName project.mainClassName)
} }
} }
} }

View file

@ -1,18 +1 @@
/* rootProject.name = "signal-cli"
* This settings file was auto generated by the Gradle buildInit task
*
* The settings file is used to specify which projects to include in your build.
* In a single project build this file can be empty or even removed.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user guide at http://gradle.org/docs/2.2.1/userguide/multi_project_builds.html
*/
/*
// To declare projects as part of a multi-project build use the 'include' method
include 'shared'
include 'api'
include 'services:webservice'
*/
rootProject.name = 'signal-cli'