[Gradle][MPP] Implement ChooseVisibleSourceSetProjection as nested task input
^KT-50952 Verification Pending
This commit is contained in:
committed by
Space
parent
f7c3ed7888
commit
abed5b98ac
+21
@@ -14,9 +14,11 @@ import org.gradle.api.tasks.*
|
||||
import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.GranularMetadataTransformation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinProjectStructureMetadata
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets.MetadataProvider.JarMetadataProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets.MetadataProvider.ProjectMetadataProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toModuleIdentifiers
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.SourceSetMetadataStorageForIde
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.resolveAllDependsOnSourceSets
|
||||
@@ -27,6 +29,7 @@ import org.jetbrains.kotlin.gradle.utils.filesProvider
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import org.jetbrains.kotlin.gradle.utils.outputFilesProvider
|
||||
import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION
|
||||
import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier
|
||||
import java.io.File
|
||||
import java.util.concurrent.Callable
|
||||
import javax.inject.Inject
|
||||
@@ -90,6 +93,19 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
|
||||
@get:OutputDirectory val outputDirectory: File
|
||||
) : DefaultTask() {
|
||||
|
||||
@Suppress("unused")
|
||||
class ChooseVisibleSourceSetProjection(
|
||||
@Input val dependencyModuleIdentifiers: List<KotlinModuleIdentifier>,
|
||||
@Nested val projectStructureMetadata: KotlinProjectStructureMetadata,
|
||||
@Input val visibleSourceSetsProvidingCInterops: Set<String>
|
||||
) {
|
||||
constructor(chooseVisibleSourceSets: ChooseVisibleSourceSets) : this(
|
||||
dependencyModuleIdentifiers = chooseVisibleSourceSets.dependency.toModuleIdentifiers(),
|
||||
projectStructureMetadata = chooseVisibleSourceSets.projectStructureMetadata,
|
||||
visibleSourceSetsProvidingCInterops = chooseVisibleSourceSets.visibleSourceSetsProvidingCInterops
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("unused")
|
||||
@get:InputFiles
|
||||
@get:Classpath
|
||||
@@ -103,6 +119,11 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru
|
||||
.flatMap { it.metadataDependencyResolutions }
|
||||
.filterIsInstance<ChooseVisibleSourceSets>()
|
||||
|
||||
@Suppress("unused")
|
||||
@get:Nested
|
||||
protected val chooseVisibleSourceSetsProjection
|
||||
get() = chooseVisibleSourceSets.map(::ChooseVisibleSourceSetProjection).toSet()
|
||||
|
||||
@Suppress("unused")
|
||||
@get:Input
|
||||
protected val dependencyProjectStructureMetadata
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
|
||||
package org.jetbrains.kotlin.project.model
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
// TODO sealed with an abstract subclass? this will make exhaustive checks work
|
||||
open class KotlinModuleIdentifier(open val moduleClassifier: String?)
|
||||
open class KotlinModuleIdentifier(open val moduleClassifier: String?): Serializable
|
||||
|
||||
// TODO consider id: Any, to allow IDs with custom equality?
|
||||
data class LocalModuleIdentifier(
|
||||
|
||||
Reference in New Issue
Block a user