From 8bea195d68101c4c6267d1d043d614abc029cb81 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Thu, 1 Dec 2022 14:06:15 +0100 Subject: [PATCH] [Gradle] KotlinTargetHierarchyBuilder: Use any prefix for target functions ... to disambiguate with target preset functions KT-55218 --- .../plugin/KotlinTargetHierarchyBuilder.kt | 58 +++++++++---------- .../p1/build.gradle.kts | 2 +- .../buildKotlinTargetHierarchy.kt | 58 +++++++++---------- .../gradle/KotlinCompileTaskSourcesTest.kt | 2 +- .../KotlinTargetHierarchyBuilderTest.kt | 6 +- .../gradle/KotlinTargetHierarchyDslTest.kt | 4 +- ...ndAndroidPlatformDependencyResolverTest.kt | 4 +- 7 files changed, 68 insertions(+), 66 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt index 45585008376..82319620841 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt @@ -30,33 +30,33 @@ interface KotlinTargetHierarchyBuilder { fun anyJs() /* Actual targets */ - fun jvm() - fun android() - fun androidNativeX64() - fun androidNativeX86() - fun androidNativeArm32() - fun androidNativeArm64() - fun iosArm32() - fun iosArm64() - fun iosX64() - fun iosSimulatorArm64() - fun watchosArm32() - fun watchosArm64() - fun watchosX86() - fun watchosX64() - fun watchosSimulatorArm64() - fun watchosDeviceArm64() - fun tvosArm64() - fun tvosX64() - fun tvosSimulatorArm64() - fun linuxX64() - fun mingwX86() - fun mingwX64() - fun macosX64() - fun macosArm64() - fun linuxArm64() - fun linuxArm32Hfp() - fun linuxMips32() - fun linuxMipsel32() - fun wasm32() + fun anyJvm() + fun anyAndroid() + fun anyAndroidNativeX64() + fun anyAndroidNativeX86() + fun anyAndroidNativeArm32() + fun anyAndroidNativeArm64() + fun anyIosArm32() + fun anyIosArm64() + fun anyIosX64() + fun anyIosSimulatorArm64() + fun anyWatchosArm32() + fun anyWatchosArm64() + fun anyWatchosX86() + fun anyWatchosX64() + fun anyWatchosSimulatorArm64() + fun anyWatchosDeviceArm64() + fun anyTvosArm64() + fun anyTvosX64() + fun anyTvosSimulatorArm64() + fun anyLinuxX64() + fun anyMingwX86() + fun anyMingwX64() + fun anyMacosX64() + fun anyMacosArm64() + fun anyLinuxArm64() + fun anyLinuxArm32Hfp() + fun anyLinuxMips32() + fun anyLinuxMipsel32() + fun anyWasm32() } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonizeHierarchically/p1/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonizeHierarchically/p1/build.gradle.kts index 924f329653d..b66c6d78c81 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonizeHierarchically/p1/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonizeHierarchically/p1/build.gradle.kts @@ -11,7 +11,7 @@ kotlin { targetHierarchy.default { common { group("concurrent") { - jvm() + anyJvm() group("native") { group("appleAndLinux") { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt index c78a83d2cc8..1960ebf373d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt @@ -118,7 +118,7 @@ private class KotlinTargetHierarchyBuilderImpl( override fun anyJs() = addTargets { it is KotlinJsTargetDsl } - override fun jvm() = addTargets { + override fun anyJvm() = addTargets { it is KotlinJvmTarget || /* Handle older KotlinWithJavaTarget correctly: @@ -128,113 +128,113 @@ private class KotlinTargetHierarchyBuilderImpl( (it is KotlinWithJavaTarget<*, *> && it.platformType == KotlinPlatformType.jvm) } - override fun android() = addTargets { it is KotlinAndroidTarget } + override fun anyAndroid() = addTargets { it is KotlinAndroidTarget } - override fun androidNativeX64() = addTargets { + override fun anyAndroidNativeX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_X64 } - override fun androidNativeX86() = addTargets { + override fun anyAndroidNativeX86() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_X86 } - override fun androidNativeArm32() = addTargets { + override fun anyAndroidNativeArm32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_X86 } - override fun androidNativeArm64() = addTargets { + override fun anyAndroidNativeArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_ARM64 } - override fun iosArm32() = addTargets { + override fun anyIosArm32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_ARM32 } - override fun iosArm64() = addTargets { + override fun anyIosArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_ARM64 } - override fun iosX64() = addTargets { + override fun anyIosX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_X64 } - override fun iosSimulatorArm64() = addTargets { + override fun anyIosSimulatorArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_SIMULATOR_ARM64 } - override fun watchosArm32() = addTargets { + override fun anyWatchosArm32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_ARM32 } - override fun watchosArm64() = addTargets { + override fun anyWatchosArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_ARM64 } - override fun watchosX86() = addTargets { + override fun anyWatchosX86() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_X86 } - override fun watchosX64() = addTargets { + override fun anyWatchosX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_X64 } - override fun watchosSimulatorArm64() = addTargets { + override fun anyWatchosSimulatorArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_SIMULATOR_ARM64 } - override fun watchosDeviceArm64() = addTargets { + override fun anyWatchosDeviceArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_DEVICE_ARM64 } - override fun tvosArm64() = addTargets { + override fun anyTvosArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.TVOS_ARM64 } - override fun tvosX64() = addTargets { + override fun anyTvosX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.TVOS_X64 } - override fun tvosSimulatorArm64() = addTargets { + override fun anyTvosSimulatorArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.TVOS_SIMULATOR_ARM64 } - override fun linuxX64() = addTargets { + override fun anyLinuxX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_X64 } - override fun mingwX86() = addTargets { + override fun anyMingwX86() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.MINGW_X86 } - override fun mingwX64() = addTargets { + override fun anyMingwX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.MINGW_X64 } - override fun macosX64() = addTargets { + override fun anyMacosX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.MACOS_X64 } - override fun macosArm64() = addTargets { + override fun anyMacosArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.MACOS_ARM64 } - override fun linuxArm64() = addTargets { + override fun anyLinuxArm64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_ARM64 } - override fun linuxArm32Hfp() = addTargets { + override fun anyLinuxArm32Hfp() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_ARM32_HFP } - override fun linuxMips32() = addTargets { + override fun anyLinuxMips32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_MIPS32 } - override fun linuxMipsel32() = addTargets { + override fun anyLinuxMipsel32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_MIPSEL32 } - override fun wasm32() = addTargets { + override fun anyWasm32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WASM32 } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinCompileTaskSourcesTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinCompileTaskSourcesTest.kt index 5610bd8804c..55c06b01242 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinCompileTaskSourcesTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinCompileTaskSourcesTest.kt @@ -66,7 +66,7 @@ class KotlinCompileTaskSourcesTest { common { group("jvmAndLinux") { anyLinux() - jvm() + anyJvm() } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyBuilderTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyBuilderTest.kt index 67c55b2cdda..0f9c1882566 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyBuilderTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyBuilderTest.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsTargetPreset import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmWithJavaTargetPreset import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinWasmTargetPreset +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.junit.Test import kotlin.test.fail @@ -32,8 +33,9 @@ class KotlinTargetHierarchyBuilderTest { // jvmWithJava is covered by the jvm() call .filter { it !is KotlinJvmWithJavaTargetPreset } .forEach { preset -> - if (kotlinTargetHierarchyBuilderInterface.declaredMethods.none { it.name == preset.name }) - fail("${kotlinTargetHierarchyBuilderInterface.name}: Missing ${preset.name}() function") + val expectedFunctionName = "any${preset.name.capitalizeAsciiOnly()}" + if (kotlinTargetHierarchyBuilderInterface.declaredMethods.none { it.name == expectedFunctionName }) + fail("${kotlinTargetHierarchyBuilderInterface.name}: Missing ${expectedFunctionName}() function") } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyDslTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyDslTest.kt index c3915c6e299..71a87e5da89 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyDslTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/KotlinTargetHierarchyDslTest.kt @@ -204,7 +204,7 @@ class KotlinTargetHierarchyDslTest { targetHierarchy.apply(descriptor) { group("base") { group("extension") { - linuxX64() + anyLinuxX64() } } } @@ -276,7 +276,7 @@ class KotlinTargetHierarchyDslTest { group("newRoot") { group("base") { group("extension") { - linuxX64() + anyLinuxX64() } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/IdeJvmAndAndroidPlatformDependencyResolverTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/IdeJvmAndAndroidPlatformDependencyResolverTest.kt index a83e5044d88..64d82162538 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/IdeJvmAndAndroidPlatformDependencyResolverTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ide/IdeJvmAndAndroidPlatformDependencyResolverTest.kt @@ -39,8 +39,8 @@ class IdeJvmAndAndroidPlatformDependencyResolverTest { kotlin.targetHierarchy.custom { common { group("jvmAndAndroid") { - jvm() - android() + anyJvm() + anyAndroid() } } }