[Gradle] ExternalTargetApi: Check-in/Document IdeAdditionalArtifactResolver

KT-55524
This commit is contained in:
Sebastian Sellmair
2023-04-19 14:25:45 +02:00
committed by Space Team
parent 6cfcea0401
commit 6a38162b45
2 changed files with 25 additions and 3 deletions
@@ -1,3 +1,12 @@
public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver {
public abstract fun resolve (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;Ljava/util/Set;)V
}
public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver$Empty : org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver {
public static final field INSTANCE Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver$Empty;
public fun resolve (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;Ljava/util/Set;)V
}
public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyEffect {
public abstract fun invoke (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;Ljava/util/Set;)V
}
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.plugin.ide
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryDependency
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinResolvedBinaryDependency
@@ -14,10 +15,22 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver.Companion.DOCUMENTATION_BINARY_TYPE
import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver.Companion.SOURCES_BINARY_TYPE
/**
* Resolver for attaching additional artifacts to already resolved dependencies.
* #### Example
* ```
* val sourcesJarResolver = IdeAdditionalArtifactResolver { sourceSet, dependencies ->
* dependencies.forEach { dependency ->
* dependency.sourcesClasspath.add(findMySourcesJarFile(dependency))
* }
* }
* ```
*/
@ExternalKotlinTargetApi
fun interface IdeAdditionalArtifactResolver {
fun resolve(sourceSet: KotlinSourceSet, dependencies: Set<IdeaKotlinDependency>)
@ExternalKotlinTargetApi
object Empty : IdeAdditionalArtifactResolver {
override fun resolve(sourceSet: KotlinSourceSet, dependencies: Set<IdeaKotlinDependency>) = Unit
}
@@ -41,7 +54,7 @@ internal fun IdeAdditionalArtifactResolver(resolvers: Iterable<IdeAdditionalArti
* Dependencies from the [IdeDependencyResolver] need to resolve sources and javadoc using
* the [SOURCES_BINARY_TYPE] or [DOCUMENTATION_BINARY_TYPE]
*/
fun IdeAdditionalArtifactResolver(resolver: IdeDependencyResolver) = IdeAdditionalArtifactResolver { sourceSet, dependencies ->
internal fun IdeAdditionalArtifactResolver(resolver: IdeDependencyResolver) = IdeAdditionalArtifactResolver { sourceSet, dependencies ->
/*
Group already resolved dependencies by their coordinates (ignoring sourceSetName, since -sources.jar are not published
on a "per source set" level.)
@@ -71,4 +84,4 @@ fun IdeAdditionalArtifactResolver(resolver: IdeDependencyResolver) = IdeAddition
}
fun IdeDependencyResolver.asAdditionalArtifactResolver() = IdeAdditionalArtifactResolver(this)
internal fun IdeDependencyResolver.asAdditionalArtifactResolver() = IdeAdditionalArtifactResolver(this)