From 6496d717b9d85c98eb5c6a15b4b190a8e9bc9067 Mon Sep 17 00:00:00 2001 From: Carter Jernigan Date: Mon, 6 Jun 2022 16:46:59 -0400 Subject: [PATCH] [#543] Align gradle properties for included builds --- ... zcash-sdk.android-conventions.gradle.kts} | 19 ++++++++++++++++++- ...ash-sdk.dependency-conventions.gradle.kts} | 0 ...> zcash-sdk.ktlint-conventions.gradle.kts} | 0 build.gradle.kts | 2 +- darkside-test-lib/build.gradle.kts | 8 +------- demo-app/build.gradle.kts | 7 +------ gradle.properties | 4 ++-- sdk-lib/build.gradle.kts | 6 +----- 8 files changed, 24 insertions(+), 22 deletions(-) rename build-conventions/src/main/kotlin/{zcash.android-build-conventions.gradle.kts => zcash-sdk.android-conventions.gradle.kts} (79%) rename build-conventions/src/main/kotlin/{zcash.dependency-conventions.gradle.kts => zcash-sdk.dependency-conventions.gradle.kts} (100%) rename build-conventions/src/main/kotlin/{zcash.ktlint-conventions.gradle.kts => zcash-sdk.ktlint-conventions.gradle.kts} (100%) diff --git a/build-conventions/src/main/kotlin/zcash.android-build-conventions.gradle.kts b/build-conventions/src/main/kotlin/zcash-sdk.android-conventions.gradle.kts similarity index 79% rename from build-conventions/src/main/kotlin/zcash.android-build-conventions.gradle.kts rename to build-conventions/src/main/kotlin/zcash-sdk.android-conventions.gradle.kts index b9c47e06..10770b31 100644 --- a/build-conventions/src/main/kotlin/zcash.android-build-conventions.gradle.kts +++ b/build-conventions/src/main/kotlin/zcash-sdk.android-conventions.gradle.kts @@ -1,3 +1,6 @@ +import com.android.build.api.dsl.CommonExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions + pluginManager.withPlugin("com.android.application") { project.the().apply { configureBaseExtension() @@ -60,7 +63,8 @@ fun com.android.build.gradle.BaseExtension.configureBaseExtension() { buildTypes { getByName("debug").apply { - isTestCoverageEnabled = project.property("IS_COVERAGE_ENABLED").toString().toBoolean() + isTestCoverageEnabled = project.property("IS_ANDROID_INSTRUMENTATION_TEST_COVERAGE_ENABLED") + .toString().toBoolean() } } @@ -82,4 +86,17 @@ fun com.android.build.gradle.BaseExtension.configureBaseExtension() { execution = "ANDROIDX_TEST_ORCHESTRATOR" } } + + if (this is CommonExtension<*, *, *, *>) { + kotlinOptions { + jvmTarget = project.property("ANDROID_JVM_TARGET").toString() + allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() + freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlin.RequiresOptIn" + + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" + "-opt-in=kotlinx.coroutines.FlowPreview" + } + } +} + +fun CommonExtension<*, *, *, *>.kotlinOptions(block: KotlinJvmOptions.() -> Unit) { + (this as ExtensionAware).extensions.configure("kotlinOptions", block) } diff --git a/build-conventions/src/main/kotlin/zcash.dependency-conventions.gradle.kts b/build-conventions/src/main/kotlin/zcash-sdk.dependency-conventions.gradle.kts similarity index 100% rename from build-conventions/src/main/kotlin/zcash.dependency-conventions.gradle.kts rename to build-conventions/src/main/kotlin/zcash-sdk.dependency-conventions.gradle.kts diff --git a/build-conventions/src/main/kotlin/zcash.ktlint-conventions.gradle.kts b/build-conventions/src/main/kotlin/zcash-sdk.ktlint-conventions.gradle.kts similarity index 100% rename from build-conventions/src/main/kotlin/zcash.ktlint-conventions.gradle.kts rename to build-conventions/src/main/kotlin/zcash-sdk.ktlint-conventions.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts index ca622215..5fe43201 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,7 @@ plugins { id("io.gitlab.arturbosch.detekt") id("org.jetbrains.dokka") id("org.owasp.dependencycheck") - id("zcash.ktlint-conventions") + id("zcash-sdk.ktlint-conventions") } apply(plugin = "com.vanniktech.maven.publish") diff --git a/darkside-test-lib/build.gradle.kts b/darkside-test-lib/build.gradle.kts index 68cc53fc..bbff1b1a 100644 --- a/darkside-test-lib/build.gradle.kts +++ b/darkside-test-lib/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("com.android.library") - id("zcash.android-build-conventions") id("org.jetbrains.kotlin.android") + id("zcash-sdk.android-conventions") id("kotlin-kapt") } @@ -10,12 +10,6 @@ android { //targetSdk = 30 //Integer.parseInt(project.property("targetSdkVersion")) multiDexEnabled = true } - - // Need to figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - } } dependencies { diff --git a/demo-app/build.gradle.kts b/demo-app/build.gradle.kts index 44831ed3..e115b229 100644 --- a/demo-app/build.gradle.kts +++ b/demo-app/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("com.android.application") - id("zcash.android-build-conventions") id("org.jetbrains.kotlin.android") + id("zcash-sdk.android-conventions") id("kotlin-parcelize") id("androidx.navigation.safeargs") id("com.osacky.fladle") @@ -47,11 +47,6 @@ android { } } - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - } - lint { baseline = File("lint-baseline.xml") } diff --git a/gradle.properties b/gradle.properties index 1cb0d972..ea814cb6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -37,10 +37,10 @@ POM_DEVELOPER_URL=https://github.com/zcash/ # Kotlin compiler warnings can be considered errors, failing the build. # Currently set to false, because this project has a lot of warnings to fix first. -IS_TREAT_WARNINGS_AS_ERRORS=false +ZCASH_IS_TREAT_WARNINGS_AS_ERRORS=false # Optionally configure code coverage, as historically Jacoco has at times been buggy with respect to new Kotlin versions -IS_COVERAGE_ENABLED=false +IS_ANDROID_INSTRUMENTATION_TEST_COVERAGE_ENABLED=false # Optionally configure test orchestrator. # It is disabled by default, because it causes tests to take about 2x longer to run. diff --git a/sdk-lib/build.gradle.kts b/sdk-lib/build.gradle.kts index c66af3b7..dead0c58 100644 --- a/sdk-lib/build.gradle.kts +++ b/sdk-lib/build.gradle.kts @@ -7,8 +7,8 @@ import com.google.protobuf.gradle.protoc plugins { id("com.android.library") - id("zcash.android-build-conventions") id("org.jetbrains.kotlin.android") + id("zcash-sdk.android-conventions") id("com.google.devtools.ksp") id("org.jetbrains.kotlin.plugin.allopen") id("org.jetbrains.dokka") @@ -72,10 +72,6 @@ android { } kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" - freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.FlowPreview" // Tricky: fix: By default, the kotlin_module name will not include the version (in classes.jar/META-INF). Instead it has a colon, which breaks compilation on Windows. This is one way to set it explicitly to the proper value. See https://github.com/zcash/zcash-android-wallet-sdk/issues/222 for more info. freeCompilerArgs += listOf("-module-name", "$ARTIFACT_ID-${project.version}_release") }