[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) 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)
+2 -2
View File
@@ -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
@@ -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()
} }
} }