make smartJavaExec composable with NoDebugJavaExec

This commit is contained in:
Anton Bannykh
2019-03-28 19:23:12 +03:00
parent 8174d6c035
commit d04a0246db
2 changed files with 9 additions and 6 deletions
+6 -5
View File
@@ -8,9 +8,13 @@ import org.gradle.kotlin.dsl.task
* that can be found in the license/LICENSE.txt file. * that can be found in the license/LICENSE.txt file.
*/ */
fun Project.smartJavaExec(configure: JavaExec.() -> Unit) = task<JavaExec> javaExec@{ fun Project.smartJavaExec(configure: JavaExec.() -> Unit) = task<JavaExec> {
configure() configure()
passClasspathInJar()
}
// Moves the classpath into a jar metadata, to shorten the command line length and to avoid hitting the limit on Windows
fun JavaExec.passClasspathInJar() {
val jarTask = project.task("${name}WriteClassPath", Jar::class) { val jarTask = project.task("${name}WriteClassPath", Jar::class) {
val classpath = classpath val classpath = classpath
val main = main val main = main
@@ -28,12 +32,10 @@ fun Project.smartJavaExec(configure: JavaExec.() -> Unit) = task<JavaExec> javaE
) )
} }
} }
archiveName = "$main.${this@javaExec.name}.classpath.container.$extension" archiveName = "$main.${this@passClasspathInJar.name}.classpath.container.$extension"
destinationDir = temporaryDir destinationDir = temporaryDir
} }
dependsOn(jarTask) dependsOn(jarTask)
doFirst { doFirst {
@@ -43,6 +45,5 @@ fun Project.smartJavaExec(configure: JavaExec.() -> Unit) = task<JavaExec> javaE
val copyArgs = args.orEmpty().toList() val copyArgs = args.orEmpty().toList()
args(jarTask.outputs.files.singleFile) args(jarTask.outputs.files.singleFile)
args(copyArgs) args(copyArgs)
} }
} }
@@ -21,7 +21,7 @@ sourceSets {
"test" { projectDefault() } "test" { projectDefault() }
} }
val generateIrRuntimeKlib by smartJavaExec { val generateIrRuntimeKlib by task<NoDebugJavaExec> {
val inDirs = arrayOf(fileFrom(rootDir, "core", "builtins", "src"), val inDirs = arrayOf(fileFrom(rootDir, "core", "builtins", "src"),
fileFrom(rootDir, "core", "builtins", "native"), fileFrom(rootDir, "core", "builtins", "native"),
fileFrom(rootDir, "libraries", "stdlib", "common", "src"), fileFrom(rootDir, "libraries", "stdlib", "common", "src"),
@@ -38,6 +38,8 @@ val generateIrRuntimeKlib by smartJavaExec {
classpath = sourceSets.test.get().runtimeClasspath classpath = sourceSets.test.get().runtimeClasspath
main = "org.jetbrains.kotlin.ir.backend.js.GenerateIrRuntimeKt" main = "org.jetbrains.kotlin.ir.backend.js.GenerateIrRuntimeKt"
workingDir = rootDir workingDir = rootDir
passClasspathInJar()
} }
testsJar {} testsJar {}