From 900c1966e0413b78f0a22f0595c85d1dcba25837 Mon Sep 17 00:00:00 2001 From: Kun Zhang Date: Tue, 15 Mar 2016 11:29:33 -0700 Subject: [PATCH] Make it compatible with, and only with Gradle 2.12. The signature of a Gradle internal API that we use was changed in Gradle 2.12. Such change was not backward compatible, which it makes it very hard for me to maintain backward compatibility with older Gradle versions. I have to elevate the minimum required Gradle version to 2.12. Related changes: - Needs to upgrade Android plugin to 1.5.0 for it to work with Gradle 2.12 - Switch away from deprecated Android plugin DSL. --- build.gradle | 3 ++- gradle/wrapper/gradle-wrapper.jar | Bin 52141 -> 53639 bytes gradle/wrapper/gradle-wrapper.properties | 4 ++-- gradlew | 10 +++------- gradlew.bat | 2 +- .../protobuf/gradle/ProtobufPlugin.groovy | 9 +++++---- .../gradle/ProtobufSourceDirectorySet.groovy | 5 +++-- testProjectAndroid/build.gradle | 11 ++++++----- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/build.gradle b/build.gradle index 6fb6af5b..36b4eab4 100644 --- a/build.gradle +++ b/build.gradle @@ -37,6 +37,7 @@ buildscript { classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:0.5' classpath "com.gradle.publish:plugin-publish-plugin:0.9.0" classpath 'junit:junit:4.7' + classpath 'org.jacoco:org.jacoco.core:0.7.4.201502262128' } } @@ -70,7 +71,7 @@ dependencies { } task wrapper(type: Wrapper) { - gradleVersion = '2.4' + gradleVersion = '2.12' } task sourcesJar(type: Jar, dependsOn:classes) { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 085a1cdc27db1185342f15a00441734e74fe3735..2c6137b87896c8f70315ae454e00a969ef5f6019 100644 GIT binary patch delta 19374 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 a9yg$2pi){M#ZZ=AlLIaqvbFC5i2?vLp8iMx diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fe029d55..0283c6f7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Jan 26 11:26:58 PST 2016 +#Tue Mar 15 12:35:16 PDT 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-bin.zip diff --git a/gradlew b/gradlew index 91a7e269..9d82f789 100755 --- a/gradlew +++ b/gradlew @@ -42,11 +42,6 @@ case "`uname`" in ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" @@ -61,9 +56,9 @@ while [ -h "$PRG" ] ; do fi done SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- +cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME="`pwd -P`" -cd "$SAVED" >&- +cd "$SAVED" >/dev/null CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -114,6 +109,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` diff --git a/gradlew.bat b/gradlew.bat index aec99730..72d362da 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -46,7 +46,7 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args if "%@eval[2+2]" == "4" goto 4NT_args diff --git a/src/main/groovy/com/google/protobuf/gradle/ProtobufPlugin.groovy b/src/main/groovy/com/google/protobuf/gradle/ProtobufPlugin.groovy index 38fb2367..4743b86f 100644 --- a/src/main/groovy/com/google/protobuf/gradle/ProtobufPlugin.groovy +++ b/src/main/groovy/com/google/protobuf/gradle/ProtobufPlugin.groovy @@ -59,14 +59,15 @@ class ProtobufPlugin implements Plugin { @Inject public ProtobufPlugin(FileResolver fileResolver) { - this.fileResolver = fileResolver; + this.fileResolver = fileResolver } void apply(final Project project) { this.project = project def gv = project.gradle.gradleVersion =~ "(\\d*)\\.(\\d*).*" - if (!gv || !gv.matches() || gv.group(1).toInteger() < 2 || gv.group(2).toInteger() < 4) { - println("You are using Gradle ${project.gradle.gradleVersion}: This version of the protobuf plugin requires minimum Gradle version 2.4") + if (!gv || !gv.matches() || gv.group(1).toInteger() != 2 || gv.group(2).toInteger() < 12) { + println("You are using Gradle ${project.gradle.gradleVersion}: " + + " This version of the protobuf plugin works with Gradle version 2.12+") } // At least one of the prerequisite plugins must by applied before this plugin can be applied, so @@ -146,7 +147,7 @@ class ProtobufPlugin implements Plugin { */ private addSourceSetExtensions() { getSourceSets().all { sourceSet -> - sourceSet.extensions.create('proto', ProtobufSourceDirectorySet, project, sourceSet.name, fileResolver) + sourceSet.extensions.create('proto', ProtobufSourceDirectorySet, sourceSet.name, fileResolver) } } diff --git a/src/main/groovy/com/google/protobuf/gradle/ProtobufSourceDirectorySet.groovy b/src/main/groovy/com/google/protobuf/gradle/ProtobufSourceDirectorySet.groovy index 3d481859..7bc6b0ad 100644 --- a/src/main/groovy/com/google/protobuf/gradle/ProtobufSourceDirectorySet.groovy +++ b/src/main/groovy/com/google/protobuf/gradle/ProtobufSourceDirectorySet.groovy @@ -34,6 +34,7 @@ import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.Project import org.gradle.api.internal.file.DefaultSourceDirectorySet import org.gradle.api.internal.file.FileResolver +import org.gradle.api.internal.file.collections.DefaultDirectoryFileTreeFactory import org.gradle.internal.reflect.Instantiator import org.gradle.util.ConfigureUtil @@ -42,8 +43,8 @@ import org.gradle.util.ConfigureUtil */ public class ProtobufSourceDirectorySet extends DefaultSourceDirectorySet { - public ProtobufSourceDirectorySet(Project project, String name, FileResolver fileResolver) { - super(name, String.format("%s Proto source", name), fileResolver) + public ProtobufSourceDirectorySet(String name, FileResolver fileResolver) { + super(name, String.format("%s Proto source", name), fileResolver, new DefaultDirectoryFileTreeFactory()) srcDir("src/${name}/proto") include("**/*.proto") } diff --git a/testProjectAndroid/build.gradle b/testProjectAndroid/build.gradle index bec78f1a..e79b62ee 100644 --- a/testProjectAndroid/build.gradle +++ b/testProjectAndroid/build.gradle @@ -5,8 +5,9 @@ apply plugin: 'com.google.protobuf' buildscript { dependencies { - classpath 'com.android.tools.build:gradle:1.3.1' + classpath 'com.android.tools.build:gradle:1.5.0' classpath 'junit:junit:4.7' + classpath 'org.jacoco:org.jacoco.core:0.7.4.201502262128' } } @@ -24,16 +25,16 @@ android { flavorDimensions 'abi', 'version' productFlavors { freeapp { - flavorDimension 'version' + dimension 'version' } retailapp { - flavorDimension 'version' + dimension 'version' } x86 { - flavorDimension 'abi' + dimension 'abi' } arm { - flavorDimension 'abi' + dimension 'abi' } } buildTypes {