diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index 570c69362e3..cb76e1385c0 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -225,7 +225,7 @@ Task linkTest(String name, Closure configureClosure) { // Build an executable with library program(name, targets: [targetName]) { libraries { - klib lib + klibFile file("$testOutputLocal/$name/$targetName/${lib}.klib") } baseDir "$testOutputLocal/$name" srcFiles task.getSources() @@ -3949,7 +3949,7 @@ Task interopTestBase(String name, boolean multiFile, boolean interop2ForMainOnly artifact interopLib if (interopLib2 != null) artifact interopLib2 if (hasIntermediateLib) - klib lib + klibFile file("$testOutputLocal/$name/$targetName/${lib}.klib") } srcFiles multiFile ? fileTree(task.source) { include '**/*.kt' } : task.getSources() baseDir "$testOutputLocal/$name" @@ -5025,7 +5025,7 @@ Task frameworkTest(String name, Closure configurator) { fr.libraries.forEach { library -> dependsOn konanArtifacts[library].getByTarget(target.name) libraries { - file konanArtifacts[library].getArtifactByTarget(target.name) + klibFile konanArtifacts[library].getArtifactByTarget(target.name) } linkerOpts "-L$buildDir" UtilsKt.dependsOnKonanBuildingTask(task, library, target) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanLibrariesSpec.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanLibrariesSpec.kt index f254002a282..1e81b4e9650 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanLibrariesSpec.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanLibrariesSpec.kt @@ -23,9 +23,7 @@ open class KonanLibrariesSpec( @Internal val project: Project ) { - @InputFiles @PathSensitive(PathSensitivity.RELATIVE) val files = mutableSetOf() - - @Input val namedKlibs = mutableSetOf() + @InputFiles @PathSensitive(PathSensitivity.RELATIVE) val klibFiles = mutableSetOf() @Internal val artifacts = mutableListOf() @@ -57,14 +55,9 @@ open class KonanLibrariesSpec( // DSL Methods /** Absolute path */ - fun file(file: Any) = files.add(project.files(file)) - fun files(vararg files: Any) = this.files.addAll(files.map { project.files(it) }) - fun files(collection: FileCollection) = this.files.add(collection) - - /** The compiler with search the library in repos */ - fun klib(lib: String) = namedKlibs.add(lib) - fun klibs(vararg libs: String) = namedKlibs.addAll(libs) - fun klibs(libs: Iterable) = namedKlibs.addAll(libs) + fun klibFile(file: Any) { klibFiles.add(project.files(file)) } + fun klibFiles(vararg files: Any) { klibFiles.addAll(files.map { project.files(it) }) } + fun klibFiles(collection: FileCollection) { klibFiles.add(collection) } private fun klibInternal(lib: KonanBuildingConfig<*>, friend: Boolean) { if (!(lib is KonanLibrary || lib is KonanInteropLibrary)) { @@ -135,19 +128,4 @@ open class KonanLibrariesSpec( private fun Project.evaluationDependsOn(another: Project) { if (this != another) { evaluationDependsOn(another.path) } } - - fun asFiles(): List = asFiles( - defaultResolver( - repos.map { it.absolutePath }, - task.konanTarget, - Distribution(project.konanHome) - ) - ) - - fun asFiles(resolver: SearchPathResolver<*>): List = mutableListOf().apply { - files.flatMapTo(this) { it.files } - addAll(artifactFiles) - addAll(task.platformConfiguration.files) - namedKlibs.mapTo(this) { project.file(resolver.resolve(it).libraryFile.absolutePath) } - } } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt index 87dad694624..4a19cf7e0a6 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt @@ -207,11 +207,10 @@ internal fun dumpProperties(task: Task) { println("artifact : ${artifact.canonicalPath}") println("srcFiles : ${srcFiles.dump()}") println("produce : $produce") - println("libraries : ${libraries.files.dump()}") + println("klibFiles : ${libraries.klibFiles.dump()}") println(" : ${libraries.artifacts.map { it.artifact.canonicalPath }.dump()}") - println(" : ${libraries.namedKlibs.dump()}") println("nativeLibraries : ${nativeLibraries.dump()}") println("linkerOpts : $linkerOpts") println("enableDebug : $enableDebug") @@ -233,11 +232,10 @@ internal fun dumpProperties(task: Task) { println("Stub generation task: $name") println("destinationDir : $destinationDir") println("artifact : $artifact") - println("libraries : ${libraries.files.dump()}") + println("klibFiles : ${libraries.klibFiles.dump()}") println(" : ${libraries.artifacts.map { it.artifact.canonicalPath }.dump()}") - println(" : ${libraries.namedKlibs.dump()}") println("defFile : $defFile") println("target : $target") println("packageName : $packageName") diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt index f22bf46afbb..7452d140b36 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanCompileTask.kt @@ -180,13 +180,11 @@ abstract class KonanCompileTask: KonanBuildingTask(), KonanCompileSpec { if (platformConfiguration.files.isNotEmpty()) { platformConfiguration.files.filter { it.name.endsWith(".klib") }.forEach { // The library's directory is added in libraries.repos. - addArg("-library", it.nameWithoutExtension) + addArg("-library", it.absolutePath) } } - addFileArgs("-library", libraries.files) - addArgs("-library", libraries.namedKlibs) - // The library's directory is added in libraries.repos. - addArgs("-library", libraries.artifacts.map { it.artifact.nameWithoutExtension }) + addFileArgs("-library", libraries.klibFiles) + addArgs("-library", libraries.artifacts.map { it.artifact.canonicalPath }) addArgIfNotNull("-target", konanTarget.visibleName) addArgIfNotNull("-language-version", languageVersion) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt index a357cfb8bbe..a25209df2ab 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt @@ -100,8 +100,7 @@ open class KonanInteropTask @Inject constructor(@Internal val workerExecutor: Wo addArgs("-repo", libraries.repos.map { it.canonicalPath }) - addFileArgs("-library", libraries.files) - addArgs("-library", libraries.namedKlibs) + addFileArgs("-library", libraries.klibFiles) addArgs("-library", libraries.artifacts.map { it.artifact.canonicalPath }) addKey("-no-default-libs", noDefaultLibs) diff --git a/kotlin-native/platformLibs/build.gradle.kts b/kotlin-native/platformLibs/build.gradle.kts index c10cc76d69f..87086972af6 100644 --- a/kotlin-native/platformLibs/build.gradle.kts +++ b/kotlin-native/platformLibs/build.gradle.kts @@ -67,7 +67,7 @@ konanTargetList.forEach { target -> noEndorsedLibs(true) noPack(true) libraries { - klibs(df.config.depends.map { "${fileNamePrefix}${it}" }) + klibFiles(df.config.depends.map { "$konanHome/klib/platform/$targetName/${fileNamePrefix}${it}" }) } extraOpts("-Xpurge-user-libs", "-Xshort-module-name", df.name, "-Xdisable-experimental-annotation") compilerOpts("-fmodules-cache-path=${project.buildDir}/clangModulesCache")