add more precise target reporting with presets

fix report message to be more useful
This commit is contained in:
Vadim Brilyantov
2018-12-19 18:26:58 +03:00
parent 7e374e0f5a
commit 7e41384a60
7 changed files with 19 additions and 5 deletions
@@ -84,6 +84,7 @@ interface KotlinTargetJar : Serializable {
interface KotlinTarget : Serializable {
val name: String
val presetName: String?
val disambiguationClassifier: String?
val platform: KotlinPlatform
val compilations: Collection<KotlinCompilation>
@@ -175,6 +175,15 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
val platformId = (getPlatformType.invoke(gradleTarget) as? Named)?.name ?: return null
val platform = KotlinPlatform.byId(platformId) ?: return null
val disambiguationClassifier = getDisambiguationClassifier(gradleTarget) as? String
val getPreset = targetClass.getMethodOrNull("getPreset")
var targetPresetName: String? = null
try {
val targetPreset = getPreset?.invoke(gradleTarget)
val getPresetName = targetPreset?.javaClass?.getMethodOrNull("getName")
targetPresetName = getPresetName?.invoke(targetPreset) as? String
} catch (e: Throwable) {
targetPresetName = "${e::class.java.name}:${e.message}"
}
@Suppress("UNCHECKED_CAST")
val gradleCompilations =
(getCompilations.invoke(gradleTarget) as? NamedDomainObjectContainer<Named>)?.asMap?.values ?: emptyList<Named>()
@@ -182,7 +191,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project)
}
val jar = buildTargetJar(gradleTarget, project)
val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar)
val target = KotlinTargetImpl(gradleTarget.name, targetPresetName, disambiguationClassifier, platform, compilations, jar)
compilations.forEach { it.target = target }
return target
}
@@ -181,7 +181,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project)
}
val jar = buildTargetJar(gradleTarget, project)
val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar)
val target = KotlinTargetImpl(gradleTarget.name, null, disambiguationClassifier, platform, compilations, jar)
compilations.forEach { it.target = target }
return target
}
@@ -182,7 +182,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project)
}
val jar = buildTargetJar(gradleTarget, project)
val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar)
val target = KotlinTargetImpl(gradleTarget.name, null, disambiguationClassifier, platform, compilations, jar)
compilations.forEach { it.target = target }
return target
}
@@ -181,7 +181,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
buildCompilation(it, disambiguationClassifier, sourceSetMap, dependencyResolver, project)
}
val jar = buildTargetJar(gradleTarget, project)
val target = KotlinTargetImpl(gradleTarget.name, disambiguationClassifier, platform, compilations, jar)
val target = KotlinTargetImpl(gradleTarget.name, null, disambiguationClassifier, platform, compilations, jar)
compilations.forEach { it.target = target }
return target
}
@@ -72,6 +72,7 @@ class KotlinTargetJarImpl(
class KotlinTargetImpl(
override val name: String,
override val presetName: String?,
override val disambiguationClassifier: String?,
override val platform: KotlinPlatform,
override val compilations: Collection<KotlinCompilation>,