diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt index 13b7f3f47bf..d3cce4c560b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt @@ -20,6 +20,8 @@ import org.gradle.api.artifacts.Configuration import org.gradle.api.file.FileCollection import org.gradle.api.tasks.* import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments +import org.jetbrains.kotlin.gradle.dsl.* +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl import org.jetbrains.kotlin.gradle.tasks.FilteringSourceRootsContainer import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.SourceRoots @@ -33,6 +35,8 @@ import java.io.File open class KaptGenerateStubsTask : KotlinCompile() { override val sourceRootsContainer = FilteringSourceRootsContainer(emptyList(), { isSourceRootAllowed(it) }) + override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl() + @get:Internal @field:Transient // can't serialize task references in Gradle instant execution state internal lateinit var kotlinCompileTask: KotlinCompile diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 2a62792e73d..8bfa3fbf6b6 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -614,9 +614,16 @@ internal open class KotlinPlugin( Kotlin2JvmSourceSetProcessor(tasksProvider, compilation, kotlinPluginVersion) override fun apply(project: Project) { - val target = KotlinWithJavaTarget(project, KotlinPlatformType.jvm, targetName).apply { - disambiguationClassifier = null // don't add anything to the task names - } + val target = + KotlinWithJavaTarget( + project, + KotlinPlatformType.jvm, + targetName, + { KotlinJvmOptionsImpl() } + ).apply { + disambiguationClassifier = null // don't add anything to the task names + } + (project.kotlinExtension as KotlinJvmProjectExtension).target = target super.apply(project) @@ -642,7 +649,12 @@ internal open class KotlinCommonPlugin( KotlinCommonSourceSetProcessor(compilation, tasksProvider, kotlinPluginVersion) override fun apply(project: Project) { - val target = KotlinWithJavaTarget(project, KotlinPlatformType.common, targetName) + val target = KotlinWithJavaTarget( + project, + KotlinPlatformType.common, + targetName, + { KotlinMultiplatformCommonOptionsImpl() } + ) (project.kotlinExtension as KotlinCommonProjectExtension).target = target super.apply(project) @@ -675,7 +687,7 @@ internal open class Kotlin2JsPlugin( For usage details, see https://kotlinlang.org/docs/reference/js-project-setup.html """.trimIndent() ) - val target = KotlinWithJavaTarget(project, KotlinPlatformType.js, targetName) + val target = KotlinWithJavaTarget(project, KotlinPlatformType.js, targetName, { KotlinJsOptionsImpl() }) (project.kotlinExtension as Kotlin2JsProjectExtension).target = target super.apply(project) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt index 23aba0ade5c..6aa874f0be9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt @@ -8,9 +8,8 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.file.FileCollection import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptions -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptionsImpl import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations @@ -22,6 +21,9 @@ class KotlinCommonCompilation( target: KotlinTarget, name: String ) : AbstractKotlinCompilation(target, name), KotlinMetadataCompilation { + + override val kotlinOptions: KotlinMultiplatformCommonOptions = KotlinMultiplatformCommonOptionsImpl() + override val compileKotlinTask: KotlinCompileCommon get() = super.compileKotlinTask as KotlinCompileCommon diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt index 16030ea9bbe..2286cc8575f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt @@ -44,9 +44,6 @@ abstract class AbstractKotlinCompilation( override val compilationName: String ) : KotlinCompilation, HasKotlinDependencies { - override val kotlinOptions: T - get() = compileKotlinTask.kotlinOptions - override fun kotlinOptions(configure: T.() -> Unit) = configure(kotlinOptions) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt index be89ab60065..082079f2f97 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt @@ -11,6 +11,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.tasks.TaskProvider import org.gradle.util.WrapUtil import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptionsImpl import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources import org.jetbrains.kotlin.gradle.plugin.KotlinTarget @@ -26,6 +27,9 @@ open class KotlinJsCompilation( target: KotlinTarget, name: String ) : AbstractKotlinCompilationToRunnableFiles(target, name), KotlinCompilationWithResources { + + override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsImpl() + internal val binaries: KotlinJsBinaryContainer = target.project.objects.newInstance( KotlinJsBinaryContainer::class.java, diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt index 2b0beb3f6c8..421f81946ca 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt @@ -11,6 +11,7 @@ import org.gradle.api.tasks.* import org.gradle.api.tasks.incremental.IncrementalTaskInputs import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptionsImpl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.PRODUCTION @@ -27,6 +28,8 @@ open class KotlinJsIrLink : Kotlin2JsCompile() { @Internal override fun getSource(): FileTree = super.getSource() + override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsImpl() + @get:SkipWhenEmpty @get:InputDirectory @get:PathSensitive(PathSensitivity.RELATIVE) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt index 49286476070..2b97ccdc5ab 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt @@ -12,6 +12,7 @@ import org.gradle.api.provider.Property import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.compile.JavaCompile import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.getJavaTaskProvider import org.jetbrains.kotlin.gradle.plugin.getTestedVariantData @@ -21,8 +22,10 @@ import org.jetbrains.kotlin.gradle.plugin.getTestedVariantData name: String ) : AbstractKotlinCompilationToRunnableFiles(target, name) { - lateinit var androidVariant: BaseVariant - internal set + override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl() + + lateinit var androidVariant: BaseVariant + internal set override val compileKotlinTask: org.jetbrains.kotlin.gradle.tasks.KotlinCompile get() = super.compileKotlinTask as org.jetbrains.kotlin.gradle.tasks.KotlinCompile diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt index 0ab172b4349..45d484f02d4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt @@ -8,8 +8,9 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.tasks.compile.JavaCompile -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.gradle.api.tasks.TaskProvider +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget @@ -17,6 +18,9 @@ open class KotlinJvmCompilation( override val target: KotlinJvmTarget, name: String ) : AbstractKotlinCompilationToRunnableFiles(target, name), KotlinCompilationWithResources { + + override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl() + override val processResourcesTaskName: String get() = disambiguateName("processResources") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt index e8fd9bd8b68..2fb64a96b69 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmWithJavaTargetPreset.kt @@ -9,6 +9,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.Project import org.gradle.api.plugins.JavaPlugin import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptionsImpl import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider @@ -29,7 +30,7 @@ class KotlinJvmWithJavaTargetPreset( project.plugins.apply(JavaPlugin::class.java) - val target = KotlinWithJavaTarget(project, KotlinPlatformType.jvm, name).apply { + val target = KotlinWithJavaTarget(project, KotlinPlatformType.jvm, name, { KotlinJvmOptionsImpl() }).apply { disambiguationClassifier = name preset = this@KotlinJvmWithJavaTargetPreset } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt index 789c91694dc..177cfca900c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt @@ -18,7 +18,8 @@ import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile class KotlinWithJavaCompilation( target: KotlinWithJavaTarget, - name: String + name: String, + override val kotlinOptions: KotlinOptionsType ) : AbstractKotlinCompilationToRunnableFiles(target, name), KotlinCompilationWithResources { lateinit var javaSourceSet: SourceSet diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilationFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilationFactory.kt index d913ab433a8..59d21b20f56 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilationFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilationFactory.kt @@ -11,7 +11,8 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions class KotlinWithJavaCompilationFactory( val project: Project, - val target: KotlinWithJavaTarget + val target: KotlinWithJavaTarget, + val kotlinOptionsFactory: () -> KotlinOptionsType ) : KotlinCompilationFactory> { override val itemClass: Class> @@ -19,7 +20,7 @@ class KotlinWithJavaCompilationFactory( get() = KotlinWithJavaCompilation::class.java as Class> override fun create(name: String): KotlinWithJavaCompilation { - val result = KotlinWithJavaCompilation(target, name) + val result = KotlinWithJavaCompilation(target, name, kotlinOptionsFactory()) return result } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt index 7b260a6624d..0cd6128a477 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaTarget.kt @@ -19,7 +19,8 @@ import java.io.File open class KotlinWithJavaTarget( project: Project, override val platformType: KotlinPlatformType, - override val targetName: String + override val targetName: String, + kotlinOptionsFactory: () -> KotlinOptionsType ) : AbstractKotlinTarget(project) { override var disambiguationClassifier: String? = null internal set @@ -40,7 +41,7 @@ open class KotlinWithJavaTarget( @Suppress("UNCHECKED_CAST") project.container( KotlinWithJavaCompilation::class.java as Class>, - KotlinWithJavaCompilationFactory(project, this) + KotlinWithJavaCompilationFactory(project, this, kotlinOptionsFactory) ) internal val defaultArtifactClassesListFile: File diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt index bf8787d9b58..cecd1e44d09 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt @@ -16,10 +16,7 @@ import org.gradle.api.file.SourceDirectorySet import org.gradle.api.tasks.TaskProvider import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget +import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.sources.getSourceSetHierarchy import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations import org.jetbrains.kotlin.gradle.targets.metadata.getMetadataCompilationForSourceSet @@ -34,8 +31,26 @@ abstract class AbstractKotlinNativeCompilation( compilationName: String ) : AbstractKotlinCompilation(target, compilationName) { - override val kotlinOptions: KotlinCommonOptions - get() = compileKotlinTask.kotlinOptions + override val kotlinOptions: KotlinCommonOptions = NativeCompileOptions() + + private inner class NativeCompileOptions : KotlinCommonOptions { + private val languageSettings: LanguageSettingsBuilder + get() = defaultSourceSet.languageSettings + + override var apiVersion: String? + get() = languageSettings.apiVersion + set(value) { languageSettings.apiVersion = value } + + override var languageVersion: String? + get() = languageSettings.languageVersion + set(value) { languageSettings.languageVersion = value } + + override var allWarningsAsErrors: Boolean = false + override var suppressWarnings: Boolean = false + override var verbose: Boolean = false + + override var freeCompilerArgs: List = listOf() + } override val compileKotlinTask: KotlinNativeCompile get() = super.compileKotlinTask as KotlinNativeCompile @@ -96,9 +111,6 @@ class KotlinNativeCompilation( val binariesTaskName: String get() = lowerCamelCaseName(target.disambiguationClassifier, compilationName, "binaries") - - override val kotlinOptions: KotlinCommonOptions - get() = compileKotlinTask.kotlinOptions } class KotlinSharedNativeCompilation(override val target: KotlinMetadataTarget, val konanTargets: List, name: String) : diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index 301c0d5d622..1278a75241f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -368,28 +368,13 @@ open class KotlinNativeCompile : AbstractKotlinNativeCompile = listOf() - } + override val kotlinOptions: KotlinCommonOptions + get() = compilation.kotlinOptions @get:Input override val additionalCompilerOptions: Collection get() = kotlinOptions.freeCompilerArgs - override val kotlinOptions: KotlinCommonOptions = NativeCompileOptions() - override fun kotlinOptions(fn: KotlinCommonOptions.() -> Unit) { kotlinOptions.fn() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt index 9a2b4e79d14..79fb4d61739 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinCompileCommon.kt @@ -40,9 +40,8 @@ import java.io.File @CacheableTask open class KotlinCompileCommon : AbstractKotlinCompile(), KotlinCommonCompile { - private val kotlinOptionsImpl = KotlinMultiplatformCommonOptionsImpl() override val kotlinOptions: KotlinMultiplatformCommonOptions - get() = kotlinOptionsImpl + get() = taskData.compilation.kotlinOptions as KotlinMultiplatformCommonOptionsImpl override fun createCompilerArgs(): K2MetadataCompilerArguments = K2MetadataCompilerArguments() @@ -75,7 +74,7 @@ open class KotlinCompileCommon : AbstractKotlinCompile): List { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index c8caf7b20ea..54757786199 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -358,10 +358,8 @@ open class KotlinCompile : AbstractKotlinCompile(), Kotl @get:Internal internal var parentKotlinOptionsImpl: KotlinJvmOptionsImpl? = null - private val kotlinOptionsImpl = KotlinJvmOptionsImpl() - override val kotlinOptions: KotlinJvmOptions - get() = kotlinOptionsImpl + get() = taskData.compilation.kotlinOptions as KotlinJvmOptions @get:Internal internal open val sourceRootsContainer = FilteringSourceRootsContainer() @@ -509,10 +507,8 @@ open class Kotlin2JsCompile : AbstractKotlinCompile(), Ko incremental = true } - private val kotlinOptionsImpl = KotlinJsOptionsImpl() - override val kotlinOptions: KotlinJsOptions - get() = kotlinOptionsImpl + get() = taskData.compilation.kotlinOptions as KotlinJsOptions @get:Internal protected val defaultOutputFile: File @@ -548,7 +544,7 @@ open class Kotlin2JsCompile : AbstractKotlinCompile(), Ko if (defaultsOnly) return - kotlinOptionsImpl.updateArguments(args) + (kotlinOptions as KotlinJsOptionsImpl).updateArguments(args) } override fun getSourceRoots() = SourceRoots.KotlinOnly.create(getSource(), sourceFilesExtensions) @@ -570,7 +566,7 @@ open class Kotlin2JsCompile : AbstractKotlinCompile(), Ko @get:Optional @get:PathSensitive(PathSensitivity.RELATIVE) internal val sourceMapBaseDirs: FileCollection? - get() = kotlinOptionsImpl.sourceMapBaseDirs + get() = (kotlinOptions as KotlinJsOptionsImpl).sourceMapBaseDirs private fun isHybridKotlinJsLibrary(file: File): Boolean = JsLibraryUtils.isKotlinJavascriptLibrary(file) && isKotlinLibrary(file)