From a4030d3abf707d8f0ede33238d7eba72325f0507 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Wed, 5 Feb 2020 20:58:36 +0300 Subject: [PATCH] Build: Make JavaExec relative path system independent --- buildSrc/src/main/kotlin/CommonUtil.kt | 4 +++- core/builtins/build.gradle.kts | 4 ++-- libraries/stdlib/js-ir/build.gradle.kts | 11 ++++------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/kotlin/CommonUtil.kt b/buildSrc/src/main/kotlin/CommonUtil.kt index 6f7bb16e525..2368a8b9fd4 100644 --- a/buildSrc/src/main/kotlin/CommonUtil.kt +++ b/buildSrc/src/main/kotlin/CommonUtil.kt @@ -7,8 +7,8 @@ import org.gradle.api.Task import org.gradle.api.file.CopySourceSpec import org.gradle.api.file.SourceDirectorySet import org.gradle.api.plugins.JavaPluginConvention +import org.gradle.api.tasks.JavaExec import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.SourceSetContainer import org.gradle.api.tasks.SourceSetOutput import org.gradle.kotlin.dsl.* import java.io.File @@ -69,3 +69,5 @@ inline fun CopySourceSpec.from(crossinline filesProvider: () -> Any?): CopySourc fun Project.javaPluginConvention(): JavaPluginConvention = the() fun Project.findJavaPluginConvention(): JavaPluginConvention? = convention.findByType() ?: convention.findPlugin() + +fun JavaExec.pathRelativeToWorkingDir(file: File): String = file.relativeTo(workingDir).invariantSeparatorsPath diff --git a/core/builtins/build.gradle.kts b/core/builtins/build.gradle.kts index badc151963c..9946e427458 100644 --- a/core/builtins/build.gradle.kts +++ b/core/builtins/build.gradle.kts @@ -32,8 +32,8 @@ val serialize by tasks.registering(NoDebugJavaExec::class) { main = "org.jetbrains.kotlin.serialization.builtins.RunKt" jvmArgs("-Didea.io.use.nio2=true") args( - outDir.relativeTo(projectDir), - *inDirs.map { it.relativeTo(projectDir) }.toTypedArray() + pathRelativeToWorkingDir(outDir), + *inDirs.map(::pathRelativeToWorkingDir).toTypedArray() ) } diff --git a/libraries/stdlib/js-ir/build.gradle.kts b/libraries/stdlib/js-ir/build.gradle.kts index 74f0d751394..a20a5b6d8af 100644 --- a/libraries/stdlib/js-ir/build.gradle.kts +++ b/libraries/stdlib/js-ir/build.gradle.kts @@ -174,9 +174,6 @@ fun JavaExec.buildKLib( outDir: File, commonSources: List ) { - - fun File.pathRelativeToWorkingDir(): String = absoluteFile.relativeTo(workingDir).path - inputs.files(sources) .withPathSensitivity(PathSensitivity.RELATIVE) @@ -186,10 +183,10 @@ fun JavaExec.buildKLib( classpath = jsIrKlibCli main = "org.jetbrains.kotlin.ir.backend.js.GenerateJsIrKlibKt" workingDir = rootDir - args = sources.map { it.pathRelativeToWorkingDir() } + - listOf("-n", moduleName, "-o", outDir.pathRelativeToWorkingDir()) + - dependencies.flatMap { listOf("-d", it.pathRelativeToWorkingDir()) } + - commonSources.flatMap { listOf("-c", it.pathRelativeToWorkingDir()) } + args = sources.map(::pathRelativeToWorkingDir) + + listOf("-n", moduleName, "-o", pathRelativeToWorkingDir(outDir)) + + dependencies.flatMap { listOf("-d", pathRelativeToWorkingDir(it)) } + + commonSources.flatMap { listOf("-c", pathRelativeToWorkingDir(it)) } dependsOn(":compiler:cli-js-klib:jar") passClasspathInJar()