| // Gradle build script for all ProGuard jars. | |
| allprojects { | |
| repositories { | |
| google() | |
| jcenter() | |
| } | |
| } | |
| task clean { | |
| delete fileTree('../lib') | |
| } | |
| // Collect the main ProGuard jar. | |
| task assembleProguardJar(type: Jar) { | |
| destinationDir = file('../lib') | |
| baseName = 'proguard' | |
| manifest.from '../core/src/META-INF/MANIFEST.MF' | |
| } | |
| def proguardSubprojects = | |
| [':core', ':gradle', ':ant', ':wtk'].collect{ project(it) } | |
| proguardSubprojects.each { subproject -> | |
| subproject.afterEvaluate { | |
| assembleProguardJar.dependsOn subproject.tasks['jar'] | |
| assembleProguardJar.from subproject.configurations.archives.artifacts.files.collect { zipTree(it) } | |
| } | |
| } | |
| // Copy the ReTrace jar. | |
| task copyRetraceJar(type: Copy) { | |
| into '../lib' | |
| } | |
| project(':retrace').afterEvaluate { | |
| copyRetraceJar.from it.tasks['jar'] | |
| } | |
| // Copy the GUI jar. | |
| task copyGuiJar(type: Copy) { | |
| into '../lib' | |
| rename 'gui.jar', 'proguardgui.jar' | |
| } | |
| project(':gui').afterEvaluate { | |
| copyGuiJar.from it.tasks['jar'] | |
| } | |
| // Copy the annotations jar. | |
| task copyAnnotationsJar(type: Copy) { | |
| into '../lib' | |
| } | |
| project(':annotations').afterEvaluate { | |
| copyAnnotationsJar.from it.tasks['jar'] | |
| } | |
| // Assemble or copy all jars. | |
| task assemble { | |
| dependsOn assembleProguardJar | |
| dependsOn copyRetraceJar | |
| dependsOn copyGuiJar | |
| dependsOn copyAnnotationsJar | |
| } |