From bf6fe08472112bf41796e5bed874119b14b54ecb Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 27 Apr 2023 00:40:40 +0530 Subject: refactor(build): remove `kotlin-library` plugin from Android modules --- .../main/kotlin/app/passwordstore/gradle/KotlinCommonPlugin.kt | 6 +++++- .../main/kotlin/app/passwordstore/gradle/KotlinLibraryPlugin.kt | 9 --------- .../src/main/kotlin/app/passwordstore/gradle/LibraryPlugin.kt | 5 ++++- 3 files changed, 9 insertions(+), 11 deletions(-) (limited to 'build-logic/src/main/kotlin/app') diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinCommonPlugin.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinCommonPlugin.kt index 067cadfc..6d43a494 100644 --- a/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinCommonPlugin.kt +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinCommonPlugin.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile class KotlinCommonPlugin : Plugin { override fun apply(project: Project) { + val isAppModule = project.pluginManager.hasPlugin("com.android.application") project.pluginManager.apply(DetektPlugin::class.java) project.extensions.configure { parallel = true @@ -44,12 +45,15 @@ class KotlinCommonPlugin : Plugin { sourceCompatibility = JavaVersion.VERSION_11.toString() targetCompatibility = JavaVersion.VERSION_11.toString() } - withType().configureEach { + withType().configureEach task@{ compilerOptions { jvmTarget.set(JvmTarget.JVM_11) allWarningsAsErrors.set(true) languageVersion.set(KotlinVersion.KOTLIN_1_5) freeCompilerArgs.addAll(ADDITIONAL_COMPILER_ARGS) + if (!this@task.name.contains("test", ignoreCase = true) && !isAppModule) { + freeCompilerArgs.add("-Xexplicit-api=strict") + } } } withType().configureEach { diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinLibraryPlugin.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinLibraryPlugin.kt index e85d5c21..e9c9d1d3 100644 --- a/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinLibraryPlugin.kt +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/KotlinLibraryPlugin.kt @@ -8,20 +8,11 @@ package app.passwordstore.gradle import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.apply -import org.gradle.kotlin.dsl.withType -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @Suppress("Unused") class KotlinLibraryPlugin : Plugin { override fun apply(project: Project) { project.pluginManager.apply(KotlinCommonPlugin::class) - project.tasks.withType().configureEach task@{ - compilerOptions { - if (!this@task.name.contains("test", ignoreCase = true)) { - freeCompilerArgs.add("-Xexplicit-api=strict") - } - } - } } } diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/LibraryPlugin.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/LibraryPlugin.kt index 22cc8ca3..c607f6da 100644 --- a/build-logic/src/main/kotlin/app/passwordstore/gradle/LibraryPlugin.kt +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/LibraryPlugin.kt @@ -9,7 +9,10 @@ import org.gradle.kotlin.dsl.apply class LibraryPlugin : Plugin { override fun apply(project: Project) { - project.pluginManager.apply(LibraryPlugin::class) + project.pluginManager.run { + apply(LibraryPlugin::class) + apply(KotlinCommonPlugin::class) + } AndroidCommon.configure(project) } } -- cgit v1.2.3