[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 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 {
|
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
|
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sealed interface KotlinHierarchyTemplate {
|
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
|
@ExperimentalKotlinGradlePluginApi
|
||||||
fun KotlinHierarchyTemplate(
|
fun KotlinHierarchyTemplate(
|
||||||
describe: KotlinHierarchyBuilder.Root.() -> Unit
|
describe: KotlinHierarchyBuilder.Root.() -> Unit,
|
||||||
): KotlinHierarchyTemplate {
|
): KotlinHierarchyTemplate {
|
||||||
return KotlinHierarchyTemplateImpl(describe)
|
return KotlinHierarchyTemplateImpl(describe)
|
||||||
}
|
}
|
||||||
@@ -55,9 +100,60 @@ internal interface InternalKotlinHierarchyTemplate : KotlinHierarchyTemplate {
|
|||||||
|
|
||||||
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||||
internal class KotlinHierarchyTemplateImpl(
|
internal class KotlinHierarchyTemplateImpl(
|
||||||
private val describe: KotlinHierarchyBuilder.Root.() -> Unit
|
private val describe: KotlinHierarchyBuilder.Root.() -> Unit,
|
||||||
) : InternalKotlinHierarchyTemplate {
|
) : InternalKotlinHierarchyTemplate {
|
||||||
override fun layout(builder: KotlinHierarchyBuilder.Root) {
|
override fun layout(builder: KotlinHierarchyBuilder.Root) {
|
||||||
describe(builder)
|
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.ExperimentalKotlinGradlePluginApi
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("multiplatform")
|
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 getNativeMain (Lorg/gradle/api/NamedDomainObjectContainer;)Lorg/gradle/api/NamedDomainObjectProvider;
|
||||||
public fun getNativeTest (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 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 getTargets ()Lorg/gradle/api/NamedDomainObjectCollection;
|
||||||
public final fun getTestableTargets ()Lorg/gradle/api/NamedDomainObjectCollection;
|
public final fun getTestableTargets ()Lorg/gradle/api/NamedDomainObjectCollection;
|
||||||
public fun getTvosMain (Lorg/gradle/api/NamedDomainObjectContainer;)Lorg/gradle/api/NamedDomainObjectProvider;
|
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.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.KotlinHierarchyDslImpl
|
import org.jetbrains.kotlin.gradle.plugin.hierarchy.KotlinHierarchyDslImpl
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@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.dsl.multiplatformExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
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.plugin.sources.DefaultKotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.util.*
|
import org.jetbrains.kotlin.gradle.util.*
|
||||||
import org.junit.Test
|
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.KotlinHierarchyTemplate
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation
|
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.KotlinCompileCommon
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||||
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
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.dsl.multiplatformExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
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.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.assertNoDiagnostics
|
||||||
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
|
||||||
import org.jetbrains.kotlin.gradle.util.runLifecycleAwareTest
|
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.currentKotlinPluginLifecycle
|
||||||
import org.jetbrains.kotlin.gradle.plugin.kotlinPluginLifecycle
|
import org.jetbrains.kotlin.gradle.plugin.kotlinPluginLifecycle
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTargetVariantDslImpl
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTargetVariantDslImpl
|
||||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.default
|
|
||||||
import org.jetbrains.kotlin.gradle.util.*
|
import org.jetbrains.kotlin.gradle.util.*
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import kotlin.test.assertEquals
|
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.KotlinHierarchyTemplate
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.buildHierarchy
|
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.targets.js.dsl.ExperimentalWasmDsl
|
||||||
import org.jetbrains.kotlin.gradle.util.*
|
import org.jetbrains.kotlin.gradle.util.*
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Reference in New Issue
Block a user