Compile common code to klib whenever HMPP is enabled
As the HMPP with *.kotlin_metadata was never widespread, we can immediately move to *.klib compilations whenever a build author enables HMPP.
This commit is contained in:
+13
-13
@@ -167,14 +167,14 @@ class HierarchicalMppIT : BaseGradleIT() {
|
||||
publishedMetadataJar.checkAllEntryNamesArePresent(
|
||||
"META-INF/$MULTIPLATFORM_PROJECT_METADATA_FILE_NAME",
|
||||
|
||||
"commonMain/META-INF/my-lib-foo_commonMain.kotlin_module",
|
||||
"commonMain/com/example/foo/FooKt.kotlin_metadata",
|
||||
"commonMain/manifest",
|
||||
"commonMain/linkdata/package_com.example/",
|
||||
|
||||
"jvmAndJsMain/META-INF/my-lib-foo_jvmAndJsMain.kotlin_module",
|
||||
"jvmAndJsMain/com/example/foo/FooJvmAndJsKt.kotlin_metadata",
|
||||
"jvmAndJsMain/manifest",
|
||||
"jvmAndJsMain/linkdata/package_com.example/",
|
||||
|
||||
"linuxAndJsMain/META-INF/my-lib-foo_linuxAndJsMain.kotlin_module",
|
||||
"linuxAndJsMain/com/example/foo/FooLinuxAndJsKt.kotlin_metadata"
|
||||
"linuxAndJsMain/manifest",
|
||||
"linuxAndJsMain/linkdata/package_com.example/"
|
||||
)
|
||||
|
||||
val parsedProjectStructureMetadata: KotlinProjectStructureMetadata = publishedMetadataJar.getProjectStructureMetadata()
|
||||
@@ -205,14 +205,14 @@ class HierarchicalMppIT : BaseGradleIT() {
|
||||
publishedMetadataJar.checkAllEntryNamesArePresent(
|
||||
"META-INF/$MULTIPLATFORM_PROJECT_METADATA_FILE_NAME",
|
||||
|
||||
"commonMain/META-INF/my-lib-bar_commonMain.kotlin_module",
|
||||
"commonMain/com/example/bar/BarKt.kotlin_metadata",
|
||||
"commonMain/manifest",
|
||||
"commonMain/linkdata/package_com.example.bar/",
|
||||
|
||||
"jvmAndJsMain/META-INF/my-lib-bar_jvmAndJsMain.kotlin_module",
|
||||
"jvmAndJsMain/com/example/bar/BarJvmAndJsKt.kotlin_metadata",
|
||||
"jvmAndJsMain/manifest",
|
||||
"jvmAndJsMain/linkdata/package_com.example.bar/",
|
||||
|
||||
"linuxAndJsMain/META-INF/my-lib-bar_linuxAndJsMain.kotlin_module",
|
||||
"linuxAndJsMain/com/example/bar/BarLinuxAndJsKt.kotlin_metadata"
|
||||
"linuxAndJsMain/manifest",
|
||||
"linuxAndJsMain/linkdata/package_com.example.bar/"
|
||||
)
|
||||
|
||||
val parsedProjectStructureMetadata: KotlinProjectStructureMetadata = publishedMetadataJar.getProjectStructureMetadata()
|
||||
@@ -376,7 +376,7 @@ class HierarchicalMppIT : BaseGradleIT() {
|
||||
ModuleDependencyIdentifier(it.first, it.second)
|
||||
}.toSet()
|
||||
},
|
||||
sourceSetBinaryLayout = sourceSetModuleDependencies.mapValues { SourceSetMetadataLayout.METADATA }
|
||||
sourceSetBinaryLayout = sourceSetModuleDependencies.mapValues { SourceSetMetadataLayout.KLIB }
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -1,2 +1 @@
|
||||
kotlin.mpp.enableGranularSourceSetsMetadata=true
|
||||
kotlin.mpp.enableCommonKlibs=true
|
||||
kotlin.mpp.enableGranularSourceSetsMetadata=true
|
||||
-3
@@ -94,9 +94,6 @@ internal class PropertiesProvider private constructor(private val project: Proje
|
||||
val enableGranularSourceSetsMetadata: Boolean?
|
||||
get() = booleanProperty("kotlin.mpp.enableGranularSourceSetsMetadata")
|
||||
|
||||
val enableCommonKlibs: Boolean?
|
||||
get() = booleanProperty("kotlin.mpp.enableCommonKlibs")
|
||||
|
||||
val enableCompatibilityMetadataVariant: Boolean?
|
||||
get() = booleanProperty("kotlin.mpp.enableCompatibilityMetadataVariant")
|
||||
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ class KotlinCommonCompilation(
|
||||
get() = super.compileKotlinTask as KotlinCompileCommon
|
||||
|
||||
internal val isKlibCompilation: Boolean
|
||||
get() = PropertiesProvider(target.project).enableCommonKlibs == true && !forceCompilationToKotlinMetadata
|
||||
get() = PropertiesProvider(target.project).enableGranularSourceSetsMetadata == true && !forceCompilationToKotlinMetadata
|
||||
|
||||
internal var forceCompilationToKotlinMetadata: Boolean = false
|
||||
}
|
||||
+2
-4
@@ -41,10 +41,8 @@ sealed class SourceSetMetadataLayout(
|
||||
fun byName(name: String): SourceSetMetadataLayout? = values.firstOrNull { it.name == name }
|
||||
|
||||
fun chooseForProducingProject(project: Project) =
|
||||
if (PropertiesProvider(project.rootProject).enableCommonKlibs == true)
|
||||
KLIB
|
||||
else
|
||||
METADATA
|
||||
/** A producing project will now only generate Granular source sets metadata as a KLIB */
|
||||
KLIB
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user