[Gradle][MPP] Refine naming for KotlinTargetHierarchyBuilder
^KT-53570 Verification Pending
This commit is contained in:
committed by
Space Team
parent
1a519a8159
commit
c332c928fc
+4
-2
@@ -1029,6 +1029,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetE
|
||||
}
|
||||
|
||||
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder {
|
||||
public abstract fun addCompilations (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun android ()V
|
||||
public abstract fun androidNativeArm32 ()V
|
||||
public abstract fun androidNativeArm64 ()V
|
||||
@@ -1045,9 +1046,8 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetH
|
||||
public abstract fun anyTvos ()V
|
||||
public abstract fun anyWatchos ()V
|
||||
public abstract fun common (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun excludeCompilation (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun filterCompilations (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun group (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun includeCompilation (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun iosArm32 ()V
|
||||
public abstract fun iosArm64 ()V
|
||||
public abstract fun iosSimulatorArm64 ()V
|
||||
@@ -1062,6 +1062,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetH
|
||||
public abstract fun macosX64 ()V
|
||||
public abstract fun mingwX64 ()V
|
||||
public abstract fun mingwX86 ()V
|
||||
public abstract fun removeCompilations (Lkotlin/jvm/functions/Function1;)V
|
||||
public abstract fun tvosArm64 ()V
|
||||
public abstract fun tvosSimulatorArm64 ()V
|
||||
public abstract fun tvosX64 ()V
|
||||
@@ -1076,6 +1077,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTargetH
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder$DefaultImpls {
|
||||
public static fun common (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Lkotlin/jvm/functions/Function1;)V
|
||||
public static fun filterCompilations (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Lkotlin/jvm/functions/Function1;)V
|
||||
public static synthetic fun group$default (Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
|
||||
}
|
||||
|
||||
|
||||
+3
-4
@@ -12,11 +12,10 @@ interface KotlinTargetHierarchyBuilder {
|
||||
fun group(name: String, build: KotlinTargetHierarchyBuilder.() -> Unit = {})
|
||||
|
||||
/* low-level APIs */
|
||||
fun includeCompilationIf(predicate: (KotlinCompilation<*>) -> Boolean)
|
||||
fun excludeCompilationIf(predicate: (KotlinCompilation<*>) -> Boolean)
|
||||
|
||||
fun addCompilations(predicate: (KotlinCompilation<*>) -> Boolean)
|
||||
fun removeCompilations(predicate: (KotlinCompilation<*>) -> Boolean)
|
||||
fun filterCompilations(predicate: (KotlinCompilation<*>) -> Boolean) =
|
||||
excludeCompilationIf { !predicate(it) }
|
||||
removeCompilations { !predicate(it) }
|
||||
|
||||
/* Convenient groups */
|
||||
fun anyNative()
|
||||
|
||||
+45
-45
@@ -35,7 +35,7 @@ private class KotlinTargetHierarchyBuilderImplContext(private val compilation: K
|
||||
fun build(node: KotlinTargetHierarchy.Node): KotlinTargetHierarchy? {
|
||||
return builtValues.getOrPut(node) {
|
||||
val builder = getOrCreateBuilder(node)
|
||||
if (!builder.includes(compilation)) return@getOrPut null
|
||||
if (compilation !in builder) return@getOrPut null
|
||||
|
||||
/*
|
||||
Keep the hierarchy 'deduplicated'.
|
||||
@@ -66,21 +66,21 @@ private class KotlinTargetHierarchyBuilderImpl(
|
||||
private var includePredicate: ((KotlinCompilation<*>) -> Boolean) = { false }
|
||||
private var excludePredicate: ((KotlinCompilation<*>) -> Boolean) = { false }
|
||||
|
||||
override fun includeCompilationIf(predicate: (KotlinCompilation<*>) -> Boolean) {
|
||||
override fun addCompilations(predicate: (KotlinCompilation<*>) -> Boolean) {
|
||||
val previousIncludePredicate = this.includePredicate
|
||||
val previousExcludePredicate = this.excludePredicate
|
||||
this.includePredicate = { previousIncludePredicate(it) || predicate(it) }
|
||||
this.excludePredicate = { previousExcludePredicate(it) && !predicate(it) }
|
||||
}
|
||||
|
||||
override fun excludeCompilationIf(predicate: (KotlinCompilation<*>) -> Boolean) {
|
||||
override fun removeCompilations(predicate: (KotlinCompilation<*>) -> Boolean) {
|
||||
val previousIncludePredicate = this.includePredicate
|
||||
val previousExcludePredicate = this.excludePredicate
|
||||
this.includePredicate = { previousIncludePredicate(it) && !predicate(it) }
|
||||
this.excludePredicate = { previousExcludePredicate(it) || predicate(it) }
|
||||
}
|
||||
|
||||
fun includes(compilation: KotlinCompilation<*>): Boolean {
|
||||
operator fun contains(compilation: KotlinCompilation<*>): Boolean {
|
||||
/* Return eagerly, when compilation is explicitly excluded */
|
||||
if (excludePredicate(compilation)) return false
|
||||
|
||||
@@ -88,10 +88,10 @@ private class KotlinTargetHierarchyBuilderImpl(
|
||||
if (includePredicate(compilation)) return true
|
||||
|
||||
/* Find any child that includes this compilation */
|
||||
return childrenClosure.any { child -> child.includes(compilation) }
|
||||
return childrenClosure.any { child -> compilation in child }
|
||||
}
|
||||
|
||||
private inline fun includeTargetIf(crossinline predicate: (KotlinTarget) -> Boolean) = includeCompilationIf { predicate(it.target) }
|
||||
private inline fun addTargets(crossinline predicate: (KotlinTarget) -> Boolean) = addCompilations { predicate(it.target) }
|
||||
|
||||
override fun group(name: String, build: KotlinTargetHierarchyBuilder.() -> Unit) {
|
||||
val node = KotlinTargetHierarchy.Node.Group(name)
|
||||
@@ -100,135 +100,135 @@ private class KotlinTargetHierarchyBuilderImpl(
|
||||
checkCyclicHierarchy()
|
||||
}
|
||||
|
||||
override fun anyNative() = includeTargetIf { it is KotlinNativeTarget }
|
||||
override fun anyNative() = addTargets { it is KotlinNativeTarget }
|
||||
|
||||
override fun anyApple() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family.isAppleFamily }
|
||||
override fun anyApple() = addTargets { it is KotlinNativeTarget && it.konanTarget.family.isAppleFamily }
|
||||
|
||||
override fun anyIos() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family == Family.IOS }
|
||||
override fun anyIos() = addTargets { it is KotlinNativeTarget && it.konanTarget.family == Family.IOS }
|
||||
|
||||
override fun anyWatchos() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family == Family.WATCHOS }
|
||||
override fun anyWatchos() = addTargets { it is KotlinNativeTarget && it.konanTarget.family == Family.WATCHOS }
|
||||
|
||||
override fun anyMacos() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family == Family.OSX }
|
||||
override fun anyMacos() = addTargets { it is KotlinNativeTarget && it.konanTarget.family == Family.OSX }
|
||||
|
||||
override fun anyTvos() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family == Family.TVOS }
|
||||
override fun anyTvos() = addTargets { it is KotlinNativeTarget && it.konanTarget.family == Family.TVOS }
|
||||
|
||||
override fun anyMingw() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family == Family.MINGW }
|
||||
override fun anyMingw() = addTargets { it is KotlinNativeTarget && it.konanTarget.family == Family.MINGW }
|
||||
|
||||
override fun anyLinux() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family == Family.LINUX }
|
||||
override fun anyLinux() = addTargets { it is KotlinNativeTarget && it.konanTarget.family == Family.LINUX }
|
||||
|
||||
override fun anyAndroidNative() = includeTargetIf { it is KotlinNativeTarget && it.konanTarget.family == Family.ANDROID }
|
||||
override fun anyAndroidNative() = addTargets { it is KotlinNativeTarget && it.konanTarget.family == Family.ANDROID }
|
||||
|
||||
override fun anyJs() = includeTargetIf { it is KotlinJsTargetDsl }
|
||||
override fun anyJs() = addTargets { it is KotlinJsTargetDsl }
|
||||
|
||||
override fun jvm() = includeTargetIf { it is KotlinJvmTarget }
|
||||
override fun jvm() = addTargets { it is KotlinJvmTarget }
|
||||
|
||||
override fun android() = includeTargetIf { it is KotlinAndroidTarget }
|
||||
override fun android() = addTargets { it is KotlinAndroidTarget }
|
||||
|
||||
override fun androidNativeX64() = includeTargetIf {
|
||||
override fun androidNativeX64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_X64
|
||||
}
|
||||
|
||||
override fun androidNativeX86() = includeTargetIf {
|
||||
override fun androidNativeX86() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_X86
|
||||
}
|
||||
|
||||
override fun androidNativeArm32() = includeTargetIf {
|
||||
override fun androidNativeArm32() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_X86
|
||||
}
|
||||
|
||||
override fun androidNativeArm64() = includeTargetIf {
|
||||
override fun androidNativeArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.ANDROID_ARM64
|
||||
}
|
||||
|
||||
override fun iosArm32() = includeTargetIf {
|
||||
override fun iosArm32() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_ARM32
|
||||
}
|
||||
|
||||
override fun iosArm64() = includeTargetIf {
|
||||
override fun iosArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_ARM64
|
||||
}
|
||||
|
||||
override fun iosX64() = includeTargetIf {
|
||||
override fun iosX64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_X64
|
||||
}
|
||||
|
||||
override fun iosSimulatorArm64() = includeTargetIf {
|
||||
override fun iosSimulatorArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.IOS_SIMULATOR_ARM64
|
||||
}
|
||||
|
||||
override fun watchosArm32() = includeTargetIf {
|
||||
override fun watchosArm32() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_ARM32
|
||||
}
|
||||
|
||||
override fun watchosArm64() = includeTargetIf {
|
||||
override fun watchosArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_ARM64
|
||||
}
|
||||
|
||||
override fun watchosX86() = includeTargetIf {
|
||||
override fun watchosX86() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_X86
|
||||
}
|
||||
|
||||
override fun watchosX64() = includeTargetIf {
|
||||
override fun watchosX64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_X64
|
||||
}
|
||||
|
||||
override fun watchosSimulatorArm64() = includeTargetIf {
|
||||
override fun watchosSimulatorArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_SIMULATOR_ARM64
|
||||
}
|
||||
|
||||
override fun watchosDeviceArm64() = includeTargetIf {
|
||||
override fun watchosDeviceArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_DEVICE_ARM64
|
||||
}
|
||||
|
||||
override fun tvosArm64() = includeTargetIf {
|
||||
override fun tvosArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.TVOS_ARM64
|
||||
}
|
||||
|
||||
override fun tvosX64() = includeTargetIf {
|
||||
override fun tvosX64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.TVOS_X64
|
||||
}
|
||||
|
||||
override fun tvosSimulatorArm64() = includeTargetIf {
|
||||
override fun tvosSimulatorArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.TVOS_SIMULATOR_ARM64
|
||||
}
|
||||
|
||||
override fun linuxX64() = includeTargetIf {
|
||||
override fun linuxX64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_X64
|
||||
}
|
||||
|
||||
override fun mingwX86() = includeTargetIf {
|
||||
override fun mingwX86() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.MINGW_X86
|
||||
}
|
||||
|
||||
override fun mingwX64() = includeTargetIf {
|
||||
override fun mingwX64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.MINGW_X64
|
||||
}
|
||||
|
||||
override fun macosX64() = includeTargetIf {
|
||||
override fun macosX64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.MACOS_X64
|
||||
}
|
||||
|
||||
override fun macosArm64() = includeTargetIf {
|
||||
override fun macosArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.MACOS_ARM64
|
||||
}
|
||||
|
||||
override fun linuxArm64() = includeTargetIf {
|
||||
override fun linuxArm64() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_ARM64
|
||||
}
|
||||
|
||||
override fun linuxArm32Hfp() = includeTargetIf {
|
||||
override fun linuxArm32Hfp() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_ARM32_HFP
|
||||
}
|
||||
|
||||
override fun linuxMips32() = includeTargetIf {
|
||||
override fun linuxMips32() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_MIPS32
|
||||
}
|
||||
|
||||
override fun linuxMipsel32() = includeTargetIf {
|
||||
override fun linuxMipsel32() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_MIPSEL32
|
||||
}
|
||||
|
||||
override fun wasm32() = includeTargetIf {
|
||||
override fun wasm32() = addTargets {
|
||||
it is KotlinNativeTarget && it.konanTarget == KonanTarget.WASM32
|
||||
}
|
||||
|
||||
|
||||
+9
-9
@@ -25,8 +25,8 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
fun `test - simple descriptor`() {
|
||||
val descriptor = KotlinTargetHierarchyDescriptor {
|
||||
common {
|
||||
group("groupA") { includeCompilationIf { it.target.name == "a" } }
|
||||
group("groupB") { includeCompilationIf { it.target.name == "b" } }
|
||||
group("groupA") { addCompilations { it.target.name == "a" } }
|
||||
group("groupB") { addCompilations { it.target.name == "b" } }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
val descriptor = KotlinTargetHierarchyDescriptor { group("base") }.extend {
|
||||
group("base") {
|
||||
group("extension") {
|
||||
includeCompilationIf { true }
|
||||
addCompilations { true }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -85,7 +85,7 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
group("newRoot") {
|
||||
group("base") {
|
||||
group("extension") {
|
||||
includeCompilationIf { true }
|
||||
addCompilations { true }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -111,7 +111,7 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
group("newRoot1") {
|
||||
group("base") {
|
||||
group("extension1") {
|
||||
includeCompilationIf { true }
|
||||
addCompilations { true }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -120,7 +120,7 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
group("newRoot2") {
|
||||
group("base") {
|
||||
group("extension2") {
|
||||
includeCompilationIf { true }
|
||||
addCompilations { true }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -196,7 +196,7 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
filterCompilations { it.name in setOf("a", "b") }
|
||||
common {
|
||||
group("x") {
|
||||
includeCompilationIf { true }
|
||||
addCompilations { true }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -223,7 +223,7 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
@Test
|
||||
fun `test - filterCompilations - include them again`() {
|
||||
val descriptor = KotlinTargetHierarchyDescriptor {
|
||||
includeCompilationIf { true }
|
||||
addCompilations { true }
|
||||
filterCompilations { it.name == "a" }
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@ class KotlinTargetHierarchyDescriptorTest {
|
||||
assertNull(descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("b")))
|
||||
|
||||
val extended = descriptor.extend {
|
||||
includeCompilationIf { true } // <- adds all compilations back again!
|
||||
addCompilations { true } // <- adds all compilations back again!
|
||||
}
|
||||
|
||||
assertNull(descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("b")))
|
||||
|
||||
Reference in New Issue
Block a user