[Gradle] Move KotlinHierarchyTemplate.Templates.default into -api module
^KT-58676 Verification Pending
This commit is contained in:
committed by
Space Team
parent
2a4f9b19f0
commit
1cd8089e92
@@ -971,6 +971,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinHierarc
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/plugin/KotlinHierarchyTemplate$Templates {
|
||||
public final fun getDefault ()Lorg/jetbrains/kotlin/gradle/plugin/KotlinHierarchyTemplate;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/plugin/KotlinHierarchyTemplateKt {
|
||||
|
||||
+100
-4
@@ -9,9 +9,54 @@ import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
||||
|
||||
|
||||
|
||||
sealed interface KotlinHierarchyTemplate {
|
||||
companion object Templates
|
||||
companion object Templates {
|
||||
/**
|
||||
* Set's up a 'natural'/'default' hierarchy within [KotlinTarget]'s, inside the project.
|
||||
*
|
||||
* #### Example 1
|
||||
*
|
||||
* ```kotlin
|
||||
* kotlin {
|
||||
* applyDefaultHierarchyTemplate() // <- position of this call is not relevant!
|
||||
*
|
||||
* iosX64()
|
||||
* iosArm64()
|
||||
* linuxX64()
|
||||
* linuxArm64()
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* Will create the following SourceSets:
|
||||
* `[iosMain, iosTest, appleMain, appleTest, linuxMain, linuxTest, nativeMain, nativeTest]
|
||||
*
|
||||
*
|
||||
* Hierarchy:
|
||||
* ```
|
||||
* common
|
||||
* |
|
||||
* +-----------------+-------------------+
|
||||
* | |
|
||||
*
|
||||
* native ...
|
||||
*
|
||||
* |
|
||||
* |
|
||||
* |
|
||||
* +----------------------+--------------------+-----------------------+
|
||||
* | | | |
|
||||
*
|
||||
* apple linux mingw androidNative
|
||||
*
|
||||
* |
|
||||
* +-----------+------------+------------+
|
||||
* | | | |
|
||||
*
|
||||
* macos ios tvos watchos
|
||||
* ```
|
||||
*/
|
||||
val default get() = defaultKotlinHierarchyTemplate
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -20,7 +65,7 @@ EXPERIMENTAL API
|
||||
|
||||
@ExperimentalKotlinGradlePluginApi
|
||||
fun KotlinHierarchyTemplate(
|
||||
describe: KotlinHierarchyBuilder.Root.() -> Unit
|
||||
describe: KotlinHierarchyBuilder.Root.() -> Unit,
|
||||
): KotlinHierarchyTemplate {
|
||||
return KotlinHierarchyTemplateImpl(describe)
|
||||
}
|
||||
@@ -55,9 +100,60 @@ internal interface InternalKotlinHierarchyTemplate : KotlinHierarchyTemplate {
|
||||
|
||||
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||
internal class KotlinHierarchyTemplateImpl(
|
||||
private val describe: KotlinHierarchyBuilder.Root.() -> Unit
|
||||
private val describe: KotlinHierarchyBuilder.Root.() -> Unit,
|
||||
) : InternalKotlinHierarchyTemplate {
|
||||
override fun layout(builder: KotlinHierarchyBuilder.Root) {
|
||||
describe(builder)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Default Hierarchy Template Implementation
|
||||
*/
|
||||
|
||||
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||
private val defaultKotlinHierarchyTemplate = KotlinHierarchyTemplate {
|
||||
/* natural hierarchy is only applied to default 'main'/'test' compilations (by default) */
|
||||
withSourceSetTree(KotlinSourceSetTree.main, KotlinSourceSetTree.test)
|
||||
|
||||
common {
|
||||
/* All compilations shall be added to the common group by default */
|
||||
withCompilations { true }
|
||||
|
||||
group("native") {
|
||||
withNative()
|
||||
|
||||
group("apple") {
|
||||
withApple()
|
||||
|
||||
group("ios") {
|
||||
withIos()
|
||||
}
|
||||
|
||||
group("tvos") {
|
||||
withTvos()
|
||||
}
|
||||
|
||||
group("watchos") {
|
||||
withWatchos()
|
||||
}
|
||||
|
||||
group("macos") {
|
||||
withMacos()
|
||||
}
|
||||
}
|
||||
|
||||
group("linux") {
|
||||
withLinux()
|
||||
}
|
||||
|
||||
group("mingw") {
|
||||
withMingw()
|
||||
}
|
||||
|
||||
group("androidNative") {
|
||||
withAndroidNative()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user