[Gradle] Streamline how cinterop artifacts are exposed within a Gradle project

Before:
- The cinterop task's output files were added as file dependency
to the declaring target's apiElementsConfiguration
- A 'copy' task was created for the cinterop artifact that was added
to the apiElements configuration as artifact (and therefore also
to the apiElements-published). This copy task placed the
same klib into the 'libs' folder
- Before passing libraries to the compiler the, all files
that are likely to be the result of the 'copy' task (in any libs dir) were
filtered

After:
- The cinterop task's output files are *not* added as file dependency
- The cinterop task's output is added as artifact directly to
the 'apiElements' configuration
- There is no more need for a copy task
- There is no more need for manually filtering the 'libs' artifacts

Tested:
project to project dependencies,
project to project dependencies (with KGP based dependency resolution)
project to repository
project to repository (with KGP based dependency resolution)

^KT-37051 Verification Pending
This commit is contained in:
Sebastian Sellmair
2023-02-01 15:58:08 +01:00
committed by Space Team
parent e401c29c26
commit 8a62523ffc
4 changed files with 14 additions and 58 deletions
@@ -84,7 +84,6 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() {
":lib:cinteropMyCinteropLinuxX64",
":lib:commonizeCInterop",
":lib:compileKotlinLinuxX64",
":lib:copyCinteropMyCinteropLinuxX64",
":lib:linkExecutableDebugExecutableLinuxX64",
":lib:linkSharedDebugSharedLinuxX64",
":lib:linkStaticDebugStaticLinuxX64",
@@ -95,7 +94,6 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() {
expectedTasks += listOf(
":lib:cinteropMyCinteropIosX64",
":lib:compileKotlinIosX64",
":lib:copyCinteropMyCinteropIosX64",
":lib:assembleMyframeDebugFrameworkIosArm64",
":lib:assembleMyfatframeDebugFatFramework",
":lib:assembleLibDebugXCFramework",