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