aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2019-06-26 21:14:35 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-06-26 21:14:35 +0000
commit1ff1b4adeba799bbc9e7199dcfa0c665f2d6d7ef (patch)
treeca573c5a3aa0112c96c5e403fa9d971984596523
parent8663360524f23c6bd04242a44fd2d6b81a0609a7 (diff)
parent0e123e62f556efe904e380e34176f2b9467659a7 (diff)
downloadsupport-1ff1b4adeba799bbc9e7199dcfa0c665f2d6d7ef.tar.gz
Merge "Cleanup use of Project.version" into androidx-master-dev
-rw-r--r--buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt2
-rw-r--r--buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt17
-rw-r--r--buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt6
-rw-r--r--buildSrc/src/main/kotlin/androidx/build/Version.kt13
-rw-r--r--buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt10
5 files changed, 29 insertions, 19 deletions
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
index c6478163104..636ff30179f 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
@@ -28,7 +28,7 @@ open class AndroidXExtension(val project: Project) {
var mavenVersion: Version? = null
set(value) {
field = if (isSnapshotBuild()) value?.copy(extra = "-SNAPSHOT") else value
- project.version = field?.toString() as Any
+ project.version = field as Any
}
var mavenGroup: LibraryGroup? = null
var description: String? = null
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
index d44d7d85bac..edf1f3fd5af 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
@@ -120,10 +120,9 @@ class AndroidXPlugin : Plugin<Project> {
targetCompatibility = VERSION_1_8
}
project.afterEvaluate {
- verifyJava7Targeting(
- project.version as String,
- convention.sourceCompatibility
- )
+ if (androidXExtension.publish.shouldPublish()) {
+ verifyJava7Targeting(project.version(), convention.sourceCompatibility)
+ }
}
project.hideJavadocTask()
@@ -151,7 +150,7 @@ class AndroidXPlugin : Plugin<Project> {
configureAndroidLibraryOptions(project, androidXExtension)
}
project.configureSourceJarForAndroid(extension)
- project.configureVersionFileWriter(extension)
+ project.configureVersionFileWriter(extension, androidXExtension)
project.configureResourceApiChecks(extension)
project.addCreateLibraryBuildInfoFileTask(androidXExtension)
val verifyDependencyVersionsTask = project.createVerifyDependencyVersionsTask()
@@ -488,9 +487,9 @@ class AndroidXPlugin : Plugin<Project> {
}
}
- private fun verifyJava7Targeting(libraryVersion: String, javaVersion: JavaVersion) {
+ private fun verifyJava7Targeting(libraryVersion: Version, javaVersion: JavaVersion) {
if (javaVersion == VERSION_1_7) {
- if (libraryVersion.contains("alpha")) {
+ if (libraryVersion.isAlpha()) {
throw IllegalStateException("You moved a library that was targeting " +
"Java 7 to alpha version. Please remove " +
"`sourceCompatibility = VERSION_1_7` from build.gradle")
@@ -522,7 +521,9 @@ class AndroidXPlugin : Plugin<Project> {
}
project.afterEvaluate {
- verifyJava7Targeting(project.version as String, compileOptions.sourceCompatibility)
+ if (androidXExtension.publish.shouldPublish()) {
+ verifyJava7Targeting(project.version(), compileOptions.sourceCompatibility)
+ }
libraryVariants.all { libraryVariant ->
if (libraryVariant.buildType.name == "debug") {
diff --git a/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt b/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt
index 41caad94b41..8500d4a67a3 100644
--- a/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/CheckSameVersionLibraryGroupsTask.kt
@@ -34,7 +34,7 @@ open class CheckSameVersionLibraryGroupsTask : DefaultTask() {
project.extensions.findByType(AndroidXExtension::class.java) ?: return@subprojects
val requireSameVersion = library.mavenGroup?.requireSameVersion ?: false
if (requireSameVersion && library.publish.shouldRelease()) {
- if (project.version == AndroidXExtension.DEFAULT_UNSPECIFIED_VERSION) {
+ if (!project.isVersionSet()) {
throw GradleException("Library $group:${project.name} does not specify " +
"a version, however it is within library group $group which requires" +
" all member libraries to be of the same version")
@@ -43,7 +43,7 @@ open class CheckSameVersionLibraryGroupsTask : DefaultTask() {
if (map.contains(group)) {
val existingVersion = map.get(group)!!.first
val libraryInSameGroup = map.get(group)!!.second
- if (existingVersion != project.version) {
+ if (existingVersion != project.version.toString()) {
throw GradleException("Library $group:${project.name} with version " +
"${project.version} is part of the $group library group" +
" which requires all member libraries to have the same " +
@@ -51,7 +51,7 @@ open class CheckSameVersionLibraryGroupsTask : DefaultTask() {
" the same library group has different version $existingVersion")
}
} else {
- map.put(group, Pair(project.version as String, project.name))
+ map.put(group, Pair(project.version.toString(), project.name))
}
}
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/Version.kt b/buildSrc/src/main/kotlin/androidx/build/Version.kt
index 43ca857434e..f98e6d46a6e 100644
--- a/buildSrc/src/main/kotlin/androidx/build/Version.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/Version.kt
@@ -107,9 +107,12 @@ data class Version(
}
}
-fun Project.setupVersion(extension: AndroidXExtension) = afterEvaluate {
- @Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS")
- version = extension.mavenVersion?.toString()
-}
+fun Project.isVersionSet() = project.version is Version
-fun Project.version() = Version(project.version as String)
+fun Project.version(): Version {
+ return if (project.version is Version) {
+ project.version as Version
+ } else {
+ throw IllegalStateException("Tried to use project version for $name that was never set.")
+ }
+}
diff --git a/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt b/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt
index fce3661f805..6ca5240b6bc 100644
--- a/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt
@@ -54,7 +54,13 @@ private val VERSION_FILE_PATH = "$RESOURCE_DIRECTORY/META-INF/%s_%s.version"
*
* @param project an Android Library project.
*/
-fun Project.configureVersionFileWriter(library: LibraryExtension) {
+fun Project.configureVersionFileWriter(
+ library: LibraryExtension,
+ androidXExtension: AndroidXExtension
+) {
+ // We only add version file if is a library that is publishing.
+ if (!androidXExtension.publish.shouldPublish()) return
+
val writeVersionFile = tasks.register("writeVersionFile",
VersionFileWriterTask::class.java)
@@ -62,7 +68,7 @@ fun Project.configureVersionFileWriter(library: LibraryExtension) {
writeVersionFile.configure {
val group = properties["group"] as String
val artifactId = properties["name"] as String
- val version = properties["version"] as String
+ val version = version().toString()
// Add a java resource file to the library jar for version tracking purposes.
val artifactName = File(