[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)
|
UtilsKt.dependsOnDist(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
def installTestLib = tasks.register("installTestLibrary", KlibInstall) {
|
def installTestLib = tasks.register("installTestLibrary", KonanKlibInstallTask) {
|
||||||
dependsOn "compileKonanTestLibraryHost"
|
dependsOn "compileKonanTestLibraryHost"
|
||||||
klib = project.provider { konanArtifacts.testLibrary.getArtifactByTarget('host') }
|
klib = project.provider { konanArtifacts.testLibrary.getArtifactByTarget('host') }
|
||||||
repo = rootProject.file(testLibraryDir)
|
repo = rootProject.file(testLibraryDir)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* that can be found in the LICENSE file.
|
* 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.konan.tasks.KonanCacheTask
|
||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanInteropTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanInteropTask
|
||||||
import org.jetbrains.kotlin.konan.target.*
|
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 }
|
klib = project.provider { libTask?.get()?.artifact }
|
||||||
repo = file("$konanHome/klib/platform/$targetName")
|
repo = file("$konanHome/klib/platform/$targetName")
|
||||||
this.target = 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
|
package org.jetbrains.kotlin
|
||||||
|
|
||||||
import groovy.lang.Closure
|
import groovy.lang.Closure
|
||||||
import org.gradle.api.Task
|
import org.gradle.api.Task
|
||||||
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.provider.Provider
|
import org.gradle.api.provider.Provider
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.konan.KonanKlibRunner
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
// TODO: Implement as a part of the gradle plugin
|
open class KonanKlibInstallTask : DefaultTask() {
|
||||||
open class KlibInstall : Exec() {
|
|
||||||
@get:InputFile
|
@get:InputFile
|
||||||
var klib: Provider<File> = project.provider { project.buildDir }
|
var klib: Provider<File> = project.provider { project.buildDir }
|
||||||
|
|
||||||
@@ -31,17 +37,12 @@ open class KlibInstall : Exec() {
|
|||||||
var target: String = HostManager.hostName
|
var target: String = HostManager.hostName
|
||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
override fun exec() {
|
fun exec() {
|
||||||
val konanHome = project.kotlinNativeDist
|
val args = listOf(
|
||||||
val suffix = if (HostManager.host == KonanTarget.MINGW_X64) ".bat" else ""
|
|
||||||
val klibProgram = "$konanHome/bin/klib$suffix"
|
|
||||||
|
|
||||||
commandLine(klibProgram,
|
|
||||||
"install", klib.get().absolutePath,
|
"install", klib.get().absolutePath,
|
||||||
"-target", target,
|
"-target", target,
|
||||||
"-repository", repo.absolutePath
|
"-repository", repo.absolutePath
|
||||||
)
|
)
|
||||||
|
KonanKlibRunner(project, args, konanHome = project.kotlinNativeDist.absolutePath)
|
||||||
super.exec()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user