[build][native] don't ever fix dist, take it with API

This commit is contained in:
Vasily Levchenko
2020-12-16 13:51:12 +01:00
parent ebeac62f17
commit 8a4b5efa9e
16 changed files with 52 additions and 44 deletions
@@ -44,6 +44,7 @@ import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.buildDistribution
import org.jetbrains.kotlin.konan.target.customerDistribution
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import org.jetbrains.kotlin.*
import java.io.File
import javax.inject.Inject
@@ -87,8 +88,7 @@ internal fun Project.setProperty(property: KonanPlugin.ProjectProperty, value: A
// konanHome extension is set by downloadKonanCompiler task.
internal val Project.konanHome: String
get() {
assert(hasProperty(KonanPlugin.ProjectProperty.KONAN_HOME))
return project.file(getProperty(KonanPlugin.ProjectProperty.KONAN_HOME)).canonicalPath
return project.kotlinNativeDist.absolutePath
}
internal val Project.konanVersion: CompilerVersion
@@ -346,7 +346,7 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
project.warnAboutDeprecatedProperty(ProjectProperty.KONAN_HOME)
// Set additional project properties like org.jetbrains.kotlin.native.home, konan.build.targets etc.
if (!project.hasProperty(ProjectProperty.KONAN_HOME)) {
if (!project.useCustomDist) {
project.setProperty(ProjectProperty.KONAN_HOME, project.konanCompilerDownloadDir())
project.setProperty(ProjectProperty.DOWNLOAD_COMPILER, true)
}
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import java.nio.file.Files
import org.jetbrains.kotlin.*
internal interface KonanToolRunner: Named {
val mainClass: String
@@ -105,6 +106,7 @@ internal abstract class KonanCliRunner(
.escapeQuotesForWindows()
.toMap()
)
exec.systemProperty("konan.home", project.kotlinNativeDist.absolutePath)
exec.args(listOf(toolName) + transformArgs(args))
this@KonanCliRunner.blacklistEnvironment.forEach { environment.remove(it) }
exec.environment(environment)
@@ -7,6 +7,7 @@ import org.jetbrains.kotlin.gradle.plugin.konan.KonanCompilerRunner
import org.jetbrains.kotlin.gradle.plugin.konan.konanHome
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.konan.target.PlatformManager
import org.jetbrains.kotlin.*
import java.io.File
enum class KonanCacheKind(val outputKind: CompilerOutputKind) {
@@ -45,7 +46,7 @@ open class KonanCacheTask: DefaultTask() {
@Input
/** Path to a compiler distribution that is used to build this cache. */
val compilerDistributionPath: Property<File> = project.objects.property(File::class.java).apply {
set(project.provider { project.file(project.konanHome) })
set(project.provider { project.kotlinNativeDist })
}
@TaskAction
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.konan.MetaVersion
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import org.jetbrains.kotlin.konan.util.DependencySource
import java.io.IOException
import org.jetbrains.kotlin.*
open class KonanCompilerDownloadTask : DefaultTask() {
@@ -40,7 +41,7 @@ open class KonanCompilerDownloadTask : DefaultTask() {
@TaskAction
fun downloadAndExtract() {
if (!project.hasProperty(KonanPlugin.ProjectProperty.DOWNLOAD_COMPILER)) {
val konanHome = project.getProperty(KonanPlugin.ProjectProperty.KONAN_HOME)
val konanHome = project.kotlinNativeDist
logger.info("Use a user-defined compiler path: $konanHome")
} else {
try {