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
|
||||
|
||||
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.KotlinJvmOptionsImpl
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.archivesName
|
||||
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> {
|
||||
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
|
||||
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 {
|
||||
@@ -62,6 +74,7 @@ internal class KotlinMappedJvmCompilationFactory(
|
||||
|
||||
return target.project.objects.newInstance(
|
||||
KotlinJvmCompilation::class.java,
|
||||
@Suppress("DEPRECATION")
|
||||
VariantMappedCompilationDetailsWithRuntime<KotlinJvmOptions>(
|
||||
variant, target, getOrCreateDefaultSourceSet(name) as FragmentMappedKotlinSourceSet
|
||||
)
|
||||
|
||||
+23
-2
@@ -6,8 +6,12 @@
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||
|
||||
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.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
|
||||
|
||||
internal class GradleKpmNativeVariantCompilationData(
|
||||
@@ -25,5 +29,22 @@ internal class GradleKpmNativeVariantCompilationData(
|
||||
override val owner: GradleKpmNativeVariant
|
||||
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.SourceDirectorySet
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonOptions
|
||||
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.dsl.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
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.disambiguateName
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.targets.metadata.ResolvedMetadataFilesProvider
|
||||
import org.jetbrains.kotlin.gradle.targets.metadata.createMetadataDependencyTransformationClasspath
|
||||
import org.jetbrains.kotlin.gradle.utils.getValue
|
||||
@@ -132,7 +128,19 @@ internal open class KotlinCommonFragmentMetadataCompilationDataImpl(
|
||||
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 :
|
||||
@@ -169,7 +177,24 @@ internal open class KotlinNativeFragmentMetadataCompilationDataImpl(
|
||||
override val isActive: Boolean
|
||||
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
|
||||
get() {
|
||||
|
||||
Reference in New Issue
Block a user