diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt index 7679992eab9..85b800ed4c9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt @@ -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) { + configure.execute(compilerOptions.options) + } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt index f1842f7f987..6684899393d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt @@ -31,6 +31,14 @@ open class KotlinJsCompilation @Inject internal constructor( final override val compilerOptions: HasCompilerOptions get() = compilation.compilerOptions as HasCompilerOptions + fun compilerOptions(configure: KotlinJsCompilerOptions.() -> Unit) { + compilerOptions.configure(configure) + } + + fun compilerOptions(configure: Action) { + configure.execute(compilerOptions.options) + } + val binaries: KotlinJsBinaryContainer = compilation.target.project.objects.newInstance( KotlinJsBinaryContainer::class.java, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt index 946030514ff..f8decf25a1d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt @@ -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 = compilation.compilerOptions.castCompilerOptionsType() + fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) { + compilerOptions.configure(configure) + } + + fun compilerOptions(configure: Action) { + configure.execute(compilerOptions.options) + } + internal val testedVariantArtifacts: Property = compilation.project.objects.property(FileCollection::class.java) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt index 7519763823f..f01c21febc9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt @@ -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 = compilation.compilerOptions.castCompilerOptionsType() + fun compilerOptions(configure: KotlinJvmCompilerOptions.() -> Unit) { + compilerOptions.configure(configure) + } + + fun compilerOptions(configure: Action) { + configure.execute(compilerOptions.options) + } + @Deprecated("Replaced with compileTaskProvider", replaceWith = ReplaceWith("compileTaskProvider")) @Suppress("UNCHECKED_CAST", "DEPRECATION") override val compileKotlinTaskProvider: TaskProvider diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt index 13133e4a393..1ccc308d346 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt @@ -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 = compilation.compilerOptions as HasCompilerOptions + fun compilerOptions(configure: CO.() -> Unit) { + compilerOptions.configure(configure) + } + + fun compilerOptions(configure: Action) { + configure.execute(compilerOptions.options) + } + val compileJavaTaskProvider: TaskProvider get() = target.project.tasks.withType(JavaCompile::class.java).named(javaSourceSet.compileJavaTaskName) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt index 29f143083c3..31c34782bea 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt @@ -44,6 +44,14 @@ abstract class AbstractKotlinNativeCompilation internal constructor( override val compilerOptions: HasCompilerOptions get() = compilation.compilerOptions as HasCompilerOptions + fun compilerOptions(configure: KotlinNativeCompilerOptions.() -> Unit) { + compilerOptions.configure(configure) + } + + fun compilerOptions(configure: Action) { + configure.execute(compilerOptions.options) + } + internal val useGenericPluginArtifact: Boolean get() = project.nativeUseEmbeddableCompilerJar