diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index b1c1e745be8..9c36ec32dcc 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -163,7 +163,7 @@ configure(project.tasks.findByName("compileKonanBaseTestClass${UtilsKt.getTestTa UtilsKt.dependsOnDist(it) } -def installTestLib = tasks.register("installTestLibrary", KlibInstall) { +def installTestLib = tasks.register("installTestLibrary", KonanKlibInstallTask) { dependsOn "compileKonanTestLibraryHost" klib = project.provider { konanArtifacts.testLibrary.getArtifactByTarget('host') } repo = rootProject.file(testLibraryDir) diff --git a/kotlin-native/platformLibs/build.gradle.kts b/kotlin-native/platformLibs/build.gradle.kts index 4edf8ae00cd..799262cbc34 100644 --- a/kotlin-native/platformLibs/build.gradle.kts +++ b/kotlin-native/platformLibs/build.gradle.kts @@ -3,7 +3,7 @@ * that can be found in the LICENSE file. */ -import org.jetbrains.kotlin.KlibInstall +import org.jetbrains.kotlin.KonanKlibInstallTask import org.jetbrains.kotlin.gradle.plugin.konan.tasks.KonanCacheTask import org.jetbrains.kotlin.gradle.plugin.tasks.KonanInteropTask import org.jetbrains.kotlin.konan.target.* @@ -89,7 +89,7 @@ konanTargetList.forEach { target -> } } - val klibInstallTask = tasks.register(libName, KlibInstall::class.java) { + val klibInstallTask = tasks.register(libName, KonanKlibInstallTask::class.java) { klib = project.provider { libTask?.get()?.artifact } repo = file("$konanHome/klib/platform/$targetName") this.target = targetName diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KLibInstall.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanKLibInstallTask.kt similarity index 65% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KLibInstall.kt rename to kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanKLibInstallTask.kt index 87c7acdc353..3e11f62e302 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/KLibInstall.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanKLibInstallTask.kt @@ -1,15 +1,21 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + package org.jetbrains.kotlin import groovy.lang.Closure import org.gradle.api.Task +import org.gradle.api.DefaultTask import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.HostManager +import org.jetbrains.kotlin.gradle.plugin.konan.KonanKlibRunner import java.io.File -// TODO: Implement as a part of the gradle plugin -open class KlibInstall : Exec() { +open class KonanKlibInstallTask : DefaultTask() { @get:InputFile var klib: Provider = project.provider { project.buildDir } @@ -31,17 +37,12 @@ open class KlibInstall : Exec() { var target: String = HostManager.hostName @TaskAction - override fun exec() { - val konanHome = project.kotlinNativeDist - val suffix = if (HostManager.host == KonanTarget.MINGW_X64) ".bat" else "" - val klibProgram = "$konanHome/bin/klib$suffix" - - commandLine(klibProgram, + fun exec() { + val args = listOf( "install", klib.get().absolutePath, "-target", target, "-repository", repo.absolutePath ) - - super.exec() + KonanKlibRunner(project, args, konanHome = project.kotlinNativeDist.absolutePath) } } \ No newline at end of file