From 103fb3930644d92fb07cd0184964f0af216f9fd9 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Tue, 24 Jan 2023 11:59:04 +0100 Subject: [PATCH] [Gradle] CInteropMetadataDependencyTransformationTask: Ignore project dependencies Included builds will still resolve using a regular ArtifactMetadataProvider (but using a ProjectComponentIdentifier). Such dependencies shall not try to go through cinterop metadata transformation. Right now commonized dependencies from included builds will just not be visible/exported to the consumer builds. Using cinterop declarations inside the API surface will not be enabled until more stability guarantees for cinterops can be provided ^KT-56115 Verification Pending --- .../CInteropMetadataDependencyTransformationTask.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt index 29ee9422e10..73d2f54f81e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt @@ -158,7 +158,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru get() = sourceSet .compileDependenciesTransformationOrFail .metadataDependencyResolutions - .filterIsInstance() + .resolutionsToTransform() @Suppress("unused") @get:Nested @@ -188,7 +188,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru into this field */ val transformation = GranularMetadataTransformation(parameters, ParentSourceSetVisibilityProvider.Empty) - val chooseVisibleSourceSets = transformation.metadataDependencyResolutions.filterIsInstance() + val chooseVisibleSourceSets = transformation.metadataDependencyResolutions.resolutionsToTransform() val transformedLibraries = chooseVisibleSourceSets.flatMap(::materializeMetadata) KotlinMetadataLibrariesIndexFile(outputLibrariesFileIndex.get().asFile).write(transformedLibraries) } @@ -216,5 +216,11 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru } }.files } + + private fun Iterable.resolutionsToTransform(): List { + return filterIsInstance() + /* We do not care about Project to Project dependencies: Those shall use the commonizer output directly (no transformation) */ + .filter { it.dependency.id !is ProjectComponentIdentifier } + } }