diff options
author | mvicsokolova <82594708+mvicsokolova@users.noreply.github.com> | 2022-10-05 11:07:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-05 11:07:40 +0200 |
commit | ea661bc5aecdcd3a0a19c3f1c4faf4f39d4fac08 (patch) | |
tree | b95ba533ebd2208c087621d73250efe8f45fe0f2 | |
parent | b09e1b29760dee9b1840b8b79512e0e88d62cb80 (diff) | |
download | kotlinx.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.kt | 19 |
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? |