Move kotlinOptions out of the tasks
This commit is contained in:
+4
@@ -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
|
||||||
|
|||||||
+17
-5
@@ -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)
|
||||||
|
|||||||
+4
-2
@@ -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
|
||||||
|
|
||||||
|
|||||||
-3
@@ -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)
|
||||||
|
|
||||||
|
|||||||
+4
@@ -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,
|
||||||
|
|||||||
+3
@@ -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)
|
||||||
|
|||||||
+5
-2
@@ -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
|
||||||
|
|||||||
+5
-1
@@ -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")
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -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
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+3
-2
@@ -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
|
||||||
|
|||||||
+21
-9
@@ -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) :
|
||||||
|
|||||||
+2
-17
@@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -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> {
|
||||||
|
|||||||
+4
-8
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user