Move kotlinOptions out of the tasks

This commit is contained in:
Sergey Igushkin
2020-06-05 19:46:07 +03:00
parent 19ac036ec5
commit 0b7d8c51cb
16 changed files with 81 additions and 56 deletions
@@ -20,6 +20,8 @@ import org.gradle.api.artifacts.Configuration
import org.gradle.api.file.FileCollection import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.* import org.gradle.api.tasks.*
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments 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.FilteringSourceRootsContainer
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.tasks.SourceRoots import org.jetbrains.kotlin.gradle.tasks.SourceRoots
@@ -33,6 +35,8 @@ import java.io.File
open class KaptGenerateStubsTask : KotlinCompile() { open class KaptGenerateStubsTask : KotlinCompile() {
override val sourceRootsContainer = FilteringSourceRootsContainer(emptyList(), { isSourceRootAllowed(it) }) override val sourceRootsContainer = FilteringSourceRootsContainer(emptyList(), { isSourceRootAllowed(it) })
override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl()
@get:Internal @get:Internal
@field:Transient // can't serialize task references in Gradle instant execution state @field:Transient // can't serialize task references in Gradle instant execution state
internal lateinit var kotlinCompileTask: KotlinCompile internal lateinit var kotlinCompileTask: KotlinCompile
@@ -614,9 +614,16 @@ internal open class KotlinPlugin(
Kotlin2JvmSourceSetProcessor(tasksProvider, compilation, kotlinPluginVersion) Kotlin2JvmSourceSetProcessor(tasksProvider, compilation, kotlinPluginVersion)
override fun apply(project: Project) { override fun apply(project: Project) {
val target = KotlinWithJavaTarget<KotlinJvmOptions>(project, KotlinPlatformType.jvm, targetName).apply { val target =
disambiguationClassifier = null // don't add anything to the task names KotlinWithJavaTarget<KotlinJvmOptions>(
} project,
KotlinPlatformType.jvm,
targetName,
{ KotlinJvmOptionsImpl() }
).apply {
disambiguationClassifier = null // don't add anything to the task names
}
(project.kotlinExtension as KotlinJvmProjectExtension).target = target (project.kotlinExtension as KotlinJvmProjectExtension).target = target
super.apply(project) super.apply(project)
@@ -642,7 +649,12 @@ internal open class KotlinCommonPlugin(
KotlinCommonSourceSetProcessor(compilation, tasksProvider, kotlinPluginVersion) KotlinCommonSourceSetProcessor(compilation, tasksProvider, kotlinPluginVersion)
override fun apply(project: Project) { override fun apply(project: Project) {
val target = KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>(project, KotlinPlatformType.common, targetName) val target = KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>(
project,
KotlinPlatformType.common,
targetName,
{ KotlinMultiplatformCommonOptionsImpl() }
)
(project.kotlinExtension as KotlinCommonProjectExtension).target = target (project.kotlinExtension as KotlinCommonProjectExtension).target = target
super.apply(project) super.apply(project)
@@ -675,7 +687,7 @@ internal open class Kotlin2JsPlugin(
For usage details, see https://kotlinlang.org/docs/reference/js-project-setup.html For usage details, see https://kotlinlang.org/docs/reference/js-project-setup.html
""".trimIndent() """.trimIndent()
) )
val target = KotlinWithJavaTarget<KotlinJsOptions>(project, KotlinPlatformType.js, targetName) val target = KotlinWithJavaTarget<KotlinJsOptions>(project, KotlinPlatformType.js, targetName, { KotlinJsOptionsImpl() })
(project.kotlinExtension as Kotlin2JsProjectExtension).target = target (project.kotlinExtension as Kotlin2JsProjectExtension).target = target
super.apply(project) super.apply(project)
@@ -8,9 +8,8 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.file.FileCollection import org.gradle.api.file.FileCollection
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptions 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.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations
@@ -22,6 +21,9 @@ class KotlinCommonCompilation(
target: KotlinTarget, target: KotlinTarget,
name: String name: String
) : AbstractKotlinCompilation<KotlinMultiplatformCommonOptions>(target, name), KotlinMetadataCompilation<KotlinMultiplatformCommonOptions> { ) : AbstractKotlinCompilation<KotlinMultiplatformCommonOptions>(target, name), KotlinMetadataCompilation<KotlinMultiplatformCommonOptions> {
override val kotlinOptions: KotlinMultiplatformCommonOptions = KotlinMultiplatformCommonOptionsImpl()
override val compileKotlinTask: KotlinCompileCommon override val compileKotlinTask: KotlinCompileCommon
get() = super.compileKotlinTask as KotlinCompileCommon get() = super.compileKotlinTask as KotlinCompileCommon
@@ -44,9 +44,6 @@ abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
override val compilationName: String override val compilationName: String
) : KotlinCompilation<T>, HasKotlinDependencies { ) : KotlinCompilation<T>, HasKotlinDependencies {
override val kotlinOptions: T
get() = compileKotlinTask.kotlinOptions
override fun kotlinOptions(configure: T.() -> Unit) = override fun kotlinOptions(configure: T.() -> Unit) =
configure(kotlinOptions) configure(kotlinOptions)
@@ -11,6 +11,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.gradle.util.WrapUtil import org.gradle.util.WrapUtil
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions 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.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
@@ -26,6 +27,9 @@ open class KotlinJsCompilation(
target: KotlinTarget, target: KotlinTarget,
name: String name: String
) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(target, name), KotlinCompilationWithResources<KotlinJsOptions> { ) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(target, name), KotlinCompilationWithResources<KotlinJsOptions> {
override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsImpl()
internal val binaries: KotlinJsBinaryContainer = internal val binaries: KotlinJsBinaryContainer =
target.project.objects.newInstance( target.project.objects.newInstance(
KotlinJsBinaryContainer::class.java, KotlinJsBinaryContainer::class.java,
@@ -11,6 +11,7 @@ import org.gradle.api.tasks.*
import org.gradle.api.tasks.incremental.IncrementalTaskInputs import org.gradle.api.tasks.incremental.IncrementalTaskInputs
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions 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
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.PRODUCTION import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.PRODUCTION
@@ -27,6 +28,8 @@ open class KotlinJsIrLink : Kotlin2JsCompile() {
@Internal @Internal
override fun getSource(): FileTree = super.getSource() override fun getSource(): FileTree = super.getSource()
override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsImpl()
@get:SkipWhenEmpty @get:SkipWhenEmpty
@get:InputDirectory @get:InputDirectory
@get:PathSensitive(PathSensitivity.RELATIVE) @get:PathSensitive(PathSensitivity.RELATIVE)
@@ -12,6 +12,7 @@ import org.gradle.api.provider.Property
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions 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.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.getJavaTaskProvider import org.jetbrains.kotlin.gradle.plugin.getJavaTaskProvider
import org.jetbrains.kotlin.gradle.plugin.getTestedVariantData import org.jetbrains.kotlin.gradle.plugin.getTestedVariantData
@@ -21,8 +22,10 @@ import org.jetbrains.kotlin.gradle.plugin.getTestedVariantData
name: String name: String
) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(target, name) { ) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(target, name) {
lateinit var androidVariant: BaseVariant override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl()
internal set
lateinit var androidVariant: BaseVariant
internal set
override val compileKotlinTask: org.jetbrains.kotlin.gradle.tasks.KotlinCompile override val compileKotlinTask: org.jetbrains.kotlin.gradle.tasks.KotlinCompile
get() = super.compileKotlinTask as org.jetbrains.kotlin.gradle.tasks.KotlinCompile get() = super.compileKotlinTask as org.jetbrains.kotlin.gradle.tasks.KotlinCompile
@@ -8,8 +8,9 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.compile.JavaCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import org.gradle.api.tasks.TaskProvider 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.plugin.KotlinCompilationWithResources
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
@@ -17,6 +18,9 @@ open class KotlinJvmCompilation(
override val target: KotlinJvmTarget, override val target: KotlinJvmTarget,
name: String name: String
) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(target, name), KotlinCompilationWithResources<KotlinJvmOptions> { ) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(target, name), KotlinCompilationWithResources<KotlinJvmOptions> {
override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl()
override val processResourcesTaskName: String override val processResourcesTaskName: String
get() = disambiguateName("processResources") get() = disambiguateName("processResources")
@@ -9,6 +9,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.plugins.JavaPlugin import org.gradle.api.plugins.JavaPlugin
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions 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.plugin.*
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
@@ -29,7 +30,7 @@ class KotlinJvmWithJavaTargetPreset(
project.plugins.apply(JavaPlugin::class.java) project.plugins.apply(JavaPlugin::class.java)
val target = KotlinWithJavaTarget<KotlinJvmOptions>(project, KotlinPlatformType.jvm, name).apply { val target = KotlinWithJavaTarget<KotlinJvmOptions>(project, KotlinPlatformType.jvm, name, { KotlinJvmOptionsImpl() }).apply {
disambiguationClassifier = name disambiguationClassifier = name
preset = this@KotlinJvmWithJavaTargetPreset preset = this@KotlinJvmWithJavaTargetPreset
} }
@@ -18,7 +18,8 @@ import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
class KotlinWithJavaCompilation<KotlinOptionsType : KotlinCommonOptions>( class KotlinWithJavaCompilation<KotlinOptionsType : KotlinCommonOptions>(
target: KotlinWithJavaTarget<KotlinOptionsType>, target: KotlinWithJavaTarget<KotlinOptionsType>,
name: String name: String,
override val kotlinOptions: KotlinOptionsType
) : AbstractKotlinCompilationToRunnableFiles<KotlinOptionsType>(target, name), KotlinCompilationWithResources<KotlinOptionsType> { ) : AbstractKotlinCompilationToRunnableFiles<KotlinOptionsType>(target, name), KotlinCompilationWithResources<KotlinOptionsType> {
lateinit var javaSourceSet: SourceSet lateinit var javaSourceSet: SourceSet
@@ -11,7 +11,8 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
class KotlinWithJavaCompilationFactory<KotlinOptionsType : KotlinCommonOptions>( class KotlinWithJavaCompilationFactory<KotlinOptionsType : KotlinCommonOptions>(
val project: Project, val project: Project,
val target: KotlinWithJavaTarget<KotlinOptionsType> val target: KotlinWithJavaTarget<KotlinOptionsType>,
val kotlinOptionsFactory: () -> KotlinOptionsType
) : KotlinCompilationFactory<KotlinWithJavaCompilation<KotlinOptionsType>> { ) : KotlinCompilationFactory<KotlinWithJavaCompilation<KotlinOptionsType>> {
override val itemClass: Class<KotlinWithJavaCompilation<KotlinOptionsType>> override val itemClass: Class<KotlinWithJavaCompilation<KotlinOptionsType>>
@@ -19,7 +20,7 @@ class KotlinWithJavaCompilationFactory<KotlinOptionsType : KotlinCommonOptions>(
get() = KotlinWithJavaCompilation::class.java as Class<KotlinWithJavaCompilation<KotlinOptionsType>> get() = KotlinWithJavaCompilation::class.java as Class<KotlinWithJavaCompilation<KotlinOptionsType>>
override fun create(name: String): KotlinWithJavaCompilation<KotlinOptionsType> { override fun create(name: String): KotlinWithJavaCompilation<KotlinOptionsType> {
val result = KotlinWithJavaCompilation(target, name) val result = KotlinWithJavaCompilation(target, name, kotlinOptionsFactory())
return result return result
} }
} }
@@ -19,7 +19,8 @@ import java.io.File
open class KotlinWithJavaTarget<KotlinOptionsType : KotlinCommonOptions>( open class KotlinWithJavaTarget<KotlinOptionsType : KotlinCommonOptions>(
project: Project, project: Project,
override val platformType: KotlinPlatformType, override val platformType: KotlinPlatformType,
override val targetName: String override val targetName: String,
kotlinOptionsFactory: () -> KotlinOptionsType
) : AbstractKotlinTarget(project) { ) : AbstractKotlinTarget(project) {
override var disambiguationClassifier: String? = null override var disambiguationClassifier: String? = null
internal set internal set
@@ -40,7 +41,7 @@ open class KotlinWithJavaTarget<KotlinOptionsType : KotlinCommonOptions>(
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
project.container( project.container(
KotlinWithJavaCompilation::class.java as Class<KotlinWithJavaCompilation<KotlinOptionsType>>, KotlinWithJavaCompilation::class.java as Class<KotlinWithJavaCompilation<KotlinOptionsType>>,
KotlinWithJavaCompilationFactory(project, this) KotlinWithJavaCompilationFactory(project, this, kotlinOptionsFactory)
) )
internal val defaultArtifactClassesListFile: File internal val defaultArtifactClassesListFile: File
@@ -16,10 +16,7 @@ import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.gradle.util.ConfigureUtil import org.gradle.util.ConfigureUtil
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.*
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.sources.getSourceSetHierarchy import org.jetbrains.kotlin.gradle.plugin.sources.getSourceSetHierarchy
import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations
import org.jetbrains.kotlin.gradle.targets.metadata.getMetadataCompilationForSourceSet import org.jetbrains.kotlin.gradle.targets.metadata.getMetadataCompilationForSourceSet
@@ -34,8 +31,26 @@ abstract class AbstractKotlinNativeCompilation(
compilationName: String compilationName: String
) : AbstractKotlinCompilation<KotlinCommonOptions>(target, compilationName) { ) : AbstractKotlinCompilation<KotlinCommonOptions>(target, compilationName) {
override val kotlinOptions: KotlinCommonOptions override val kotlinOptions: KotlinCommonOptions = NativeCompileOptions()
get() = compileKotlinTask.kotlinOptions
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<String> = listOf()
}
override val compileKotlinTask: KotlinNativeCompile override val compileKotlinTask: KotlinNativeCompile
get() = super.compileKotlinTask as KotlinNativeCompile get() = super.compileKotlinTask as KotlinNativeCompile
@@ -96,9 +111,6 @@ class KotlinNativeCompilation(
val binariesTaskName: String val binariesTaskName: String
get() = lowerCamelCaseName(target.disambiguationClassifier, compilationName, "binaries") get() = lowerCamelCaseName(target.disambiguationClassifier, compilationName, "binaries")
override val kotlinOptions: KotlinCommonOptions
get() = compileKotlinTask.kotlinOptions
} }
class KotlinSharedNativeCompilation(override val target: KotlinMetadataTarget, val konanTargets: List<KonanTarget>, name: String) : class KotlinSharedNativeCompilation(override val target: KotlinMetadataTarget, val konanTargets: List<KonanTarget>, name: String) :
@@ -368,28 +368,13 @@ open class KotlinNativeCompile : AbstractKotlinNativeCompile<KotlinCommonOptions
// endregion. // endregion.
// region Kotlin options. // region Kotlin options.
private inner class NativeCompileOptions : KotlinCommonOptions { override val kotlinOptions: KotlinCommonOptions
override var apiVersion: String? get() = compilation.kotlinOptions
get() = languageSettings.apiVersion
set(value) { languageSettings.apiVersion = value }
override var languageVersion: String?
get() = this@KotlinNativeCompile.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<String> = listOf()
}
@get:Input @get:Input
override val additionalCompilerOptions: Collection<String> override val additionalCompilerOptions: Collection<String>
get() = kotlinOptions.freeCompilerArgs get() = kotlinOptions.freeCompilerArgs
override val kotlinOptions: KotlinCommonOptions = NativeCompileOptions()
override fun kotlinOptions(fn: KotlinCommonOptions.() -> Unit) { override fun kotlinOptions(fn: KotlinCommonOptions.() -> Unit) {
kotlinOptions.fn() kotlinOptions.fn()
} }
@@ -40,9 +40,8 @@ import java.io.File
@CacheableTask @CacheableTask
open class KotlinCompileCommon : AbstractKotlinCompile<K2MetadataCompilerArguments>(), KotlinCommonCompile { open class KotlinCompileCommon : AbstractKotlinCompile<K2MetadataCompilerArguments>(), KotlinCommonCompile {
private val kotlinOptionsImpl = KotlinMultiplatformCommonOptionsImpl()
override val kotlinOptions: KotlinMultiplatformCommonOptions override val kotlinOptions: KotlinMultiplatformCommonOptions
get() = kotlinOptionsImpl get() = taskData.compilation.kotlinOptions as KotlinMultiplatformCommonOptionsImpl
override fun createCompilerArgs(): K2MetadataCompilerArguments = override fun createCompilerArgs(): K2MetadataCompilerArguments =
K2MetadataCompilerArguments() K2MetadataCompilerArguments()
@@ -75,7 +74,7 @@ open class KotlinCompileCommon : AbstractKotlinCompile<K2MetadataCompilerArgumen
refinesPaths = refinesMetadataPaths.map { it.absolutePath }.toTypedArray() refinesPaths = refinesMetadataPaths.map { it.absolutePath }.toTypedArray()
} }
kotlinOptionsImpl.updateArguments(args) (kotlinOptions as KotlinMultiplatformCommonOptionsImpl).updateArguments(args)
} }
private fun outputPathsFromMetadataCompilationsOf(sourceSets: Iterable<KotlinSourceSet>): List<File> { private fun outputPathsFromMetadataCompilationsOf(sourceSets: Iterable<KotlinSourceSet>): List<File> {
@@ -358,10 +358,8 @@ open class KotlinCompile : AbstractKotlinCompile<K2JVMCompilerArguments>(), Kotl
@get:Internal @get:Internal
internal var parentKotlinOptionsImpl: KotlinJvmOptionsImpl? = null internal var parentKotlinOptionsImpl: KotlinJvmOptionsImpl? = null
private val kotlinOptionsImpl = KotlinJvmOptionsImpl()
override val kotlinOptions: KotlinJvmOptions override val kotlinOptions: KotlinJvmOptions
get() = kotlinOptionsImpl get() = taskData.compilation.kotlinOptions as KotlinJvmOptions
@get:Internal @get:Internal
internal open val sourceRootsContainer = FilteringSourceRootsContainer() internal open val sourceRootsContainer = FilteringSourceRootsContainer()
@@ -509,10 +507,8 @@ open class Kotlin2JsCompile : AbstractKotlinCompile<K2JSCompilerArguments>(), Ko
incremental = true incremental = true
} }
private val kotlinOptionsImpl = KotlinJsOptionsImpl()
override val kotlinOptions: KotlinJsOptions override val kotlinOptions: KotlinJsOptions
get() = kotlinOptionsImpl get() = taskData.compilation.kotlinOptions as KotlinJsOptions
@get:Internal @get:Internal
protected val defaultOutputFile: File protected val defaultOutputFile: File
@@ -548,7 +544,7 @@ open class Kotlin2JsCompile : AbstractKotlinCompile<K2JSCompilerArguments>(), Ko
if (defaultsOnly) return if (defaultsOnly) return
kotlinOptionsImpl.updateArguments(args) (kotlinOptions as KotlinJsOptionsImpl).updateArguments(args)
} }
override fun getSourceRoots() = SourceRoots.KotlinOnly.create(getSource(), sourceFilesExtensions) override fun getSourceRoots() = SourceRoots.KotlinOnly.create(getSource(), sourceFilesExtensions)
@@ -570,7 +566,7 @@ open class Kotlin2JsCompile : AbstractKotlinCompile<K2JSCompilerArguments>(), Ko
@get:Optional @get:Optional
@get:PathSensitive(PathSensitivity.RELATIVE) @get:PathSensitive(PathSensitivity.RELATIVE)
internal val sourceMapBaseDirs: FileCollection? internal val sourceMapBaseDirs: FileCollection?
get() = kotlinOptionsImpl.sourceMapBaseDirs get() = (kotlinOptions as KotlinJsOptionsImpl).sourceMapBaseDirs
private fun isHybridKotlinJsLibrary(file: File): Boolean = private fun isHybridKotlinJsLibrary(file: File): Boolean =
JsLibraryUtils.isKotlinJavascriptLibrary(file) && isKotlinLibrary(file) JsLibraryUtils.isKotlinJavascriptLibrary(file) && isKotlinLibrary(file)