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.KotlinPlatformType.*
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
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.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.gradle.tooling.buildKotlinToolingMetadataTask
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
import org.jetbrains.kotlin.library.KotlinAbiVersion
|
||||||
@@ -81,6 +85,31 @@ class BuildKotlinToolingMetadataTest {
|
|||||||
listOf(common, androidJvm, jvm, js, native).map { it.name }.sorted(),
|
listOf(common, androidJvm, jvm, js, native).map { it.name }.sorted(),
|
||||||
metadata.projectTargets.map { it.platformType }.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
|
@Test
|
||||||
|
|||||||
+9
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.tooling
|
|||||||
import com.android.build.gradle.BaseExtension
|
import com.android.build.gradle.BaseExtension
|
||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.internal.GeneratedSubclass
|
||||||
import org.gradle.api.provider.Property
|
import org.gradle.api.provider.Property
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.jetbrains.kotlin.compilerRunner.konanVersion
|
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.KotlinSingleTargetExtension
|
||||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
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.KotlinAndroidTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
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 {
|
private fun buildTargetMetadata(target: KotlinTarget): KotlinToolingMetadata.ProjectTargetMetadata {
|
||||||
return KotlinToolingMetadata.ProjectTargetMetadata(
|
return KotlinToolingMetadata.ProjectTargetMetadata(
|
||||||
target = target.javaClass.canonicalName,
|
target = buildTargetString(target),
|
||||||
platformType = target.platformType.name,
|
platformType = target.platformType.name,
|
||||||
extras = buildTargetMetadataExtras(target)
|
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 {
|
private fun buildTargetMetadataExtras(target: KotlinTarget): KotlinToolingMetadata.ProjectTargetMetadata.Extras {
|
||||||
return KotlinToolingMetadata.ProjectTargetMetadata.Extras(
|
return KotlinToolingMetadata.ProjectTargetMetadata.Extras(
|
||||||
jvm = buildJvmExtrasOrNull(target),
|
jvm = buildJvmExtrasOrNull(target),
|
||||||
@@ -156,3 +162,4 @@ private fun buildNativeExtrasOrNull(target: KotlinTarget): KotlinToolingMetadata
|
|||||||
konanAbiVersion = KotlinAbiVersion.CURRENT.toString()
|
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",
|
"platformType": "js",
|
||||||
"extras": {
|
"extras": {
|
||||||
"js": {
|
"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",
|
"platformType": "jvm",
|
||||||
"extras": {
|
"extras": {
|
||||||
"jvm": {
|
"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",
|
"platformType": "native",
|
||||||
"extras": {
|
"extras": {
|
||||||
"native": {
|
"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"
|
"platformType": "common"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -102,7 +102,7 @@ class DeserializeStringTest {
|
|||||||
assertNull(androidJvmTarget.extras.native)
|
assertNull(androidJvmTarget.extras.native)
|
||||||
|
|
||||||
val jsTarget = metadata.projectTargets.single { it.platformType == "js" }
|
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?.isBrowserConfigured)
|
||||||
assertEquals(true, jsTarget.extras.js?.isNodejsConfigured)
|
assertEquals(true, jsTarget.extras.js?.isNodejsConfigured)
|
||||||
assertNull(jsTarget.extras.android)
|
assertNull(jsTarget.extras.android)
|
||||||
@@ -110,7 +110,7 @@ class DeserializeStringTest {
|
|||||||
assertNull(jsTarget.extras.native)
|
assertNull(jsTarget.extras.native)
|
||||||
|
|
||||||
val jvmTarget = metadata.projectTargets.single { it.platformType == "jvm" }
|
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(false, jvmTarget.extras.jvm?.withJavaEnabled)
|
||||||
assertEquals("1.8", jvmTarget.extras.jvm?.jvmTarget)
|
assertEquals("1.8", jvmTarget.extras.jvm?.jvmTarget)
|
||||||
assertNull(jvmTarget.extras.android)
|
assertNull(jvmTarget.extras.android)
|
||||||
@@ -118,7 +118,7 @@ class DeserializeStringTest {
|
|||||||
assertNull(jvmTarget.extras.native)
|
assertNull(jvmTarget.extras.native)
|
||||||
|
|
||||||
val nativeTarget = metadata.projectTargets.single { it.platformType == "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)
|
val nativeExtras = assertNotNull(nativeTarget.extras.native)
|
||||||
assertEquals("linux_x64", nativeExtras.konanTarget)
|
assertEquals("linux_x64", nativeExtras.konanTarget)
|
||||||
assertEquals("1.5-dev-17775", nativeExtras.konanVersion)
|
assertEquals("1.5-dev-17775", nativeExtras.konanVersion)
|
||||||
@@ -128,7 +128,7 @@ class DeserializeStringTest {
|
|||||||
assertNull(nativeTarget.extras.js)
|
assertNull(nativeTarget.extras.js)
|
||||||
|
|
||||||
val commonTarget = metadata.projectTargets.single { it.platformType == "common" }
|
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.android)
|
||||||
assertNull(commonTarget.extras.jvm)
|
assertNull(commonTarget.extras.jvm)
|
||||||
assertNull(commonTarget.extras.js)
|
assertNull(commonTarget.extras.js)
|
||||||
|
|||||||
Reference in New Issue
Block a user