diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTarget.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTarget.kt index 7d04e7d1564..b91271767a6 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTarget.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/CommonizerTarget.kt @@ -9,12 +9,28 @@ import org.jetbrains.kotlin.konan.target.KonanTarget // N.B. TargetPlatform/SimplePlatform are non exhaustive enough to address both target platforms such as // JVM, JS and concrete Kotlin/Native targets, e.g. macos_x64, ios_x64, linux_x64. -sealed class CommonizerTarget +sealed class CommonizerTarget { + abstract val name: String + abstract val prettyName: String -data class LeafTarget(val name: String, val konanTarget: KonanTarget? = null) : CommonizerTarget() + fun prettyCommonizedName(sharedTarget: SharedTarget): String = when { + this == sharedTarget -> prettyName + this in sharedTarget.targets -> sharedTarget.targets.joinToString(prefix = "[", postfix = "]") { + if (it == this) "${it.name}(*)" else it.name + } + else -> error("Target $prettyName is not in ${sharedTarget.prettyName}") + } +} + +data class LeafTarget(override val name: String, val konanTarget: KonanTarget? = null) : CommonizerTarget() { + override val prettyName get() = "[$name]" +} data class SharedTarget(val targets: Set) : CommonizerTarget() { init { require(targets.isNotEmpty()) } -} \ No newline at end of file + + override val name get() = targets.joinToString(prefix = "[", postfix = "]") { it.name } + override val prettyName get() = name +} diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/facade.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/facade.kt index 3909663d46a..5c2004ef5a6 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/facade.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/facade.kt @@ -70,7 +70,7 @@ fun runCommonization(parameters: CommonizerParameters): CommonizerResult { ModuleResult.Commonized(moduleDescriptor, libraryMetadata) } - parameters.progressLogger?.invoke("Built metadata for target [$target]") + parameters.progressLogger?.invoke("Built metadata for ${target.prettyCommonizedName(parameters.sharedTarget)}") val missingModules: List = if (target is LeafTarget) mergeResult.missingModuleInfos.getValue(target).map { ModuleResult.Missing(it.originalLocation) } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/konan/NativeDistributionCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/konan/NativeDistributionCommonizer.kt index 3f6e8291fbc..b0dae0238e9 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/konan/NativeDistributionCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/konan/NativeDistributionCommonizer.kt @@ -189,7 +189,6 @@ class NativeDistributionCommonizer( } } - val leafTargetNames = result.leafTargets.map { it.name } val targetsToSerialize = result.leafTargets + result.sharedTarget targetsToSerialize.forEach { target -> val moduleResults: Collection = result.modulesByTargets.getValue(target) @@ -210,8 +209,8 @@ class NativeDistributionCommonizer( } } - val targetName = leafTargetNames.joinToString { if (it == starredTarget) "$it(*)" else it } - serializeTarget(target, targetName, newLibraries, missingModuleLocations, manifestProvider) + val prettyTargetName = target.prettyCommonizedName(result.sharedTarget) + serializeTarget(target, prettyTargetName, newLibraries, missingModuleLocations, manifestProvider) } } } @@ -254,7 +253,7 @@ class NativeDistributionCommonizer( private fun serializeTarget( target: CommonizerTarget, - targetName: String, + prettyTargetName: String, newLibraries: Collection, missingModuleLocations: List, manifestProvider: NativeManifestDataProvider @@ -276,7 +275,7 @@ class NativeDistributionCommonizer( missingModuleLocation.copyRecursively(librariesDestination.resolve(libraryName)) } - logProgress("Written libraries for [$targetName]") + logProgress("Written libraries for $prettyTargetName") } private fun writeLibrary( diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt index 6a8159759b2..e04afd70f8a 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt @@ -79,7 +79,7 @@ class CirTreeMerger( parameters.targetProviders.forEachIndexed { targetIndex, targetProvider -> val commonModuleInfos = allModuleInfos[targetIndex].filterKeys { it in commonModuleNames } processTarget(rootNode, targetIndex, targetProvider, commonModuleInfos, dependeeModules) - parameters.progressLogger?.invoke("Loaded declarations for [${targetProvider.target.name}]") + parameters.progressLogger?.invoke("Loaded declarations for ${targetProvider.target.prettyName}") System.gc() }