From 2563808ae5dc4843c16dd2d4cc58a32833b0472d Mon Sep 17 00:00:00 2001 From: Karan Sharma <55722391+ksharma-xyz@users.noreply.github.com> Date: Sat, 28 Sep 2024 09:56:40 +1000 Subject: [PATCH] Deprecated KotlinJvmOptions (#64) fix warning: 'KotlinJvmOptions' is deprecated. The kotlinOptions types are deprecated, please migrate to the compilerOptions types. More details are here: https://kotl.in/u1r8ln --- .../AndroidLibraryComposeConventionPlugin.kt | 20 ++++++++-------- .../krail/AndroidLibraryConventionPlugin.kt | 20 ++++++++-------- .../krail/ApplicationConventionPlugin.kt | 23 +++++++++++-------- .../krail/JvmLibraryConventionPlugin.kt | 19 ++++++++------- 4 files changed, 46 insertions(+), 36 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryComposeConventionPlugin.kt b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryComposeConventionPlugin.kt index a3c974d3..38fecea1 100644 --- a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryComposeConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryComposeConventionPlugin.kt @@ -3,10 +3,11 @@ import org.gradle.api.JavaVersion import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.VersionCatalogsExtension -import org.gradle.api.plugins.ExtensionAware import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.getByType -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @Suppress("UNUSED") class AndroidLibraryComposeConventionPlugin : Plugin { @@ -41,13 +42,14 @@ class AndroidLibraryComposeConventionPlugin : Plugin { targetCompatibility = JavaVersion.values()[javaVersion - 1] } - (this as ExtensionAware).configure { - jvmTarget = "$javaVersion" - freeCompilerArgs = freeCompilerArgs + listOf( - "-opt-in=kotlin.RequiresOptIn", - "-opt-in=kotlinx.coroutines.FlowPreview", - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" - ) + tasks.withType().configureEach { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + + freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.FlowPreview") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi") + } } buildFeatures { diff --git a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryConventionPlugin.kt index 1ccf9d5c..61072bb4 100644 --- a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/AndroidLibraryConventionPlugin.kt @@ -3,11 +3,12 @@ import org.gradle.api.JavaVersion import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.VersionCatalogsExtension -import org.gradle.api.plugins.ExtensionAware import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.getByType -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @Suppress("UNUSED") class AndroidLibraryConventionPlugin : Plugin { @@ -41,13 +42,14 @@ class AndroidLibraryConventionPlugin : Plugin { targetCompatibility = JavaVersion.values()[javaVersion - 1] } - (this as ExtensionAware).configure { - jvmTarget = "$javaVersion" - freeCompilerArgs = freeCompilerArgs + listOf( - "-opt-in=kotlin.RequiresOptIn", - "-opt-in=kotlinx.coroutines.FlowPreview", - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" - ) + tasks.withType().configureEach { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + + freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.FlowPreview") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi") + } } buildFeatures { diff --git a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/ApplicationConventionPlugin.kt b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/ApplicationConventionPlugin.kt index 76ba5ace..9b1da1f8 100644 --- a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/ApplicationConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/ApplicationConventionPlugin.kt @@ -3,11 +3,12 @@ import org.gradle.api.JavaVersion import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.VersionCatalogsExtension -import org.gradle.api.plugins.ExtensionAware import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.getByType -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @Suppress("UNUSED") class ApplicationConventionPlugin : Plugin { @@ -18,6 +19,7 @@ class ApplicationConventionPlugin : Plugin { val minSdkVersion = libs.findVersion("minSdk").get().toString().toInt() val targetSdkVersion = libs.findVersion("targetSdk").get().toString().toInt() val compileSdkVersion = libs.findVersion("compileSdk").get().toString().toInt() + //val composeCompilerVersion = libs.findPlugin("composeCompiler").get().toString() with(pluginManager) { apply("com.android.application") @@ -40,13 +42,14 @@ class ApplicationConventionPlugin : Plugin { targetCompatibility = JavaVersion.values()[javaVersion - 1] } - (this as ExtensionAware).configure { - jvmTarget = "$javaVersion" - freeCompilerArgs = freeCompilerArgs + listOf( - "-opt-in=kotlin.RequiresOptIn", - "-opt-in=kotlinx.coroutines.FlowPreview", - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" - ) + tasks.withType().configureEach { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + + freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.FlowPreview") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi") + } } buildFeatures { @@ -54,7 +57,7 @@ class ApplicationConventionPlugin : Plugin { buildConfig = true } - /*composeOptions { + /* composeOptions { kotlinCompilerExtensionVersion = composeCompilerVersion }*/ diff --git a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/JvmLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/JvmLibraryConventionPlugin.kt index ec1cdbd9..863735c9 100644 --- a/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/JvmLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/xyz/ksharma/krail/JvmLibraryConventionPlugin.kt @@ -7,6 +7,8 @@ import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.provideDelegate import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile class JvmLibraryConventionPlugin : Plugin { @@ -25,17 +27,18 @@ class JvmLibraryConventionPlugin : Plugin { } tasks.withType().configureEach { - kotlinOptions { - jvmTarget = javaVersion.toString() + + compilerOptions { val warningsAsErrors: String? by project - allWarningsAsErrors = warningsAsErrors.toBoolean() - freeCompilerArgs = freeCompilerArgs + listOf( - // Enable experimental coroutines APIs, including Flow - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - ) + allWarningsAsErrors.set(warningsAsErrors.toBoolean()) + + jvmTarget.set(JvmTarget.JVM_17) + + freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.FlowPreview") + freeCompilerArgs.add("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi") } } - } } }