[K/N][build] Move KLibInstall to Konan gradle plugin

This commit is contained in:
Pavel Punegov
2021-10-21 22:24:41 +03:00
committed by Space
parent 151cb096ce
commit e07fa31784
3 changed files with 14 additions and 13 deletions
@@ -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)
+2 -2
View File
@@ -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
@@ -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<File> = 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)
}
}