]> nmode's Git Repositories - signal-cli/blobdiff - build.gradle
Update gradle wrapper
[signal-cli] / build.gradle
index 9ab867816caa4b2d42430483593fa7d13e2053f7..c0c9097d9babb83409aa06dcb88dabbc5164c64a 100644 (file)
@@ -1,24 +1,83 @@
 apply plugin: 'java'
 apply plugin: 'application'
+apply plugin: 'eclipse'
 
-mainClassName = 'cli.Main'
+sourceCompatibility = JavaVersion.VERSION_1_7
+targetCompatibility = JavaVersion.VERSION_1_7
+
+mainClassName = 'org.asamk.signal.Main'
+
+version = '0.6.0'
+
+compileJava.options.encoding = 'UTF-8'
 
 repositories {
+    mavenLocal()
+    maven {
+        url "https://raw.github.com/AsamK/maven/master/releases/"
+    }
     mavenCentral()
 }
 
 dependencies {
-    compile 'org.whispersystems:textsecure-java:1.6.1'
-    compile 'com.madgag.spongycastle:prov:1.52.0.0'
-    compile 'org.json:json:20141113'
-    compile 'commons-io:commons-io:2.4'
-    compile 'net.sourceforge.argparse4j:argparse4j:0.5.0'
+    compile 'com.github.turasa:signal-service-java:2.12.2_unofficial_2'
+    compile 'org.bouncycastle:bcprov-jdk15on:1.60'
+    compile 'net.sourceforge.argparse4j:argparse4j:0.8.1'
+    compile 'org.freedesktop.dbus:dbus-java:2.7.0'
 }
 
 jar {
-    baseName = 'textsecure-cli'
-    version = '0.0.1'
     manifest {
-        attributes 'Main-Class': 'cli.Main'
+        attributes(
+                'Implementation-Title': project.name,
+                'Implementation-Version': project.version,
+                'Main-Class': project.mainClassName,
+        )
+    }
+}
+
+run {
+    if (project.hasProperty("appArgs")) {
+        // allow passing command-line arguments to the main application e.g.:
+        // $ gradle run -PappArgs="['-u', '+...', 'daemon', '--json']"
+        args Eval.me(appArgs)
+    }
+}
+
+// Find any 3rd party libraries which have released new versions
+// to the central Maven repo since we last upgraded.
+// http://daniel.gredler.net/2011/08/08/gradle-keeping-libraries-up-to-date/
+task checkLibVersions {
+    doLast {
+        def checked = [:]
+        allprojects {
+            configurations.each { configuration ->
+                configuration.allDependencies.each { dependency ->
+                    def version = dependency.version
+                    if (!version.contains('SNAPSHOT') && !checked[dependency]) {
+                        def group = dependency.group
+                        def path = group.replace('.', '/')
+                        def name = dependency.name
+                        def url = "http://repo1.maven.org/maven2/$path/$name/maven-metadata.xml"
+                        try {
+                            def metadata = new XmlSlurper().parseText(url.toURL().text)
+                            def versions = metadata.versioning.versions.version.collect { it.text() }
+                            versions.removeAll { it.toLowerCase().contains('alpha') }
+                            versions.removeAll { it.toLowerCase().contains('beta') }
+                            versions.removeAll { it.toLowerCase().contains('rc') }
+                            def newest = versions.max()
+                            if (version != newest) {
+                                println "$group:$name $version -> $newest"
+                            }
+                        } catch (FileNotFoundException e) {
+                            logger.debug "Unable to download $url: $e.message"
+                        } catch (org.xml.sax.SAXParseException e) {
+                            logger.debug "Unable to parse $url: $e.message"
+                        }
+                        checked[dependency] = true
+                    }
+                }
+            }
+        }
     }
 }