[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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
||||
|
||||
plugins {
|
||||
kotlin("multiplatform")
|
||||
|
||||
@@ -61,7 +61,6 @@ public abstract class org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtensi
|
||||
public fun getNativeMain (Lorg/gradle/api/NamedDomainObjectContainer;)Lorg/gradle/api/NamedDomainObjectProvider;
|
||||
public fun getNativeTest (Lorg/gradle/api/NamedDomainObjectContainer;)Lorg/gradle/api/NamedDomainObjectProvider;
|
||||
public fun getPresets ()Lorg/gradle/api/NamedDomainObjectCollection;
|
||||
public final fun getTargetHierarchy ()Lorg/jetbrains/kotlin/gradle/dsl/KotlinTargetHierarchyDsl;
|
||||
public final fun getTargets ()Lorg/gradle/api/NamedDomainObjectCollection;
|
||||
public final fun getTestableTargets ()Lorg/gradle/api/NamedDomainObjectCollection;
|
||||
public fun getTvosMain (Lorg/gradle/api/NamedDomainObjectContainer;)Lorg/gradle/api/NamedDomainObjectProvider;
|
||||
|
||||
-1
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle.Stage.AfterFinal
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.KotlinHierarchyDslImpl
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
||||
import javax.inject.Inject
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
|
||||
-105
@@ -1,105 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.hierarchy
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate.Templates
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 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 Templates.default get() = defaultKotlinHierarchyTemplate
|
||||
|
||||
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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-1
@@ -12,7 +12,6 @@ import org.gradle.kotlin.dsl.repositories
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.junit.Test
|
||||
|
||||
-1
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
||||
|
||||
-1
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformSourceSetConventionsIm
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_APPLY_DEFAULT_HIERARCHY_TEMPLATE
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
||||
import org.jetbrains.kotlin.gradle.util.assertNoDiagnostics
|
||||
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
||||
import org.jetbrains.kotlin.gradle.util.runLifecycleAwareTest
|
||||
|
||||
-1
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.gradle.plugin.awaitFinalValue
|
||||
import org.jetbrains.kotlin.gradle.plugin.currentKotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.plugin.kotlinPluginLifecycle
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTargetVariantDslImpl
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.junit.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
-1
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.buildHierarchy
|
||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import kotlin.test.*
|
||||
|
||||
Reference in New Issue
Block a user