From a6f2af03e7cddf166863e432818fcc763da20ea3 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Wed, 19 Sep 2018 21:30:35 +0300 Subject: [PATCH] Pass absolute library paths to native compiler --- .../gradle/plugin/KotlinTargetConfigurator.kt | 5 +++++ .../kotlin/gradle/tasks/KotlinNativeTasks.kt | 21 +++++++++++++------ .../gradle/utils/NativeCompilerDownloader.kt | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt index bbd58696e12..f0800bca7eb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetConfigurator.kt @@ -620,6 +620,11 @@ open class KotlinNativeTargetConfigurator( val interopOutput = project.files(outputFileProvider).builtBy(this) with(compilation) { project.dependencies.add(compileDependencyConfigurationName, interopOutput) + if (isMainCompilation) { + target.compilations.findByName(TEST_COMPILATION_NAME)?.let { + project.dependencies.add(it.compileDependencyConfigurationName, interopOutput) + } + } project.dependencies.add(target.apiElementsConfigurationName, interopOutput) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt index 724759899dc..20ffe5f9c54 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinNativeTasks.kt @@ -68,6 +68,17 @@ internal fun MutableList.addListArg(parameter: String, values: List + !(file.name.contains("-cinterop-") && libDirectories.any { file.toPath().startsWith(it) }) + } +} + + // endregion @@ -101,7 +112,7 @@ open class KotlinNativeCompile : AbstractCompile() { get() = project.files(compilation.commonSources).asFileTree val libraries: FileCollection - @InputFiles get() = compilation.compileDependencyFiles + @InputFiles get() = compilation.compileDependencyFiles.filterOutPublishableInteropLibs(project) private val friendModule: FileCollection? get() = compilation.friendCompilation?.output @@ -237,8 +248,7 @@ open class KotlinNativeCompile : AbstractCompile() { // Support only klib files for now. it.extension == "klib" && !it.providedByCompiler(project) }.forEach { library -> - library.parent?.let { addArg("-r", it) } - addArg("-l", library.nameWithoutExtension) + addArg("-l", library.absolutePath) } } @@ -319,7 +329,7 @@ open class CInteropProcess: DefaultTask() { @Input get() = settings.includeDirs.headerFilterDirs.files val libraries: FileCollection - @InputFiles get() = settings.dependencyFiles + @InputFiles get() = settings.dependencyFiles.filterOutPublishableInteropLibs(project) val extraOpts: List @Input get() = settings.extraOpts @@ -349,8 +359,7 @@ open class CInteropProcess: DefaultTask() { // Support only klib files for now. it.extension == "klib" && !it.providedByCompiler(project) }.forEach { library -> - library.parent?.let { addArg("-r", it) } - addArg("-l", library.nameWithoutExtension) + addArg("-l", library.absolutePath) } addArgs("-copt", allHeadersDirs.map { "-I${it.absolutePath}" }) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/NativeCompilerDownloader.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/NativeCompilerDownloader.kt index a4dd158636c..f3e1d851f03 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/NativeCompilerDownloader.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/NativeCompilerDownloader.kt @@ -24,7 +24,7 @@ class NativeCompilerDownloader( ) { internal companion object { - val DEFAULT_KONAN_VERSION = KonanVersionImpl(MetaVersion.RELEASE, 0, 9, 1) + val DEFAULT_KONAN_VERSION = KonanVersionImpl(MetaVersion.DEV, 0, 9, 2, 4027) const val BASE_DOWNLOAD_URL = "https://download.jetbrains.com/kotlin/native/builds" }