18 lines
834 B
Kotlin
18 lines
834 B
Kotlin
// Household assembly inputs remain mandatory even through aggregate Gradle tasks.
|
|
val tvVersion = providers.gradleProperty("tvVersion").orElse("1.1.1")
|
|
val tvVersionCode = providers.gradleProperty("tvVersionCode")
|
|
|
|
fun requireHouseholdVersion() {
|
|
require(tvVersionCode.isPresent) { "Household builds require -PtvVersionCode=<monotonic code>" }
|
|
require(tvVersionCode.get().toInt() in 1..2100000000) { "Invalid household versionCode" }
|
|
require(Regex("""\d+\.\d+\.\d+""").matches(tvVersion.get())) { "Household versionName must be plain major.minor.patch" }
|
|
}
|
|
|
|
if (gradle.startParameter.taskNames.any { it.contains("Optimized", ignoreCase = true) }) {
|
|
requireHouseholdVersion()
|
|
}
|
|
tasks.configureEach {
|
|
if (name.contains("DefaultOptimized", ignoreCase = true)) {
|
|
doFirst { requireHouseholdVersion() }
|
|
}
|
|
}
|