mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-04-26 00:21:29 +00:00
[Commonizer] Pretty target name output in console
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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) }
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user