make smartJavaExec composable with NoDebugJavaExec
This commit is contained in:
@@ -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 {}
|
||||||
Reference in New Issue
Block a user