BuildKotlinToolingMetadataTask: Strip _Decorated classes from target name
This commit is contained in:
committed by
TeamCityServer
parent
24ce6957a9
commit
0406659ac8
+29
@@ -20,7 +20,11 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
|
||||
import org.jetbrains.kotlin.gradle.tooling.buildKotlinToolingMetadataTask
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
||||
@@ -81,6 +85,31 @@ class BuildKotlinToolingMetadataTest {
|
||||
listOf(common, androidJvm, jvm, js, native).map { it.name }.sorted(),
|
||||
metadata.projectTargets.map { it.platformType }.sorted()
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinMetadataTarget::class.java.canonicalName,
|
||||
metadata.projectTargets.single { it.platformType == common.name }.target
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinAndroidTarget::class.java.canonicalName,
|
||||
metadata.projectTargets.single { it.platformType == androidJvm.name }.target
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinJvmTarget::class.java.canonicalName,
|
||||
metadata.projectTargets.single { it.platformType == jvm.name }.target
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinJsTarget::class.java.canonicalName,
|
||||
metadata.projectTargets.single { it.platformType == js.name }.target
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinNativeTargetWithHostTests::class.java.canonicalName,
|
||||
metadata.projectTargets.single { it.platformType == native.name }.target
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+9
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.tooling
|
||||
import com.android.build.gradle.BaseExtension
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.internal.GeneratedSubclass
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.tasks.*
|
||||
import org.jetbrains.kotlin.compilerRunner.konanVersion
|
||||
@@ -16,7 +17,6 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
||||
@@ -108,12 +108,18 @@ private fun KotlinProjectExtension.buildProjectTargets(): List<KotlinToolingMeta
|
||||
|
||||
private fun buildTargetMetadata(target: KotlinTarget): KotlinToolingMetadata.ProjectTargetMetadata {
|
||||
return KotlinToolingMetadata.ProjectTargetMetadata(
|
||||
target = target.javaClass.canonicalName,
|
||||
target = buildTargetString(target),
|
||||
platformType = target.platformType.name,
|
||||
extras = buildTargetMetadataExtras(target)
|
||||
)
|
||||
}
|
||||
|
||||
private fun buildTargetString(target: KotlinTarget): String {
|
||||
return if (target is GeneratedSubclass) {
|
||||
return target.publicType().canonicalName
|
||||
} else target.javaClass.canonicalName
|
||||
}
|
||||
|
||||
private fun buildTargetMetadataExtras(target: KotlinTarget): KotlinToolingMetadata.ProjectTargetMetadata.Extras {
|
||||
return KotlinToolingMetadata.ProjectTargetMetadata.Extras(
|
||||
jvm = buildJvmExtrasOrNull(target),
|
||||
@@ -156,3 +162,4 @@ private fun buildNativeExtrasOrNull(target: KotlinTarget): KotlinToolingMetadata
|
||||
konanAbiVersion = KotlinAbiVersion.CURRENT.toString()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -45,7 +45,7 @@ class DeserializeStringTest {
|
||||
}
|
||||
},
|
||||
{
|
||||
"target": "org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget_Decorated",
|
||||
"target": "org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget",
|
||||
"platformType": "js",
|
||||
"extras": {
|
||||
"js": {
|
||||
@@ -55,7 +55,7 @@ class DeserializeStringTest {
|
||||
}
|
||||
},
|
||||
{
|
||||
"target": "org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget_Decorated",
|
||||
"target": "org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget",
|
||||
"platformType": "jvm",
|
||||
"extras": {
|
||||
"jvm": {
|
||||
@@ -65,7 +65,7 @@ class DeserializeStringTest {
|
||||
}
|
||||
},
|
||||
{
|
||||
"target": "org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests_Decorated",
|
||||
"target": "org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests",
|
||||
"platformType": "native",
|
||||
"extras": {
|
||||
"native": {
|
||||
@@ -76,7 +76,7 @@ class DeserializeStringTest {
|
||||
}
|
||||
},
|
||||
{
|
||||
"target": "org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget_Decorated",
|
||||
"target": "org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget",
|
||||
"platformType": "common"
|
||||
}
|
||||
]
|
||||
@@ -102,7 +102,7 @@ class DeserializeStringTest {
|
||||
assertNull(androidJvmTarget.extras.native)
|
||||
|
||||
val jsTarget = metadata.projectTargets.single { it.platformType == "js" }
|
||||
assertEquals("org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget_Decorated", jsTarget.target)
|
||||
assertEquals("org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget", jsTarget.target)
|
||||
assertEquals(true, jsTarget.extras.js?.isBrowserConfigured)
|
||||
assertEquals(true, jsTarget.extras.js?.isNodejsConfigured)
|
||||
assertNull(jsTarget.extras.android)
|
||||
@@ -110,7 +110,7 @@ class DeserializeStringTest {
|
||||
assertNull(jsTarget.extras.native)
|
||||
|
||||
val jvmTarget = metadata.projectTargets.single { it.platformType == "jvm" }
|
||||
assertEquals("org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget_Decorated", jvmTarget.target)
|
||||
assertEquals("org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget", jvmTarget.target)
|
||||
assertEquals(false, jvmTarget.extras.jvm?.withJavaEnabled)
|
||||
assertEquals("1.8", jvmTarget.extras.jvm?.jvmTarget)
|
||||
assertNull(jvmTarget.extras.android)
|
||||
@@ -118,7 +118,7 @@ class DeserializeStringTest {
|
||||
assertNull(jvmTarget.extras.native)
|
||||
|
||||
val nativeTarget = metadata.projectTargets.single { it.platformType == "native" }
|
||||
assertEquals("org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests_Decorated", nativeTarget.target)
|
||||
assertEquals("org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests", nativeTarget.target)
|
||||
val nativeExtras = assertNotNull(nativeTarget.extras.native)
|
||||
assertEquals("linux_x64", nativeExtras.konanTarget)
|
||||
assertEquals("1.5-dev-17775", nativeExtras.konanVersion)
|
||||
@@ -128,7 +128,7 @@ class DeserializeStringTest {
|
||||
assertNull(nativeTarget.extras.js)
|
||||
|
||||
val commonTarget = metadata.projectTargets.single { it.platformType == "common" }
|
||||
assertEquals("org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget_Decorated", commonTarget.target)
|
||||
assertEquals("org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget", commonTarget.target)
|
||||
assertNull(commonTarget.extras.android)
|
||||
assertNull(commonTarget.extras.jvm)
|
||||
assertNull(commonTarget.extras.js)
|
||||
|
||||
Reference in New Issue
Block a user