Update implementations of KotlinCompilationData to use Compiler*Options
^KT-27301 In Progress
This commit is contained in:
+16
-3
@@ -6,9 +6,10 @@
|
|||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||||
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.CompilerJvmOptions
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.CompilerJvmOptionsDefault
|
||||||
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.KotlinPlatformType
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.archivesName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.archivesName
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.kpm.FragmentMappedKotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.sources.kpm.FragmentMappedKotlinSourceSet
|
||||||
@@ -41,8 +42,19 @@ abstract class GradleKpmJvmVariant @Inject constructor(
|
|||||||
class GradleKpmJvmVariantCompilationData(val variant: GradleKpmJvmVariant) : GradleKpmVariantCompilationDataInternal<KotlinJvmOptions> {
|
class GradleKpmJvmVariantCompilationData(val variant: GradleKpmJvmVariant) : GradleKpmVariantCompilationDataInternal<KotlinJvmOptions> {
|
||||||
override val owner: GradleKpmJvmVariant get() = variant
|
override val owner: GradleKpmJvmVariant get() = variant
|
||||||
|
|
||||||
|
override val compilerOptions: HasCompilerOptions<CompilerJvmOptions> =
|
||||||
|
object : HasCompilerOptions<CompilerJvmOptions> {
|
||||||
|
override val options: CompilerJvmOptions =
|
||||||
|
variant.project.objects.newInstance(CompilerJvmOptionsDefault::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
// TODO pull out to the variant
|
// TODO pull out to the variant
|
||||||
override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl()
|
@Suppress("DEPRECATION")
|
||||||
|
@Deprecated("Replaced with compilerOptions.options", replaceWith = ReplaceWith("compilerOptions.options"))
|
||||||
|
override val kotlinOptions: KotlinJvmOptions = object : KotlinJvmOptions {
|
||||||
|
override val options: CompilerJvmOptions
|
||||||
|
get() = compilerOptions.options
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun GradleKpmVariant.ownModuleName(): String {
|
internal fun GradleKpmVariant.ownModuleName(): String {
|
||||||
@@ -62,6 +74,7 @@ internal class KotlinMappedJvmCompilationFactory(
|
|||||||
|
|
||||||
return target.project.objects.newInstance(
|
return target.project.objects.newInstance(
|
||||||
KotlinJvmCompilation::class.java,
|
KotlinJvmCompilation::class.java,
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
VariantMappedCompilationDetailsWithRuntime<KotlinJvmOptions>(
|
VariantMappedCompilationDetailsWithRuntime<KotlinJvmOptions>(
|
||||||
variant, target, getOrCreateDefaultSourceSet(name) as FragmentMappedKotlinSourceSet
|
variant, target, getOrCreateDefaultSourceSet(name) as FragmentMappedKotlinSourceSet
|
||||||
)
|
)
|
||||||
|
|||||||
+23
-2
@@ -6,8 +6,12 @@
|
|||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptions
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptionsDefault
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeCompileOptions
|
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.runOnceAfterEvaluated
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToCompilerOptions
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
|
|
||||||
internal class GradleKpmNativeVariantCompilationData(
|
internal class GradleKpmNativeVariantCompilationData(
|
||||||
@@ -25,5 +29,22 @@ internal class GradleKpmNativeVariantCompilationData(
|
|||||||
override val owner: GradleKpmNativeVariant
|
override val owner: GradleKpmNativeVariant
|
||||||
get() = variant
|
get() = variant
|
||||||
|
|
||||||
override val kotlinOptions: KotlinCommonOptions = NativeCompileOptions(variant.languageSettings)
|
override val compilerOptions: HasCompilerOptions<CompilerCommonOptions> =
|
||||||
|
object : HasCompilerOptions<CompilerCommonOptions> {
|
||||||
|
override val options: CompilerCommonOptions =
|
||||||
|
project.objects.newInstance(CompilerCommonOptionsDefault::class.java)
|
||||||
|
.apply {
|
||||||
|
useK2.finalizeValue()
|
||||||
|
project.runOnceAfterEvaluated("apply Kotlin native properties from language settings") {
|
||||||
|
applyLanguageSettingsToCompilerOptions(variant.languageSettings, this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
@Deprecated("Replaced with compilerOptions.options", replaceWith = ReplaceWith("compilerOptions.options"))
|
||||||
|
override val kotlinOptions: KotlinCommonOptions = object : KotlinCommonOptions {
|
||||||
|
override val options: CompilerCommonOptions
|
||||||
|
get() = compilerOptions.options
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+34
-9
@@ -10,16 +10,12 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.file.SourceDirectorySet
|
import org.gradle.api.file.SourceDirectorySet
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptions
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptionsImpl
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.topLevelExtension
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationOutput
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.archivesName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.archivesName
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.targets.metadata.ResolvedMetadataFilesProvider
|
import org.jetbrains.kotlin.gradle.targets.metadata.ResolvedMetadataFilesProvider
|
||||||
import org.jetbrains.kotlin.gradle.targets.metadata.createMetadataDependencyTransformationClasspath
|
import org.jetbrains.kotlin.gradle.targets.metadata.createMetadataDependencyTransformationClasspath
|
||||||
import org.jetbrains.kotlin.gradle.utils.getValue
|
import org.jetbrains.kotlin.gradle.utils.getValue
|
||||||
@@ -132,7 +128,19 @@ internal open class KotlinCommonFragmentMetadataCompilationDataImpl(
|
|||||||
mapTo(hashSetOf()) { it.platformType }.size > 1
|
mapTo(hashSetOf()) { it.platformType }.size > 1
|
||||||
}
|
}
|
||||||
|
|
||||||
override val kotlinOptions: KotlinMultiplatformCommonOptions = KotlinMultiplatformCommonOptionsImpl()
|
override val compilerOptions: HasCompilerOptions<CompilerMultiplatformCommonOptions> =
|
||||||
|
object : HasCompilerOptions<CompilerMultiplatformCommonOptions> {
|
||||||
|
override val options: CompilerMultiplatformCommonOptions =
|
||||||
|
project.objects.newInstance(CompilerMultiplatformCommonOptionsDefault::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
@Deprecated("Replaced with compilerOptions.options", replaceWith = ReplaceWith("compilerOptions.options"))
|
||||||
|
override val kotlinOptions: KotlinMultiplatformCommonOptions = object : KotlinMultiplatformCommonOptions {
|
||||||
|
override val options: CompilerMultiplatformCommonOptions
|
||||||
|
get() = compilerOptions.options
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface KotlinNativeFragmentMetadataCompilationData :
|
interface KotlinNativeFragmentMetadataCompilationData :
|
||||||
@@ -169,7 +177,24 @@ internal open class KotlinNativeFragmentMetadataCompilationDataImpl(
|
|||||||
override val isActive: Boolean
|
override val isActive: Boolean
|
||||||
get() = fragment.isNativeShared() && fragment.containingVariants.count() > 1
|
get() = fragment.isNativeShared() && fragment.containingVariants.count() > 1
|
||||||
|
|
||||||
override val kotlinOptions: NativeCompileOptions = NativeCompileOptions(languageSettings)
|
override val compilerOptions: HasCompilerOptions<CompilerCommonOptions> =
|
||||||
|
object : HasCompilerOptions<CompilerCommonOptions> {
|
||||||
|
override val options: CompilerCommonOptions =
|
||||||
|
project.objects.newInstance(CompilerCommonOptionsDefault::class.java)
|
||||||
|
.apply {
|
||||||
|
useK2.finalizeValue()
|
||||||
|
project.runOnceAfterEvaluated("apply Kotlin native properties from language settings") {
|
||||||
|
applyLanguageSettingsToCompilerOptions(languageSettings, this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
@Deprecated("Replaced with compilerOptions.options", replaceWith = ReplaceWith("compilerOptions.options"))
|
||||||
|
override val kotlinOptions: KotlinCommonOptions = object : KotlinCommonOptions {
|
||||||
|
override val options: CompilerCommonOptions
|
||||||
|
get() = compilerOptions.options
|
||||||
|
}
|
||||||
|
|
||||||
override val konanTarget: KonanTarget
|
override val konanTarget: KonanTarget
|
||||||
get() {
|
get() {
|
||||||
|
|||||||
Reference in New Issue
Block a user