Enable compatibility metadata variant by default in HMPP

This by default ensures that libraries published with HMPP are
compatible with non-HMPP consumers (which is the default in 1.4.0).
This commit is contained in:
Sergey Igushkin
2020-08-05 04:27:47 +04:00
parent 2eb17df962
commit b5d4e4c44c
2 changed files with 9 additions and 4 deletions
@@ -148,7 +148,7 @@ class KlibBasedMppIT : BaseGradleIT() {
// Check that the metadata JAR doesn't contain the host-specific source set entries, but contains the shared-Native source set
// that can be built on every host:
ZipFile(groupDir.resolve("$dependencyModuleName-metadata/1.0/$dependencyModuleName-metadata-1.0.jar")).use { metadataJar ->
ZipFile(groupDir.resolve("$dependencyModuleName-metadata/1.0/$dependencyModuleName-metadata-1.0-all.jar")).use { metadataJar ->
assertTrue { metadataJar.entries().asSequence().none { it.name.startsWith(hostSpecificSourceSet) } }
assertTrue { metadataJar.entries().asSequence().any { it.name.startsWith("linuxMain") } }
}
@@ -213,7 +213,12 @@ class KlibBasedMppIT : BaseGradleIT() {
setupDependencies: Project.() -> Unit
) = with(Project("common-klib-lib-and-app")) {
embedProject(Project("common-klib-lib-and-app"), renameTo = transitiveDepModuleName)
embedProject(Project("common-klib-lib-and-app"), renameTo = dependencyModuleName)
embedProject(Project("common-klib-lib-and-app"), renameTo = dependencyModuleName).apply {
projectDir.resolve(dependencyModuleName).walkTopDown().filter { it.extension == "kt" }.forEach { file ->
// Avoid duplicate FQNs as in the compatibility mode, the K2Metadata compiler reports duplicate symbols on them:
file.modify { it.replace("package com.h0tk3y.hmpp.klib.demo", "package com.h0tk3y.hmpp.klib.demo1") }
}
}
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
gradleBuildScript(dependencyModuleName).appendText("\ndependencies { \"commonMainImplementation\"(project(\":$transitiveDepModuleName\")) }")
@@ -89,8 +89,8 @@ internal class PropertiesProvider private constructor(private val project: Proje
val enableGranularSourceSetsMetadata: Boolean?
get() = booleanProperty("kotlin.mpp.enableGranularSourceSetsMetadata")
val enableCompatibilityMetadataVariant: Boolean?
get() = booleanProperty("kotlin.mpp.enableCompatibilityMetadataVariant")
val enableCompatibilityMetadataVariant: Boolean
get() = booleanProperty("kotlin.mpp.enableCompatibilityMetadataVariant") ?: true
val ignoreDisabledNativeTargets: Boolean?
get() = booleanProperty(DisabledNativeTargetsReporter.DISABLE_WARNING_PROPERTY_NAME)