aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormvicsokolova <82594708+mvicsokolova@users.noreply.github.com>2024-01-22 18:38:09 +0100
committerGitHub <noreply@github.com>2024-01-22 18:38:09 +0100
commit0f576ff57bd49a53b1b289fefbed18b682371ea3 (patch)
tree2bf82302b0364534476e14950d0457dc0d997767
parente3cb1483dfd62754ef06d80918e823be30012fef (diff)
downloadkotlinx.atomicfu-0f576ff57bd49a53b1b289fefbed18b682371ea3.tar.gz
Add atomicfu to the apiElements config for native targets (#395)
* Add atomicfu to the apiElements for native sourceSets to resolve the warning about compileOnly dependencies in Native. See #376, KT-64109
-rw-r--r--atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt21
1 files changed, 18 insertions, 3 deletions
diff --git a/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt b/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt
index dcc74be..f2dcbc0 100644
--- a/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt
+++ b/atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt
@@ -128,8 +128,10 @@ private fun Project.configureMultiplatformPluginDependencies(version: String) {
implementation(atomicfuDependency)
}
// Include atomicfu as a dependency for publication when transformation for the target is disabled
- multiplatformExtension.targets.all { target ->
- if (isTransitiveAtomicfuDependencyRequired(target)) {
+ multiplatformExtension.targets
+ .matching { target -> isTransitiveAtomicfuDependencyRequired(target) }
+ .all { target ->
+ // Add an implementation dependency for native/wasm targets or if transformation is disable
target.compilations.all { compilation ->
compilation
.defaultSourceSet
@@ -138,7 +140,20 @@ private fun Project.configureMultiplatformPluginDependencies(version: String) {
}
}
}
- }
+
+ // atomicfu should also appear in apiElements config for native targets,
+ // otherwise the warning is triggered, see: KT-64109
+ multiplatformExtension.targets
+ .matching { target -> target.platformType == KotlinPlatformType.native }
+ .all { target ->
+ target.compilations.all { compilation ->
+ compilation
+ .defaultSourceSet
+ .dependencies {
+ api(atomicfuDependency)
+ }
+ }
+ }
}
private data class KotlinVersion(val major: Int, val minor: Int, val patch: Int)