From 4f960d5bf8534f555f97960033e5342437f85a34 Mon Sep 17 00:00:00 2001 From: Carter Jernigan Date: Tue, 17 May 2022 06:06:44 -0400 Subject: [PATCH] [#6] Refactor kotlinOptions to build-conventions --- app/build.gradle.kts | 6 ------ .../zcash.android-build-conventions.gradle.kts | 15 +++++++++++++++ preference-impl-android-lib/build.gradle.kts | 8 -------- sdk-ext-lib/build.gradle.kts | 6 ------ sdk-ext-ui-lib/build.gradle.kts | 7 ------- spackle-lib/build.gradle.kts | 7 ------- test-lib/build.gradle.kts | 7 ------- ui-design-lib/build.gradle.kts | 8 -------- ui-lib/build.gradle.kts | 8 -------- 9 files changed, 15 insertions(+), 57 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e8e4bc6b..fae7de3b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -93,12 +93,6 @@ android { } } } - - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - } packagingOptions { resources.excludes.addAll( diff --git a/build-convention/src/main/kotlin/zcash.android-build-conventions.gradle.kts b/build-convention/src/main/kotlin/zcash.android-build-conventions.gradle.kts index e8e90072..8ef7ac1f 100644 --- a/build-convention/src/main/kotlin/zcash.android-build-conventions.gradle.kts +++ b/build-convention/src/main/kotlin/zcash.android-build-conventions.gradle.kts @@ -1,3 +1,6 @@ +import com.android.build.api.dsl.CommonExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions + // Note: due to a few limitations with build-conventions, there is some common Android Gradle Plugin // configuration happening in the root build.gradle.kts with a subprojects block. @@ -105,4 +108,16 @@ fun com.android.build.gradle.BaseExtension.configureBaseExtension() { ) ) } + + 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" + } + } } + +fun CommonExtension<*, *, *, *>.kotlinOptions(block: KotlinJvmOptions.() -> Unit) { + (this as ExtensionAware).extensions.configure("kotlinOptions", block) +} \ No newline at end of file diff --git a/preference-impl-android-lib/build.gradle.kts b/preference-impl-android-lib/build.gradle.kts index 31476155..76509cf1 100644 --- a/preference-impl-android-lib/build.gradle.kts +++ b/preference-impl-android-lib/build.gradle.kts @@ -10,14 +10,6 @@ plugins { val isOrchestratorEnabled = true android { - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlin.RequiresOptIn" - } - - if (isOrchestratorEnabled) { defaultConfig { testInstrumentationRunnerArguments["clearPackageData"] = "true" diff --git a/sdk-ext-lib/build.gradle.kts b/sdk-ext-lib/build.gradle.kts index fd769d37..3ae908ca 100644 --- a/sdk-ext-lib/build.gradle.kts +++ b/sdk-ext-lib/build.gradle.kts @@ -5,12 +5,6 @@ plugins { } android { - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs = freeCompilerArgs.plus("-opt-in=kotlin.RequiresOptIn") - } } dependencies { diff --git a/sdk-ext-ui-lib/build.gradle.kts b/sdk-ext-ui-lib/build.gradle.kts index ebed3c7d..d0995978 100644 --- a/sdk-ext-ui-lib/build.gradle.kts +++ b/sdk-ext-ui-lib/build.gradle.kts @@ -5,13 +5,6 @@ plugins { } android { - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs = freeCompilerArgs.plus("-opt-in=kotlin.RequiresOptIn") - } - resourcePrefix = "co_electriccoin_zcash_" } diff --git a/spackle-lib/build.gradle.kts b/spackle-lib/build.gradle.kts index f0e28cfd..8b722e6b 100644 --- a/spackle-lib/build.gradle.kts +++ b/spackle-lib/build.gradle.kts @@ -6,13 +6,6 @@ plugins { } android { - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlin.RequiresOptIn" - } - // Force orchestrator to be used for this module, because we need the preference files // to be purged between tests defaultConfig { diff --git a/test-lib/build.gradle.kts b/test-lib/build.gradle.kts index 5f6f7576..e2334879 100644 --- a/test-lib/build.gradle.kts +++ b/test-lib/build.gradle.kts @@ -5,13 +5,6 @@ plugins { } android { - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs = freeCompilerArgs.plus("-opt-in=kotlin.RequiresOptIn") - } - resourcePrefix = "co_electriccoin_zcash_" } diff --git a/ui-design-lib/build.gradle.kts b/ui-design-lib/build.gradle.kts index 5cc6de0d..8c6450e9 100644 --- a/ui-design-lib/build.gradle.kts +++ b/ui-design-lib/build.gradle.kts @@ -7,7 +7,6 @@ plugins { android { buildFeatures { - viewBinding = true compose = true } @@ -15,13 +14,6 @@ android { kotlinCompilerExtensionVersion = libs.androidx.compose.compiler.get().versionConstraint.displayName } - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs = freeCompilerArgs.plus("-opt-in=kotlin.RequiresOptIn") - } - sourceSets { getByName("main").apply { res.setSrcDirs( diff --git a/ui-lib/build.gradle.kts b/ui-lib/build.gradle.kts index fda73b36..46c8763f 100644 --- a/ui-lib/build.gradle.kts +++ b/ui-lib/build.gradle.kts @@ -15,7 +15,6 @@ android { } buildFeatures { - viewBinding = true compose = true } @@ -23,13 +22,6 @@ android { kotlinCompilerExtensionVersion = libs.androidx.compose.compiler.get().versionConstraint.displayName } - // TODO [#6]: Figure out how to move this into the build-conventions - kotlinOptions { - jvmTarget = libs.versions.java.get() - allWarningsAsErrors = project.property("ZCASH_IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean() - freeCompilerArgs = freeCompilerArgs.plus("-opt-in=kotlin.RequiresOptIn") - } - sourceSets { getByName("main").apply { res.setSrcDirs(