[Gradle] KMP: Remove non-hmpp mode
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinBaseApiPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinBaseApiPlugin.kt
index c8c5614..c0174f4 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinBaseApiPlugin.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinBaseApiPlugin.kt
@@ -28,7 +28,7 @@
override fun apply(project: Project) {
super.apply(project)
myProject = project
- setupAttributeMatchingStrategy(project, isKotlinGranularMetadata = false)
+ setupAttributeMatchingStrategy(project)
}
override fun addCompilerPluginDependency(dependency: Provider<Any>) {
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt
index 3865186..d2cd324 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPluginWrapper.kt
@@ -49,7 +49,6 @@
import org.jetbrains.kotlin.gradle.targets.js.nodejs.DefaultUnameExecutorVariantFactory
import org.jetbrains.kotlin.gradle.targets.js.nodejs.UnameExecutor
import org.jetbrains.kotlin.gradle.targets.js.npm.addNpmDependencyExtension
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropKlibLibraryElements
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizerArtifactTypeAttribute
import org.jetbrains.kotlin.gradle.targets.native.internal.CommonizerTargetAttribute
@@ -201,10 +200,9 @@
protected fun setupAttributeMatchingStrategy(
project: Project,
- isKotlinGranularMetadata: Boolean = project.isKotlinGranularMetadataEnabled,
) = with(project.dependencies.attributesSchema) {
KotlinPlatformType.setupAttributesMatchingStrategy(this)
- KotlinUsages.setupAttributesMatchingStrategy(this, isKotlinGranularMetadata)
+ KotlinUsages.setupAttributesMatchingStrategy(this)
KotlinJsCompilerAttribute.setupAttributesMatchingStrategy(project.dependencies.attributesSchema)
KotlinWasmTargetAttribute.setupAttributesMatchingStrategy(project.dependencies.attributesSchema)
ProjectLocalConfigurations.setupAttributesMatchingStrategy(this)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt
index 82ea02e..414c17a 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt
@@ -30,12 +30,9 @@
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_APPLY_DEFAULT_HIERARCHY_TEMPLATE
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_CINTEROP_COMMONIZATION
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_COMPATIBILITY_METADATA_VARIANT
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_GRANULAR_SOURCE_SETS_METADATA
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_INTRANSITIVE_METADATA_CONFIGURATION
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_OPTIMISTIC_NUMBER_COMMONIZATION
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_PLATFORM_INTEGER_COMMONIZATION
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_HIERARCHICAL_STRUCTURE_BY_DEFAULT
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_HIERARCHICAL_STRUCTURE_SUPPORT
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_IMPORT_ENABLE_KGP_DEPENDENCY_RESOLUTION
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_IMPORT_ENABLE_SLOW_SOURCES_JAR_RESOLVER
@@ -47,7 +44,6 @@
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_STDLIB_DEFAULT_DEPENDENCY
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_STDLIB_JDK_VARIANTS_VERSION_ALIGNMENT
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_SUPPRESS_EXPERIMENTAL_IC_OPTIMIZATIONS_WARNING
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.MPP_13X_FLAGS_SET_BY_PLUGIN
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnosticOncePerBuild
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
@@ -194,26 +190,6 @@
val keepAndroidBuildTypeAttribute: Boolean
get() = booleanProperty("kotlin.android.buildTypeAttribute.keep") ?: false
- val enableGranularSourceSetsMetadata: Boolean?
- get() = booleanProperty(KOTLIN_MPP_ENABLE_GRANULAR_SOURCE_SETS_METADATA)
-
- val hierarchicalStructureSupport: Boolean
- get() = booleanProperty(KOTLIN_MPP_HIERARCHICAL_STRUCTURE_SUPPORT) ?: mppHierarchicalStructureByDefault
-
- var mpp13XFlagsSetByPlugin: Boolean
- get() = booleanProperty(MPP_13X_FLAGS_SET_BY_PLUGIN) ?: false
- set(value) {
- project.extensions.extraProperties.set(MPP_13X_FLAGS_SET_BY_PLUGIN, "$value")
- }
-
- val mppHierarchicalStructureByDefault: Boolean
- get() = booleanProperty(KOTLIN_MPP_HIERARCHICAL_STRUCTURE_BY_DEFAULT) ?: true
-
- val enableCompatibilityMetadataVariant: Boolean
- get() {
- return (booleanProperty(KOTLIN_MPP_ENABLE_COMPATIBILITY_METADATA_VARIANT) ?: !mppHierarchicalStructureByDefault)
- }
-
val enableKotlinToolingMetadataArtifact: Boolean
get() = booleanProperty("kotlin.mpp.enableKotlinToolingMetadataArtifact") ?: true
@@ -600,8 +576,6 @@
val KOTLIN_STDLIB_DEFAULT_DEPENDENCY = property("kotlin.stdlib.default.dependency")
val KOTLIN_STDLIB_JDK_VARIANTS_VERSION_ALIGNMENT = property("kotlin.stdlib.jdk.variants.version.alignment")
val KOTLIN_JS_STDLIB_DOM_API_INCLUDED = property("kotlin.js.stdlib.dom.api.included")
- val KOTLIN_MPP_ENABLE_GRANULAR_SOURCE_SETS_METADATA = property("kotlin.mpp.enableGranularSourceSetsMetadata")
- val KOTLIN_MPP_ENABLE_COMPATIBILITY_METADATA_VARIANT = property("kotlin.mpp.enableCompatibilityMetadataVariant")
val KOTLIN_MPP_ENABLE_CINTEROP_COMMONIZATION = property("kotlin.mpp.enableCInteropCommonization")
val KOTLIN_MPP_HIERARCHICAL_STRUCTURE_SUPPORT = property("kotlin.mpp.hierarchicalStructureSupport")
val KOTLIN_MPP_ANDROID_GRADLE_PLUGIN_COMPATIBILITY_NO_WARN = property("kotlin.mpp.androidGradlePluginCompatibility.nowarn")
@@ -640,12 +614,10 @@
* Internal properties: builds get big non-suppressible warning when such properties are used
* See [org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.InternalGradlePropertiesUsageChecker]
**/
- val KOTLIN_MPP_HIERARCHICAL_STRUCTURE_BY_DEFAULT = property("$KOTLIN_INTERNAL_NAMESPACE.mpp.hierarchicalStructureByDefault")
val KOTLIN_CREATE_DEFAULT_MULTIPLATFORM_PUBLICATIONS = property("$KOTLIN_INTERNAL_NAMESPACE.mpp.createDefaultMultiplatformPublications")
val KOTLIN_INTERNAL_DIAGNOSTICS_USE_PARSABLE_FORMATTING = property("$KOTLIN_INTERNAL_NAMESPACE.diagnostics.useParsableFormatting")
val KOTLIN_INTERNAL_DIAGNOSTICS_SHOW_STACKTRACE = property("$KOTLIN_INTERNAL_NAMESPACE.diagnostics.showStacktrace")
val KOTLIN_SUPPRESS_GRADLE_PLUGIN_ERRORS = property("$KOTLIN_INTERNAL_NAMESPACE.suppressGradlePluginErrors")
- val MPP_13X_FLAGS_SET_BY_PLUGIN = property("$KOTLIN_INTERNAL_NAMESPACE.mpp.13X.flags.setByPlugin")
}
companion object {
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/InternalGradlePropertiesUsageChecker.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/InternalGradlePropertiesUsageChecker.kt
index bf26b70..9aaccb0 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/InternalGradlePropertiesUsageChecker.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/InternalGradlePropertiesUsageChecker.kt
@@ -20,12 +20,11 @@
val internalPropertiesUsed = PropertiesProvider.PropertyNames.allInternalProperties().filter { name ->
kotlinPropertiesProvider.property(name).orNull != null
}
- val internalPropertiesFiltered = internalPropertiesUsed.minus(PropertiesProvider.PropertyNames.MPP_13X_FLAGS_SET_BY_PLUGIN)
- if (internalPropertiesFiltered.isEmpty()) return
+ if (internalPropertiesUsed.isEmpty()) return
collector.reportOncePerGradleBuild(
project,
- KotlinToolingDiagnostics.InternalKotlinGradlePluginPropertiesUsed(internalPropertiesFiltered.sorted()),
+ KotlinToolingDiagnostics.InternalKotlinGradlePluginPropertiesUsed(internalPropertiesUsed.sorted()),
// Known issue in edge case: if several Gradle subprojects declare internal properties, only one will be reported
key = InternalGradlePropertiesUsageChecker::class.qualifiedName!!
)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/PreHmppDependenciesUsageChecker.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/PreHmppDependenciesUsageChecker.kt
index 0cba510..8a295a5 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/PreHmppDependenciesUsageChecker.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/PreHmppDependenciesUsageChecker.kt
@@ -23,7 +23,6 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
import org.jetbrains.kotlin.gradle.plugin.mpp.resolvableMetadataConfiguration
import org.jetbrains.kotlin.gradle.plugin.sources.internal
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import java.util.*
import java.util.concurrent.ConcurrentHashMap
@@ -31,7 +30,7 @@
override suspend fun KotlinGradleProjectCheckerContext.runChecks(collector: KotlinToolingDiagnosticsCollector) {
KotlinPluginLifecycle.Stage.ReadyForExecution.await()
- if (!project.isKotlinGranularMetadataEnabled || project.kotlinPropertiesProvider.allowLegacyMppDependencies) return
+ if (project.kotlinPropertiesProvider.allowLegacyMppDependencies) return
val metadataTarget = project.multiplatformExtensionOrNull?.awaitTargets()
?.matching { it is KotlinMetadataTarget }
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt
index 7679992..0de28aa 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt
@@ -10,7 +10,6 @@
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon
import javax.inject.Inject
@@ -28,10 +27,5 @@
@Suppress("UNCHECKED_CAST")
override val compileTaskProvider: TaskProvider<KotlinCompilationTask<KotlinMultiplatformCommonCompilerOptions>>
get() = compilation.compileTaskProvider as TaskProvider<KotlinCompilationTask<KotlinMultiplatformCommonCompilerOptions>>
-
- internal val isKlibCompilation: Boolean
- get() = target.project.isKotlinGranularMetadataEnabled && !forceCompilationToKotlinMetadata
-
- internal var forceCompilationToKotlinMetadata: Boolean = false
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt
index 9a246d7..1430ad3 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMetadataTarget.kt
@@ -14,7 +14,6 @@
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent
import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetConfigurator
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.utils.newInstance
import javax.inject.Inject
@@ -22,10 +21,7 @@
project: Project
) : KotlinOnlyTarget<KotlinCompilation<*>>(project, KotlinPlatformType.common) {
- override val artifactsTaskName: String
- // The IDE import looks at this task name to determine the artifact and register the path to the artifact;
- // in HMPP, since the project resolves to the all-metadata JAR, the IDE import needs to work with that JAR, too
- get() = if (project.isKotlinGranularMetadataEnabled) KotlinMetadataTargetConfigurator.ALL_METADATA_JAR_NAME else super.artifactsTaskName
+ override val artifactsTaskName: String = KotlinMetadataTargetConfigurator.ALL_METADATA_JAR_NAME
internal val legacyArtifactsTaskName: String
get() = super.artifactsTaskName
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt
index b2e5e0d..55cc21d3 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt
@@ -17,7 +17,6 @@
import org.jetbrains.kotlin.gradle.plugin.ide.locateOrRegisterIdeResolveDependenciesTask
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin.Companion.sourceSetFreeCompilerArgsPropertyName
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.addBuildListenerForXcode
-import org.jetbrains.kotlin.gradle.plugin.mpp.internal.runDeprecationDiagnostics
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
import org.jetbrains.kotlin.gradle.plugin.sources.awaitPlatformCompilations
import org.jetbrains.kotlin.gradle.plugin.sources.internal
@@ -40,7 +39,7 @@
override fun apply(project: Project) {
checkGradleCompatibility("the Kotlin Multiplatform plugin")
- runDeprecationDiagnostics(project)
+ project.rootProject.extraProperties.set("kotlin.mpp.enableGranularSourceSetsMetadata", "true")
project.plugins.apply(JavaBasePlugin::class.java)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt
index cfdb4cc..65c36fb 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt
@@ -25,9 +25,6 @@
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
import org.jetbrains.kotlin.gradle.utils.markResolvable
import org.jetbrains.kotlin.gradle.targets.metadata.*
-import org.jetbrains.kotlin.gradle.targets.metadata.COMMON_MAIN_ELEMENTS_CONFIGURATION_NAME
-import org.jetbrains.kotlin.gradle.targets.metadata.isCompatibilityMetadataVariantEnabled
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.utils.Future
import org.jetbrains.kotlin.gradle.utils.future
import org.jetbrains.kotlin.gradle.utils.setProperty
@@ -62,15 +59,9 @@
private val _usages: Future<Set<DefaultKotlinUsageContext>> = project.future {
metadataTarget.awaitMetadataCompilationsCreated()
- if (!project.isKotlinGranularMetadataEnabled) {
- val metadataCompilation = metadataTarget.compilations.getByName(MAIN_COMPILATION_NAME)
- return@future metadataTarget.createUsageContexts(metadataCompilation)
- }
-
mutableSetOf<DefaultKotlinUsageContext>().apply {
val allMetadataJar = project.tasks.named(KotlinMetadataTargetConfigurator.ALL_METADATA_JAR_NAME)
val allMetadataArtifact = project.artifacts.add(Dependency.ARCHIVES_CONFIGURATION, allMetadataJar) { allMetadataArtifact ->
- allMetadataArtifact.classifier = if (project.isCompatibilityMetadataVariantEnabled) "all" else ""
}
this += DefaultKotlinUsageContext(
@@ -80,18 +71,6 @@
overrideConfigurationArtifacts = project.setProperty { listOf(allMetadataArtifact) }
)
- if (project.isCompatibilityMetadataVariantEnabled) {
- // Ensure that consumers who expect Kotlin 1.2.x metadata package can still get one:
- // publish the old metadata artifact:
- this += run {
- DefaultKotlinUsageContext(
- metadataTarget.compilations.getByName(MAIN_COMPILATION_NAME),
- KotlinUsageContext.MavenScope.COMPILE,
- /** this configuration is created by [KotlinMetadataTargetConfigurator.createCommonMainElementsConfiguration] */
- COMMON_MAIN_ELEMENTS_CONFIGURATION_NAME
- )
- }
- }
val sourcesElements = metadataTarget.sourcesElementsConfigurationName
if (metadataTarget.isSourcesPublishable) {
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinUsages.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinUsages.kt
index 459a197..0593fd0 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinUsages.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinUsages.kt
@@ -14,7 +14,6 @@
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.*
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.usageByName
-import org.jetbrains.kotlin.gradle.targets.metadata.isCompatibilityMetadataVariantEnabled
object KotlinUsages {
const val KOTLIN_API = "kotlin-api"
@@ -50,8 +49,7 @@
platformType in jvmPlatformTypes -> JAVA_API
platformType == common
/** The kotlinExtension check below can be removed when legacy [KotlinPlatformCommonPlugin] is also removed. */
- && project.kotlinExtension is KotlinMultiplatformExtension
- && !project.isCompatibilityMetadataVariantEnabled -> KOTLIN_METADATA
+ && project.kotlinExtension is KotlinMultiplatformExtension -> KOTLIN_METADATA
else -> KOTLIN_API
}
)
@@ -182,11 +180,11 @@
}
}
- private fun MultipleCandidatesDetails<Usage?>.chooseCandidateByName(name: String?): Unit {
+ private fun MultipleCandidatesDetails<Usage?>.chooseCandidateByName(name: String?) {
closestMatch(candidateValues.single { it?.name == name }!!)
}
- internal fun setupAttributesMatchingStrategy(attributesSchema: AttributesSchema, isKotlinGranularMetadata: Boolean) {
+ internal fun setupAttributesMatchingStrategy(attributesSchema: AttributesSchema) {
attributesSchema.attribute(USAGE_ATTRIBUTE) { strategy ->
strategy.compatibilityRules.add(KotlinJavaRuntimeJarsCompatibility::class.java)
strategy.disambiguationRules.add(KotlinUsagesDisambiguation::class.java)
@@ -194,10 +192,8 @@
strategy.compatibilityRules.add(KotlinCinteropCompatibility::class.java)
strategy.disambiguationRules.add(KotlinCinteropDisambiguation::class.java)
- if (isKotlinGranularMetadata) {
- strategy.compatibilityRules.add(KotlinMetadataCompatibility::class.java)
- strategy.disambiguationRules.add(KotlinMetadataDisambiguation::class.java)
- }
+ strategy.compatibilityRules.add(KotlinMetadataCompatibility::class.java)
+ strategy.disambiguationRules.add(KotlinMetadataDisambiguation::class.java)
}
}
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt
index 1d190f5..ae6036d 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/Publishing.kt
@@ -24,7 +24,6 @@
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.tooling.buildKotlinToolingMetadataTask
internal fun configurePublishingWithMavenPublish(project: Project) = project.pluginManager.withPlugin("maven-publish") {
@@ -127,8 +126,7 @@
* right dependencies for each source set, we put only the dependencies of the legacy common variant into the POM, i.e. commonMain API.
*/
private fun dependenciesForPomRewriting(target: InternalKotlinTarget): Provider<Set<ModuleCoordinates>>? =
- if (target !is KotlinMetadataTarget || !target.project.isKotlinGranularMetadataEnabled)
- null
+ if (target !is KotlinMetadataTarget) null
else {
val commonMain = target.project.kotlinExtension.sourceSets.findByName(KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME)
if (commonMain == null)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/deprecationDiagnostics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/deprecationDiagnostics.kt
deleted file mode 100644
index 8c36642..0000000
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/deprecationDiagnostics.kt
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
- * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
- */
-
-package org.jetbrains.kotlin.gradle.plugin.mpp.internal
-
-import org.gradle.api.Project
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_COMPATIBILITY_METADATA_VARIANT
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_GRANULAR_SOURCE_SETS_METADATA
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_HIERARCHICAL_STRUCTURE_BY_DEFAULT
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_HIERARCHICAL_STRUCTURE_SUPPORT
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_NATIVE_DEPENDENCY_PROPAGATION
-import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
-import org.jetbrains.kotlin.gradle.plugin.diagnostics.kotlinToolingDiagnosticsCollector
-
-internal fun runDeprecationDiagnostics(project: Project) {
- checkAndReportDeprecatedMppProperties(project)
- handleHierarchicalStructureFlagsMigration(project)
- }
-
-/**
- * Declared properties have to be captured during plugin application phase before the HMPP migration util sets them.
- * Warnings have to be reported only for successfully evaluated projects without errors.
- */
-private fun checkAndReportDeprecatedMppProperties(project: Project) {
- val projectProperties = project.kotlinPropertiesProvider
-
- val usedProperties = deprecatedMppProperties.mapNotNull { propertyName ->
- if (propertyName in propertiesSetByPlugin && projectProperties.mpp13XFlagsSetByPlugin)
- return@mapNotNull null
-
- propertyName.takeIf { projectProperties.property(propertyName).orNull != null }
- }
-
- if (usedProperties.isEmpty()) return
-
- project.kotlinToolingDiagnosticsCollector.reportOncePerGradleBuild(
- project,
- KotlinToolingDiagnostics.PreHMPPFlagsError(usedProperties)
- )
-}
-
-internal val deprecatedMppProperties: List<String> = listOf(
- KOTLIN_MPP_ENABLE_COMPATIBILITY_METADATA_VARIANT,
- KOTLIN_MPP_ENABLE_GRANULAR_SOURCE_SETS_METADATA,
- KOTLIN_MPP_HIERARCHICAL_STRUCTURE_BY_DEFAULT,
- KOTLIN_MPP_HIERARCHICAL_STRUCTURE_SUPPORT,
- KOTLIN_NATIVE_DEPENDENCY_PROPAGATION,
-)
-
-private val propertiesSetByPlugin: Set<String> = setOf(
- KOTLIN_MPP_ENABLE_GRANULAR_SOURCE_SETS_METADATA,
-)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/hierarchicalStructureMigrationHandling.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/hierarchicalStructureMigrationHandling.kt
deleted file mode 100644
index f99d7f3..0000000
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/hierarchicalStructureMigrationHandling.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
- * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
- */
-
-package org.jetbrains.kotlin.gradle.plugin.mpp.internal
-
-import org.gradle.api.Project
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames
-import org.jetbrains.kotlin.gradle.utils.SingleActionPerProject
-import org.jetbrains.kotlin.gradle.utils.getOrPut
-
-internal fun handleHierarchicalStructureFlagsMigration(project: Project) {
- SingleActionPerProject.run(project.rootProject, "handleHierarchicalStructureFlagsMigration - rootProject") {
- doHandleHierarchicalStructureFlagsMigration(project.rootProject)
- }
-
- // rootProject will be handled with the SingleActionPerProject above
- if (project.rootProject !== project) {
- doHandleHierarchicalStructureFlagsMigration(project)
- }
-}
-
-private fun doHandleHierarchicalStructureFlagsMigration(project: Project) {
- with(PropertiesProvider(project)) {
- if (hierarchicalStructureSupport) {
- if (project === project.rootProject)
- project.extensions.extraProperties.getOrPut(PropertyNames.KOTLIN_MPP_ENABLE_GRANULAR_SOURCE_SETS_METADATA) { "true" }
- PropertiesProvider(project).mpp13XFlagsSetByPlugin = true
- }
- }
-}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt
index e48a116..dfc9515 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt
@@ -17,13 +17,12 @@
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.utils.getOrCreate
import org.jetbrains.kotlin.gradle.utils.targets
import java.io.File
internal abstract class KotlinSourceSetFactory<T : KotlinSourceSet> internal constructor(
- protected val project: Project
+ protected val project: Project,
) : NamedDomainObjectFactory<KotlinSourceSet> {
abstract val itemClass: Class<T>
@@ -73,7 +72,7 @@
internal class DefaultKotlinSourceSetFactory(
- project: Project
+ project: Project,
) : KotlinSourceSetFactory<DefaultKotlinSourceSet>(project) {
override val itemClass: Class<DefaultKotlinSourceSet>
@@ -105,9 +104,8 @@
extendsFrom(project.configurations.maybeCreate(configurationName))
}
- if (project.isKotlinGranularMetadataEnabled) {
- attributes.attribute(Usage.USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_METADATA))
- }
+ attributes.attribute(Usage.USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_METADATA))
+
project.afterEvaluate {
setJsCompilerIfNecessary(sourceSet, this)
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt
index 5737a50..e18e7bc 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt
@@ -37,23 +37,6 @@
internal const val COMMON_MAIN_ELEMENTS_CONFIGURATION_NAME = "commonMainMetadataElements"
-internal val Project.isKotlinGranularMetadataEnabled: Boolean
- get() = with(PropertiesProvider(this)) {
- mppHierarchicalStructureByDefault || // then we want to use KLIB granular compilation & artifacts even if it's just commonMain
- hierarchicalStructureSupport ||
- enableGranularSourceSetsMetadata == true
- }
-
-internal val Project.shouldCompileIntermediateSourceSetsToMetadata: Boolean
- get() = with(PropertiesProvider(this)) {
- when {
- !hierarchicalStructureSupport && mppHierarchicalStructureByDefault -> false
- else -> true
- }
- }
-
-internal val Project.isCompatibilityMetadataVariantEnabled: Boolean
- get() = PropertiesProvider(this).enableCompatibilityMetadataVariant == true
class KotlinMetadataTargetConfigurator :
KotlinOnlyTargetConfigurator<KotlinCompilation<*>, KotlinMetadataTarget>(createTestCompilation = false) {
@@ -63,63 +46,26 @@
override fun configureTarget(target: KotlinMetadataTarget) {
super.configureTarget(target)
+ KotlinBuildStatsService.getInstance()?.report(BooleanMetrics.ENABLED_HMPP, true)
+ val allMetadataJar = target.project.tasks.named<Jar>(ALL_METADATA_JAR_NAME)
+ createMetadataCompilationsForCommonSourceSets(target, allMetadataJar)
+ configureProjectStructureMetadataGeneration(target.project, allMetadataJar)
+ configureMetadataDependenciesConfigurationsForCommonSourceSets(target)
- if (target.project.isKotlinGranularMetadataEnabled) {
- KotlinBuildStatsService.getInstance()?.report(BooleanMetrics.ENABLED_HMPP, true)
-
- target.compilations.withType(KotlinCommonCompilation::class.java).getByName(KotlinCompilation.MAIN_COMPILATION_NAME).run {
- // Capture it here to use in onlyIf spec. Direct usage causes serialization of target attempt when configuration cache is enabled
- val isCompatibilityMetadataVariantEnabled = target.project.isCompatibilityMetadataVariantEnabled
- if (isCompatibilityMetadataVariantEnabled) {
- // Force the default 'main' compilation to produce *.kotlin_metadata regardless of the klib feature flag.
- forceCompilationToKotlinMetadata = true
- // Add directly dependsOn sources for Legacy Compatibility Metadata variant
- // it isn't necessary for KLib compilations
- // see [KotlinCompilationSourceSetInclusion.AddSourcesWithoutDependsOnClosure]
- defaultSourceSet.internal.dependsOnClosure.forAll {
- @Suppress("DEPRECATION")
- addSourceSet(it)
- }
- } else {
- // Clear the dependencies of the compilation so that they don't take time resolving during task graph construction:
- compileDependencyFiles = target.project.files()
- }
- compileKotlinTaskProvider.configure { it.onlyIf { isCompatibilityMetadataVariantEnabled } }
- }
-
- val allMetadataJar = target.project.tasks.named<Jar>(ALL_METADATA_JAR_NAME)
- createMetadataCompilationsForCommonSourceSets(target, allMetadataJar)
-
- configureProjectStructureMetadataGeneration(target.project, allMetadataJar)
-
- configureMetadataDependenciesConfigurationsForCommonSourceSets(target)
-
- target.project.configurations.getByName(target.apiElementsConfigurationName).run {
- attributes.attribute(USAGE_ATTRIBUTE, target.project.usageByName(KotlinUsages.KOTLIN_METADATA))
- attributes.attribute(CATEGORY_ATTRIBUTE, target.project.categoryByName(Category.LIBRARY))
- /** Note: to add this artifact here is enough to avoid duplicate artifacts in this configuration: the default artifact
- * won't be added (later) if there's already an artifact in the configuration, see
- * [KotlinOnlyTargetConfigurator.configureArchivesAndComponent] */
- target.project.artifacts.add(target.apiElementsConfigurationName, allMetadataJar)
- }
-
- if (target.project.isCompatibilityMetadataVariantEnabled) {
- createCommonMainElementsConfiguration(target)
- }
- } else {
- /* We had nothing to do: Still mark this job as complete */
- target.metadataCompilationsCreated.complete()
+ target.project.configurations.getByName(target.apiElementsConfigurationName).run {
+ attributes.attribute(USAGE_ATTRIBUTE, target.project.usageByName(KotlinUsages.KOTLIN_METADATA))
+ attributes.attribute(CATEGORY_ATTRIBUTE, target.project.categoryByName(Category.LIBRARY))
+ /** Note: to add this artifact here is enough to avoid duplicate artifacts in this configuration: the default artifact
+ * won't be added (later) if there's already an artifact in the configuration, see
+ * [KotlinOnlyTargetConfigurator.configureArchivesAndComponent] */
+ target.project.artifacts.add(target.apiElementsConfigurationName, allMetadataJar)
}
}
override fun setupCompilationDependencyFiles(compilation: KotlinCompilation<KotlinCommonOptions>) {
val project = compilation.target.project
-
/** See [configureMetadataDependenciesForCompilation] */
- if (project.isKotlinGranularMetadataEnabled && compilation.name != KotlinCompilation.MAIN_COMPILATION_NAME)
- compilation.compileDependencyFiles = project.files()
- else
- super.setupCompilationDependencyFiles(compilation)
+ compilation.compileDependencyFiles = project.files()
}
override fun buildCompilationProcessor(compilation: KotlinCompilation<*>): KotlinCompilationProcessor<*> = when (compilation) {
@@ -133,9 +79,6 @@
}
override fun createArchiveTasks(target: KotlinMetadataTarget): TaskProvider<out Zip> {
- if (!target.project.isKotlinGranularMetadataEnabled)
- return super.createArchiveTasks(target)
-
val result = target.project.registerTask<Jar>(target.artifactsTaskName) {
it.group = BasePlugin.BUILD_GROUP
it.isReproducibleFileOrder = true
@@ -147,29 +90,11 @@
allMetadataJar.description = "Assembles a jar archive containing the metadata for all Kotlin source sets."
allMetadataJar.group = BasePlugin.BUILD_GROUP
- if (target.project.isCompatibilityMetadataVariantEnabled) {
- allMetadataJar.archiveClassifier.set("all")
- }
-
target.disambiguationClassifier?.let { classifier ->
allMetadataJar.archiveAppendix.set(classifier.toLowerCaseAsciiOnly())
}
}
- if (target.project.isCompatibilityMetadataVariantEnabled) {
- val legacyJar = target.project.registerTask<Jar>(target.legacyArtifactsTaskName)
- legacyJar.configure {
- // Capture it here to use in onlyIf spec. Direct usage causes serialization of target attempt when configuration cache is enabled
- val isCompatibilityMetadataVariantEnabled = target.project.isCompatibilityMetadataVariantEnabled
- it.description = "Assembles an archive containing the Kotlin metadata of the commonMain source set."
- if (!isCompatibilityMetadataVariantEnabled) {
- it.archiveClassifier.set("commonMain")
- }
- it.onlyIf { isCompatibilityMetadataVariantEnabled }
- it.from(target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME).output.allOutputs)
- }
- }
-
return result
}
@@ -204,11 +129,6 @@
}
}
- if (project.isCompatibilityMetadataVariantEnabled) {
- val mainCompilation = target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME)
- configureMetadataDependenciesForCompilation(mainCompilation)
- }
-
sourceSetsWithMetadataCompilations.values.forEach { compilation ->
exportDependenciesForPublishing(compilation)
}
@@ -343,6 +263,9 @@
val artifacts = sourceSet.internal.resolvableMetadataConfiguration.incoming.artifacts.getResolvedArtifactsCompat(project)
+ // Reset compileDependencyFiles
+ compilation.compileDependencyFiles = project.files()
+
// Metadata from visible source sets within dependsOn closure
compilation.compileDependencyFiles += sourceSet.dependsOnClosureCompilePath
@@ -424,9 +347,6 @@
* Those compilations will be created but the corresponding tasks will be disabled.
*/
internal suspend fun getCommonSourceSetsForMetadataCompilation(project: Project): Set<KotlinSourceSet> {
- if (!project.shouldCompileIntermediateSourceSetsToMetadata)
- return setOf(project.multiplatformExtension.awaitSourceSets().getByName(KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME))
-
val compilationsBySourceSet: Map<KotlinSourceSet, Set<KotlinCompilation<*>>> =
project.kotlinExtension.awaitSourceSets().associateWith { it.internal.awaitPlatformCompilations() }
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt
index 9b6f51b..ad50421 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt
@@ -51,9 +51,6 @@
internal val hostSpecificMetadataElementsConfigurationName get() = disambiguateName("MetadataElements")
override val kotlinComponents: Set<KotlinTargetComponent> by lazy {
- if (!project.isKotlinGranularMetadataEnabled)
- return@lazy super.kotlinComponents
-
val mainCompilation = compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME)
// NB: another usage context for the host-specific metadata may be added to this set below
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt
index 07825c9..27925cb 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt
@@ -32,7 +32,6 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XcodeVersionTask
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.registerEmbedAndSignAppleFrameworkTask
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.version
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.targets.native.*
import org.jetbrains.kotlin.gradle.targets.native.internal.*
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeHostTest
@@ -207,16 +206,14 @@
apiElements.outgoing.attributes.attribute(artifactTypeAttribute, NativeArtifactFormat.KLIB)
- if (project.isKotlinGranularMetadataEnabled) {
- project.configurations.create(target.hostSpecificMetadataElementsConfigurationName) { configuration ->
- configuration.isCanBeConsumed = true
- configuration.isCanBeResolved = false
+ project.configurations.create(target.hostSpecificMetadataElementsConfigurationName) { configuration ->
+ configuration.isCanBeConsumed = true
+ configuration.isCanBeResolved = false
- configuration.extendsFrom(*apiElements.extendsFrom.toTypedArray())
+ configuration.extendsFrom(*apiElements.extendsFrom.toTypedArray())
- copyAttributes(from = apiElements.attributes, to = configuration.attributes)
- configuration.attributes.attribute(USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_METADATA))
- }
+ copyAttributes(from = apiElements.attributes, to = configuration.attributes)
+ configuration.attributes.attribute(USAGE_ATTRIBUTE, objects.named(Usage::class.java, KotlinUsages.KOTLIN_METADATA))
}
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt
index 594af96..a630e28 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/KotlinNativePlatformDependencies.kt
@@ -20,7 +20,6 @@
import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations
import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.targets.metadata.findMetadataCompilation
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.utils.filesProvider
import java.io.File
@@ -118,7 +117,5 @@
internal fun Project.isAllowCommonizer(): Boolean {
assert(state.executed) { "'isAllowCommonizer' can only be called after project evaluation" }
multiplatformExtensionOrNull ?: return false
-
return multiplatformExtension.targets.any { it.platformType == KotlinPlatformType.native }
- && isKotlinGranularMetadataEnabled
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt
index 00cef18..630a2e9 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt
@@ -15,9 +15,7 @@
init {
configureTask { task ->
task.expectActualLinker.value(
- providers.provider {
- (compilationInfo.origin as? KotlinCommonCompilation)?.isKlibCompilation == true
- }
+ providers.provider { (compilationInfo.origin is KotlinCommonCompilation) }
).disallowChanges()
task.refinesMetadataPaths.from(compilationInfo.refinesPaths).disallowChanges()
task.moduleName.set(providers.provider { compilationInfo.moduleName })
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt
index 63fa4cf..c864771 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt
@@ -8,7 +8,6 @@
import com.android.build.gradle.BaseExtension
import org.gradle.api.DefaultTask
import org.gradle.api.Project
-import org.gradle.api.Task
import org.gradle.api.file.ProjectLayout
import org.gradle.api.internal.GeneratedSubclass
import org.gradle.api.tasks.*
@@ -21,8 +20,6 @@
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
-import org.jetbrains.kotlin.gradle.targets.metadata.isCompatibilityMetadataVariantEnabled
-import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.library.KotlinAbiVersion
@@ -116,10 +113,10 @@
)
}
-private fun KotlinProjectExtension.buildProjectSettings(): KotlinToolingMetadata.ProjectSettings {
+private fun buildProjectSettings(): KotlinToolingMetadata.ProjectSettings {
return KotlinToolingMetadata.ProjectSettings(
- isHmppEnabled = project.isKotlinGranularMetadataEnabled,
- isCompatibilityMetadataVariantEnabled = project.isCompatibilityMetadataVariantEnabled,
+ isHmppEnabled = true,
+ isCompatibilityMetadataVariantEnabled = false,
isKPMEnabled = false
)
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/KT55730CommonMainDependsOnAnotherSourceSet.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/KT55730CommonMainDependsOnAnotherSourceSet.kt
deleted file mode 100644
index 616fca4..0000000
--- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/KT55730CommonMainDependsOnAnotherSourceSet.kt
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
- * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
- */
-
-@file:Suppress("FunctionName")
-
-package org.jetbrains.kotlin.gradle.regressionTests
-
-import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
-import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
-import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
-import org.jetbrains.kotlin.gradle.util.*
-import kotlin.test.Test
-import kotlin.test.assertEquals
-
-class KT55730CommonMainDependsOnAnotherSourceSet {
- @Test
- fun `legacy metadata compilation should have commonMain with its depends on closure`() {
- val project = buildProject {
- propertiesExtension.set(PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_COMPATIBILITY_METADATA_VARIANT, "true")
- propertiesExtension.set(
- PropertiesProvider.PropertyNames.KOTLIN_SUPPRESS_GRADLE_PLUGIN_ERRORS,
- KotlinToolingDiagnostics.PreHMPPFlagsError.id
- )
- applyMultiplatformPlugin()
- kotlin {
- val grandCommonMain = sourceSets.create("grandCommonMain")
- val commonMain = sourceSets.getByName("commonMain")
- commonMain.dependsOn(grandCommonMain)
- }
- }
-
- project.evaluate()
-
- val actualSourceSets = project
- .multiplatformExtension
- .metadata()
- .compilations
- .getByName("main")
- .kotlinSourceSets
- .map { it.name }
- .toSet()
-
- assertEquals(setOf("grandCommonMain", "commonMain"), actualSourceSets)
- }
-}
\ No newline at end of file