[Commonizer] Pretty target name output in console

This commit is contained in:
Dmitriy Dolovov
2021-01-28 01:21:57 +03:00
parent e5aa772639
commit f67a9615b8
4 changed files with 25 additions and 10 deletions
@@ -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 // 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. // 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>) : CommonizerTarget() { data class SharedTarget(val targets: Set<CommonizerTarget>) : CommonizerTarget() {
init { init {
require(targets.isNotEmpty()) require(targets.isNotEmpty())
} }
override val name get() = targets.joinToString(prefix = "[", postfix = "]") { it.name }
override val prettyName get() = name
} }
@@ -70,7 +70,7 @@ fun runCommonization(parameters: CommonizerParameters): CommonizerResult {
ModuleResult.Commonized(moduleDescriptor, libraryMetadata) 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<ModuleResult.Missing> = if (target is LeafTarget) val missingModules: List<ModuleResult.Missing> = if (target is LeafTarget)
mergeResult.missingModuleInfos.getValue(target).map { ModuleResult.Missing(it.originalLocation) } mergeResult.missingModuleInfos.getValue(target).map { ModuleResult.Missing(it.originalLocation) }
@@ -189,7 +189,6 @@ class NativeDistributionCommonizer(
} }
} }
val leafTargetNames = result.leafTargets.map { it.name }
val targetsToSerialize = result.leafTargets + result.sharedTarget val targetsToSerialize = result.leafTargets + result.sharedTarget
targetsToSerialize.forEach { target -> targetsToSerialize.forEach { target ->
val moduleResults: Collection<ModuleResult> = result.modulesByTargets.getValue(target) val moduleResults: Collection<ModuleResult> = result.modulesByTargets.getValue(target)
@@ -210,8 +209,8 @@ class NativeDistributionCommonizer(
} }
} }
val targetName = leafTargetNames.joinToString { if (it == starredTarget) "$it(*)" else it } val prettyTargetName = target.prettyCommonizedName(result.sharedTarget)
serializeTarget(target, targetName, newLibraries, missingModuleLocations, manifestProvider) serializeTarget(target, prettyTargetName, newLibraries, missingModuleLocations, manifestProvider)
} }
} }
} }
@@ -254,7 +253,7 @@ class NativeDistributionCommonizer(
private fun serializeTarget( private fun serializeTarget(
target: CommonizerTarget, target: CommonizerTarget,
targetName: String, prettyTargetName: String,
newLibraries: Collection<LibraryMetadata>, newLibraries: Collection<LibraryMetadata>,
missingModuleLocations: List<File>, missingModuleLocations: List<File>,
manifestProvider: NativeManifestDataProvider manifestProvider: NativeManifestDataProvider
@@ -276,7 +275,7 @@ class NativeDistributionCommonizer(
missingModuleLocation.copyRecursively(librariesDestination.resolve(libraryName)) missingModuleLocation.copyRecursively(librariesDestination.resolve(libraryName))
} }
logProgress("Written libraries for [$targetName]") logProgress("Written libraries for $prettyTargetName")
} }
private fun writeLibrary( private fun writeLibrary(
@@ -79,7 +79,7 @@ class CirTreeMerger(
parameters.targetProviders.forEachIndexed { targetIndex, targetProvider -> parameters.targetProviders.forEachIndexed { targetIndex, targetProvider ->
val commonModuleInfos = allModuleInfos[targetIndex].filterKeys { it in commonModuleNames } val commonModuleInfos = allModuleInfos[targetIndex].filterKeys { it in commonModuleNames }
processTarget(rootNode, targetIndex, targetProvider, commonModuleInfos, dependeeModules) 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() System.gc()
} }