aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormvicsokolova <82594708+mvicsokolova@users.noreply.github.com>2022-10-05 11:07:40 +0200
committerGitHub <noreply@github.com>2022-10-05 11:07:40 +0200
commitea661bc5aecdcd3a0a19c3f1c4faf4f39d4fac08 (patch)
treeb95ba533ebd2208c087621d73250efe8f45fe0f2
parentb09e1b29760dee9b1840b8b79512e0e88d62cb80 (diff)
downloadkotlinx.atomicfu-ea661bc5aecdcd3a0a19c3f1c4faf4f39d4fac08.tar.gz
Backward compatibility for the passing the friendPaths (#249)
-rw-r--r--atomicfu-gradle-plugin/src/main/kotlin/kotlinx/atomicfu/plugin/gradle/AtomicFUGradlePlugin.kt19
1 files changed, 14 insertions, 5 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 9cb2a1a..4a53251 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
@@ -195,9 +195,18 @@ fun Project.withKotlinTargets(fn: (KotlinTarget) -> Unit) {
}
}
-// Fixes KT-KT-54167 (works only for KGP 1.7.0+)
-private fun BaseKotlinCompile.setFriendPaths(friendPathsFileCollection: FileCollection) =
- friendPaths.from(friendPathsFileCollection)
+private fun KotlinCompile<*>.setFriendPaths(friendPathsFileCollection: FileCollection) {
+ val (majorVersion, minorVersion) = project.getKotlinPluginVersion()
+ .split('.')
+ .take(2)
+ .map { it.toInt() }
+ if (majorVersion == 1 && minorVersion < 7) {
+ (this as? AbstractKotlinCompile<*>)?.friendPaths?.from(friendPathsFileCollection)
+ } else {
+ // See KT-KT-54167 (works only for KGP 1.7.0+)
+ (this as BaseKotlinCompile).friendPaths.from(friendPathsFileCollection)
+ }
+}
fun Project.configureJsTransformation() =
configureTransformationForTarget((kotlinExtension as KotlinJsProjectExtension).js())
@@ -283,7 +292,7 @@ private fun Project.configureTransformationForTarget(target: KotlinTarget) {
(tasks.findByName("${target.name}${compilation.name.capitalize()}") as? Test)?.classpath =
originalMainClassesDirs + (compilation as KotlinCompilationToRunnableFiles).runtimeDependencyFiles - mainCompilation.output.classesDirs
- (compilation.compileKotlinTask as BaseKotlinCompile).setFriendPaths(originalMainClassesDirs)
+ compilation.compileKotlinTask.setFriendPaths(originalMainClassesDirs)
}
}
}
@@ -388,7 +397,7 @@ fun Project.configureJvmTransformation(
classpath =
originalMainClassesDirs + sourceSet.compileClasspath - mainSourceSet.output.classesDirs
- (this as? BaseKotlinCompile)?.setFriendPaths(originalMainClassesDirs)
+ (this as? KotlinCompile<*>)?.setFriendPaths(originalMainClassesDirs)
}
// todo: fix test runtime classpath for JS?