[Gradle] Add compilerOptions() methods to KotlinCompilation implementations

This should help to avoid user mistakes in configuring options when they
 are trying to use KotlinCompilation.

^KT-61636 Fixed
This commit is contained in:
Yahor Berdnikau
2023-09-01 11:27:40 +02:00
committed by Space Team
parent 55a0c86508
commit 38e7bf6afa
6 changed files with 53 additions and 0 deletions
@@ -5,7 +5,9 @@
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Action
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
@@ -33,5 +35,13 @@ open class KotlinCommonCompilation @Inject internal constructor(compilation: Kot
get() = target.project.isKotlinGranularMetadataEnabled && !forceCompilationToKotlinMetadata
internal var forceCompilationToKotlinMetadata: Boolean = false
fun compilerOptions(configure: KotlinCommonCompilerOptions.() -> Unit) {
compilerOptions.configure(configure)
}
fun compilerOptions(configure: Action<KotlinCommonCompilerOptions>) {
configure.execute(compilerOptions.options)
}
}
@@ -31,6 +31,14 @@ open class KotlinJsCompilation @Inject internal constructor(
final override val compilerOptions: HasCompilerOptions<KotlinJsCompilerOptions>
get() = compilation.compilerOptions as HasCompilerOptions<KotlinJsCompilerOptions>
fun compilerOptions(configure: KotlinJsCompilerOptions.() -> Unit) {
compilerOptions.configure(configure)
}
fun compilerOptions(configure: Action<KotlinJsCompilerOptions>) {
configure.execute(compilerOptions.options)
}
val binaries: KotlinJsBinaryContainer =
compilation.target.project.objects.newInstance(
KotlinJsBinaryContainer::class.java,
@@ -7,6 +7,7 @@
package org.jetbrains.kotlin.gradle.plugin.mpp
import com.android.build.gradle.api.BaseVariant
import org.gradle.api.Action
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Property
import org.gradle.api.tasks.TaskProvider
@@ -29,6 +30,14 @@ open class KotlinJvmAndroidCompilation @Inject internal constructor(
override val compilerOptions: HasCompilerOptions<KotlinJvmCompilerOptions> =
compilation.compilerOptions.castCompilerOptionsType()
fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) {
compilerOptions.configure(configure)
}
fun compilerOptions(configure: Action<KotlinJvmCompilerOptions>) {
configure.execute(compilerOptions.options)
}
internal val testedVariantArtifacts: Property<FileCollection> =
compilation.project.objects.property(FileCollection::class.java)
@@ -6,6 +6,7 @@
@file:Suppress("PackageDirectoryMismatch") // Old package for compatibility
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Action
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.TaskProvider
@@ -34,6 +35,14 @@ open class KotlinJvmCompilation @Inject internal constructor(
override val compilerOptions: HasCompilerOptions<KotlinJvmCompilerOptions> =
compilation.compilerOptions.castCompilerOptionsType()
fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) {
compilerOptions.configure(configure)
}
fun compilerOptions(configure: Action<KotlinJvmCompilerOptions>) {
configure.execute(compilerOptions.options)
}
@Deprecated("Replaced with compileTaskProvider", replaceWith = ReplaceWith("compileTaskProvider"))
@Suppress("UNCHECKED_CAST", "DEPRECATION")
override val compileKotlinTaskProvider: TaskProvider<out org.jetbrains.kotlin.gradle.tasks.KotlinCompile>
@@ -6,6 +6,7 @@
@file:Suppress("PackageDirectoryMismatch", "UNCHECKED_CAST") // Old package for compatibility
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Action
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.JavaCompile
@@ -28,6 +29,14 @@ open class KotlinWithJavaCompilation<KotlinOptionsType : KotlinCommonOptions, CO
override val compilerOptions: HasCompilerOptions<CO> =
compilation.compilerOptions as HasCompilerOptions<CO>
fun compilerOptions(configure: CO.() -> Unit) {
compilerOptions.configure(configure)
}
fun compilerOptions(configure: Action<CO>) {
configure.execute(compilerOptions.options)
}
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
get() = target.project.tasks.withType(JavaCompile::class.java).named(javaSourceSet.compileJavaTaskName)
@@ -44,6 +44,14 @@ abstract class AbstractKotlinNativeCompilation internal constructor(
override val compilerOptions: HasCompilerOptions<KotlinNativeCompilerOptions>
get() = compilation.compilerOptions as HasCompilerOptions<KotlinNativeCompilerOptions>
fun compilerOptions(configure: KotlinNativeCompilerOptions.() -> Unit) {
compilerOptions.configure(configure)
}
fun compilerOptions(configure: Action<KotlinNativeCompilerOptions>) {
configure.execute(compilerOptions.options)
}
internal val useGenericPluginArtifact: Boolean
get() = project.nativeUseEmbeddableCompilerJar