[K/N][build] Move KLibInstall to Konan gradle plugin
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
+11
-10
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user