[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

View File

@@ -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>) : CommonizerTarget() {
init {
require(targets.isNotEmpty())
}
}
override val name get() = targets.joinToString(prefix = "[", postfix = "]") { it.name }
override val prettyName get() = name
}

View File

@@ -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<ModuleResult.Missing> = if (target is LeafTarget)
mergeResult.missingModuleInfos.getValue(target).map { ModuleResult.Missing(it.originalLocation) }

View File

@@ -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<ModuleResult> = 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<LibraryMetadata>,
missingModuleLocations: List<File>,
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(

View File

@@ -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()
}