diff --git a/build.gradle b/build.gradle index 5b39e8d1..094106cf 100644 --- a/build.gradle +++ b/build.gradle @@ -50,29 +50,6 @@ configurations { compileJava.options.annotationProcessorGeneratedSourcesDirectory = new File('build/generated') -task minimize(type: proguard.gradle.ProGuardTask, dependsOn: 'linux64') { - injars "build/libs/ipscan-linux64-${version}.jar" - outjars "build/libs/ipscan-linux64-${version}.min.jar" - libraryjars '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar' //System.getProperty('java.home') + "/lib/rt.jar" - libraryjars 'lib/jna-win32.jar' - dontobfuscate - dontoptimize - dontnote '**' - configuration 'lib/swt.pro' - - def keepClasses = [ - 'net.azib.ipscan.**', - 'org.savarese.rocksaw.**', - ] - - for (keepClass in keepClasses) { - keep access: 'public', name: keepClass, { - method access: 'public' - method access: 'private' - } - } -} - def packageTask(def platform, def moreJars, def moreLibs, Closure doMore) { return tasks.create(platform, Jar) { dependsOn = ['classes'] @@ -85,14 +62,14 @@ def packageTask(def platform, def moreJars, def moreLibs, Closure doMore) { 'Version': version, 'Build-Date': java.time.LocalDate.now().toString(), 'URL': 'https://angryip.org/' - } - baseName = project.name + '-' + platform - from { + } + baseName = project.name + '-' + platform + from { (configurations.compile + files("lib/swt-${platform}.jar") + files(moreJars)) .collect { it.isDirectory() ? it : zipTree(it) } + moreLibs - } - exclude( + } + exclude( 'version.txt', 'images/**/*.svg', 'chrome.manifest', @@ -116,9 +93,41 @@ def packageTask(def platform, def moreJars, def moreLibs, Closure doMore) { // Mac stuff 'libswt-awt-*.jnilib', 'libswt-xulrunner-*.jnilib' - ) - with jar - doLast(doMore) + ) + with jar + + finalizedBy minimizeTask(platform, doMore) + } +} + +def minimizeTask(def platform, Closure doMore) { + return tasks.create("${platform}.min", proguard.gradle.ProGuardTask) { + injars "build/libs/ipscan-${platform}-${version}.jar" + outjars "build/libs/ipscan-${platform}-${version}.min.jar" + libraryjars System.getProperty('java.home') + "/jre/lib/rt.jar" // "jmods/java.base.jmod" after Java 9 + libraryjars '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar' // try Ubuntu version of Java 8 if current Java doesn't have rt.jar + libraryjars 'lib/jna-win32.jar' + dontobfuscate + dontoptimize + dontnote '**' + configuration 'lib/swt.pro' + + def keepClasses = [ + 'net.azib.ipscan.**', + 'org.savarese.rocksaw.**', + ] + + for (keepClass in keepClasses) { + keep access: 'public', name: keepClass, { + method access: 'public' + method access: 'private' + } + } + + doLast { + ant.move(file: "build/libs/ipscan-${platform}-${version}.min.jar", tofile: "build/libs/ipscan-${platform}-${version}.jar") + doMore() + } } }