[Gradle] Introduce HasProject and implement HasMutableExtras in public entities

^KT-34662 Verification Pending
This commit is contained in:
Sebastian Sellmair
2023-03-10 12:11:27 +01:00
committed by Space Team
parent 37e1d09c3e
commit 028780ae97
18 changed files with 31 additions and 29 deletions
@@ -672,6 +672,10 @@ public final class org/jetbrains/kotlin/gradle/plugin/HasKotlinDependenciesKt {
public static final fun warnNpmGenerateExternals (Lorg/gradle/api/logging/Logger;)V
}
public abstract interface class org/jetbrains/kotlin/gradle/plugin/HasProject {
public abstract fun getProject ()Lorg/gradle/api/Project;
}
public class org/jetbrains/kotlin/gradle/plugin/InternalSubpluginOption : org/jetbrains/kotlin/gradle/plugin/SubpluginOption {
public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
}
@@ -689,7 +693,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinBasePlu
public abstract fun getPluginVersion ()Ljava/lang/String;
}
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinCompilation : org/gradle/api/Named, org/gradle/api/attributes/HasAttributes, org/jetbrains/kotlin/gradle/plugin/HasKotlinDependencies {
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinCompilation : org/gradle/api/Named, org/gradle/api/attributes/HasAttributes, org/jetbrains/kotlin/gradle/plugin/HasKotlinDependencies, org/jetbrains/kotlin/gradle/plugin/HasProject, org/jetbrains/kotlin/tooling/core/HasMutableExtras {
public static final field Companion Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilation$Companion;
public static final field MAIN_COMPILATION_NAME Ljava/lang/String;
public static final field TEST_COMPILATION_NAME Ljava/lang/String;
@@ -718,7 +722,6 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinCompila
public abstract fun getName ()Ljava/lang/String;
public abstract fun getOutput ()Lorg/jetbrains/kotlin/gradle/plugin/KotlinCompilationOutput;
public abstract fun getPlatformType ()Lorg/jetbrains/kotlin/gradle/plugin/KotlinPlatformType;
public abstract fun getProject ()Lorg/gradle/api/Project;
public abstract fun getRelatedConfigurationNames ()Ljava/util/List;
public abstract fun getRuntimeDependencyConfigurationName ()Ljava/lang/String;
public abstract fun getRuntimeDependencyFiles ()Lorg/gradle/api/file/FileCollection;
@@ -970,7 +973,7 @@ public final class org/jetbrains/kotlin/gradle/plugin/KotlinPlatformType$Disambi
public fun execute (Lorg/gradle/api/attributes/MultipleCandidatesDetails;)V
}
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinSourceSet : org/gradle/api/Named, org/jetbrains/kotlin/gradle/plugin/HasKotlinDependencies {
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinSourceSet : org/gradle/api/Named, org/jetbrains/kotlin/gradle/plugin/HasKotlinDependencies, org/jetbrains/kotlin/gradle/plugin/HasProject, org/jetbrains/kotlin/tooling/core/HasMutableExtras {
public static final field COMMON_MAIN_SOURCE_SET_NAME Ljava/lang/String;
public static final field COMMON_TEST_SOURCE_SET_NAME Ljava/lang/String;
public static final field Companion Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet$Companion;
@@ -1007,7 +1010,7 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinSourceS
public abstract fun getSourceSets ()Lorg/gradle/api/NamedDomainObjectContainer;
}
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTarget : org/gradle/api/Named, org/gradle/api/attributes/HasAttributes {
public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTarget : org/gradle/api/Named, org/gradle/api/attributes/HasAttributes, org/jetbrains/kotlin/gradle/plugin/HasProject, org/jetbrains/kotlin/tooling/core/HasMutableExtras {
public abstract fun attributes (Lkotlin/jvm/functions/Function1;)V
public abstract fun attributes (Lorg/gradle/api/Action;)V
public abstract fun getApiElementsConfigurationName ()Ljava/lang/String;
@@ -1020,7 +1023,6 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/KotlinTarget
public abstract fun getOverrideDisambiguationClassifierOnIdeImport ()Ljava/lang/String;
public abstract fun getPlatformType ()Lorg/jetbrains/kotlin/gradle/plugin/KotlinPlatformType;
public abstract fun getPreset ()Lorg/jetbrains/kotlin/gradle/plugin/KotlinTargetPreset;
public abstract fun getProject ()Lorg/gradle/api/Project;
public abstract fun getPublishable ()Z
public abstract fun getRuntimeElementsConfigurationName ()Ljava/lang/String;
public abstract fun getSourcesElementsConfigurationName ()Ljava/lang/String;
@@ -14,7 +14,7 @@ dependencies {
commonApi(project(":kotlin-gradle-plugin-annotations"))
commonApi(project(":native:kotlin-native-utils"))
commonApi(project(":kotlin-project-model"))
commonImplementation(project(":kotlin-tooling-core"))
commonApi(project(":kotlin-tooling-core"))
commonCompileOnly(project(":kotlin-gradle-compiler-types"))
commonCompileOnly("com.android.tools.build:gradle-api:4.2.2") {
@@ -0,0 +1,12 @@
/*
* 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
import org.gradle.api.Project
interface HasProject {
val project: Project
}
@@ -17,13 +17,14 @@ import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptionsDeprecated
import org.jetbrains.kotlin.gradle.dsl.KotlinCompileDeprecated
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
interface KotlinCompilation<out T : KotlinCommonOptionsDeprecated> : Named,
HasProject,
HasMutableExtras,
HasAttributes,
HasKotlinDependencies {
val project: Project
val target: KotlinTarget
val compilationName: String
@@ -8,8 +8,9 @@ package org.jetbrains.kotlin.gradle.plugin
import org.gradle.api.Action
import org.gradle.api.Named
import org.gradle.api.file.SourceDirectorySet
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
interface KotlinSourceSet : Named, HasKotlinDependencies {
interface KotlinSourceSet : Named, HasProject, HasMutableExtras, HasKotlinDependencies {
val kotlin: SourceDirectorySet
fun kotlin(configure: SourceDirectorySet.() -> Unit): SourceDirectorySet
@@ -27,10 +28,13 @@ interface KotlinSourceSet : Named, HasKotlinDependencies {
@Deprecated(message = "KT-55312")
val apiMetadataConfigurationName: String
@Deprecated(message = "KT-55312")
val implementationMetadataConfigurationName: String
@Deprecated(message = "KT-55312")
val compileOnlyMetadataConfigurationName: String
@Deprecated(message = "KT-55230: RuntimeOnly scope is not supported for metadata dependency transformation")
val runtimeOnlyMetadataConfigurationName: String
@@ -16,8 +16,9 @@ import org.gradle.api.attributes.HasAttributes
import org.gradle.api.component.SoftwareComponent
import org.gradle.api.publish.maven.MavenPublication
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptionsDeprecated
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
interface KotlinTarget : Named, HasAttributes {
interface KotlinTarget : Named, HasAttributes, HasProject, HasMutableExtras {
val targetName: String
val disambiguationClassifier: String? get() = targetName
val useDisambiguationClassifierAsSourceSetNamePrefix: Boolean
@@ -27,8 +28,6 @@ interface KotlinTarget : Named, HasAttributes {
val compilations: NamedDomainObjectContainer<out KotlinCompilation<KotlinCommonOptionsDeprecated>>
val project: Project
val artifactsTaskName: String
val defaultConfigurationName: String
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.extraProperties
import org.jetbrains.kotlin.gradle.plugin.getOrNull
import org.jetbrains.kotlin.gradle.plugin.sources.project
internal object IdeDependencyLogger : IdeDependencyEffect {
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImport.DependencyR
import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImport.SourceSetConstraint
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation
import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.plugin.sources.project
import org.jetbrains.kotlin.gradle.targets.metadata.isNativeSourceSet
import org.jetbrains.kotlin.gradle.targets.metadata.isSingleKotlinTargetSourceSet
import org.jetbrains.kotlin.gradle.targets.metadata.isSinglePlatformTypeSourceSet
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.gradle.plugin.ide.IdeaKotlinBinaryCoordinates
import org.jetbrains.kotlin.gradle.plugin.mpp.internal
import org.jetbrains.kotlin.gradle.plugin.mpp.resolvableMetadataConfiguration
import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.plugin.sources.project
/**
* Resolved sources.jar and javadoc.jar files using Gradle's artifact resolution query.
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.resolvableMetadataConfiguration
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.sources.InternalKotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.plugin.sources.project
import org.jetbrains.kotlin.gradle.utils.markResolvable
import org.jetbrains.kotlin.tooling.core.mutableExtrasOf
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver
import org.jetbrains.kotlin.gradle.plugin.ide.IdeaKotlinProjectCoordinates
import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.plugin.sources.project
internal object IdeDependsOnDependencyResolver : IdeDependencyResolver {
override fun resolve(sourceSet: KotlinSourceSet): Set<IdeaKotlinDependency> {
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.sources.android.AndroidVariantType
import org.jetbrains.kotlin.gradle.plugin.sources.android.type
import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.plugin.sources.project
internal object IdeJvmAndAndroidSourceDependencyResolver : IdeDependencyResolver {
override fun resolve(sourceSet: KotlinSourceSet): Set<IdeaKotlinDependency> {
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver
import org.jetbrains.kotlin.gradle.plugin.ide.asAdditionalArtifactResolver
import org.jetbrains.kotlin.gradle.plugin.mpp.resolvableMetadataConfiguration
import org.jetbrains.kotlin.gradle.plugin.sources.internal
import org.jetbrains.kotlin.gradle.plugin.sources.project
import org.jetbrains.kotlin.gradle.utils.named
internal fun IdeMetadataSourcesResolver(): IdeAdditionalArtifactResolver = IdeBinaryDependencyResolver(
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.gradle.idea.tcs.extras.sourcesClasspath
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver
import org.jetbrains.kotlin.gradle.plugin.ide.KlibExtra
import org.jetbrains.kotlin.gradle.plugin.sources.project
import org.jetbrains.kotlin.konan.file.File
import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy
import org.jetbrains.kotlin.library.resolveSingleFileKlib
@@ -10,7 +10,6 @@ package org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers
import org.gradle.api.attributes.Category
import org.gradle.api.attributes.DocsType
import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver
import org.jetbrains.kotlin.gradle.plugin.sources.project
import org.jetbrains.kotlin.gradle.utils.named
internal fun IdePlatformSourcesResolver(): IdeBinaryDependencyResolver = IdeBinaryDependencyResolver(
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceCoordinates
import org.jetbrains.kotlin.gradle.idea.tcs.extras.KlibExtra
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.currentBuildId
import org.jetbrains.kotlin.gradle.plugin.sources.project
import org.jetbrains.kotlin.library.*
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationConfigurationsContainer
import org.jetbrains.kotlin.gradle.utils.ObservableSet
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
import org.jetbrains.kotlin.tooling.core.MutableExtras
internal interface InternalKotlinCompilation<out T : KotlinCommonOptions> : KotlinCompilation<T>, HasMutableExtras {
override val kotlinSourceSets: ObservableSet<KotlinSourceSet>
@@ -5,24 +5,19 @@
package org.jetbrains.kotlin.gradle.plugin.sources
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.utils.MutableObservableSet
import org.jetbrains.kotlin.gradle.utils.ObservableSet
import org.jetbrains.kotlin.tooling.core.HasMutableExtras
internal val KotlinSourceSet.internal: InternalKotlinSourceSet
get() = (this as? InternalKotlinSourceSet) ?: throw IllegalArgumentException(
"KotlinSourceSet $name (${this::class}) does not implement ${InternalKotlinSourceSet::class.simpleName}"
)
internal interface InternalKotlinSourceSet : KotlinSourceSet, HasMutableExtras {
val project: Project
internal interface InternalKotlinSourceSet : KotlinSourceSet {
override val dependsOn: ObservableSet<KotlinSourceSet>
val dependsOnClosure: ObservableSet<KotlinSourceSet>
val withDependsOnClosure: ObservableSet<KotlinSourceSet>
val compilations: MutableObservableSet<KotlinCompilation<*>>
}
internal val KotlinSourceSet.project: Project get() = this.internal.project