From 7d1263a4ff78ce92b2008e4664fb855f7d03da87 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Sat, 15 Sep 2012 16:54:20 -0700 Subject: [PATCH] Implement versioning in the gradle build --- baksmali/build.gradle | 5 ++- .../src/main/resources/baksmali.properties | 1 + .../resources/properties/baksmali.properties | 1 - build.gradle | 40 +++++++++++++++++++ smali/build.gradle | 6 ++- smali/src/main/resources/smali.properties | 2 +- 6 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 baksmali/src/main/resources/baksmali.properties delete mode 100644 baksmali/src/main/resources/properties/baksmali.properties diff --git a/baksmali/build.gradle b/baksmali/build.gradle index 3b2768ed..068da898 100644 --- a/baksmali/build.gradle +++ b/baksmali/build.gradle @@ -3,4 +3,7 @@ dependencies { compile project(':dexlib') compile 'commons-cli:commons-cli:1.2' compile 'com.google.code.findbugs:jsr305:1.3.9' -} \ No newline at end of file +} + +processResources.inputs.properties('version': { -> version}) +processResources.expand('version': { -> version}) \ No newline at end of file diff --git a/baksmali/src/main/resources/baksmali.properties b/baksmali/src/main/resources/baksmali.properties new file mode 100644 index 00000000..df22408c --- /dev/null +++ b/baksmali/src/main/resources/baksmali.properties @@ -0,0 +1 @@ +application.version=${version} \ No newline at end of file diff --git a/baksmali/src/main/resources/properties/baksmali.properties b/baksmali/src/main/resources/properties/baksmali.properties deleted file mode 100644 index 4001a9a2..00000000 --- a/baksmali/src/main/resources/properties/baksmali.properties +++ /dev/null @@ -1 +0,0 @@ -application.version=${pom.version} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 4556d940..2e51d46f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,47 @@ subprojects { apply plugin: 'java' + version = "1.3.4" + + // For non-release builds, we want to append the commit and + // dirty status to the version + gradle.taskGraph.whenReady { + if (!it.hasTask(release)) { + def versionSuffix + try { + def git = org.eclipse.jgit.api.Git.open(file('.')) + def head = git.getRepository().getRef("HEAD") + versionSuffix = head.getObjectId().abbreviate(8).name() + + if (!git.status().call().clean) { + versionSuffix += '-dirty' + } + } catch (Exception) { + // In case we can't get the commit for some reason, + // just use -dev + versionSuffix = 'dev' + } + + version += '-' + versionSuffix + } + } + repositories { mavenCentral() } + + // Note: please don't use this. This is strictly for the official releases + // that are posted on the googlecode download page. + task release { + } +} + + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'org.eclipse.jgit:org.eclipse.jgit:2.0.0.201206130900-r' + } } \ No newline at end of file diff --git a/smali/build.gradle b/smali/build.gradle index 1da62084..910fc3db 100644 --- a/smali/build.gradle +++ b/smali/build.gradle @@ -1,5 +1,6 @@ configurations { antlr3 + jflex } @@ -24,7 +25,7 @@ dependencies { compile 'commons-cli:commons-cli:1.2' testCompile 'junit:junit:4.6' - + antlr3 'org.antlr:antlr:3.2' jflex 'de.jflex:jflex:1.4.3' } @@ -76,3 +77,6 @@ task generateJflexSource { compileJava.dependsOn generateAntlrSource, generateJflexSource compileTestJava.dependsOn generateTestAntlrSource + +processResources.inputs.properties('version': { -> version}) +processResources.expand('version': { -> version}) \ No newline at end of file diff --git a/smali/src/main/resources/smali.properties b/smali/src/main/resources/smali.properties index 4001a9a2..df22408c 100644 --- a/smali/src/main/resources/smali.properties +++ b/smali/src/main/resources/smali.properties @@ -1 +1 @@ -application.version=${pom.version} \ No newline at end of file +application.version=${version} \ No newline at end of file