[Build] Change build dir layout to separate production and test bitcodes
This commit is contained in:
committed by
Ilya Matveev
parent
f644e394ab
commit
24657a2860
@@ -207,7 +207,7 @@ targetList.each { target ->
|
||||
if (target != "wasm32") defaultArgs += '-g'
|
||||
def konanArgs = [*defaultArgs,
|
||||
'-target', target,
|
||||
"-Xruntime=${project(':runtime').file('build/' + target + '/runtime.bc')}",
|
||||
"-Xruntime=${project(':runtime').file('build/bitcode/main/' + target + '/runtime.bc')}",
|
||||
*project.globalBuildArgs]
|
||||
|
||||
task("${target}Stdlib", type: JavaExec) {
|
||||
|
||||
@@ -18,7 +18,8 @@ import javax.inject.Inject
|
||||
open class CompileToBitcode @Inject constructor(
|
||||
val srcRoot: File,
|
||||
val folderName: String,
|
||||
val target: String
|
||||
val target: String,
|
||||
val outputGroup: String
|
||||
) : DefaultTask() {
|
||||
|
||||
enum class Language {
|
||||
@@ -48,7 +49,7 @@ open class CompileToBitcode @Inject constructor(
|
||||
@Input
|
||||
var language = Language.CPP
|
||||
|
||||
private val targetDir by lazy { File(project.buildDir, target) }
|
||||
private val targetDir by lazy { project.buildDir.resolve("bitcode/$outputGroup/$target") }
|
||||
|
||||
val objDir by lazy { File(targetDir, folderName) }
|
||||
|
||||
|
||||
@@ -38,12 +38,17 @@ open class CompileToBitcodeExtension @Inject constructor(val project: Project) {
|
||||
provider { rootProject.property("targetList") as List<String> } // TODO: Can we make it better?
|
||||
}
|
||||
|
||||
fun create(name: String, srcDir: File = project.file("src/$name"), configurationBlock: CompileToBitcode.() -> Unit = {}) {
|
||||
fun create(
|
||||
name: String,
|
||||
srcDir: File = project.file("src/$name"),
|
||||
outputGroup: String = "main",
|
||||
configurationBlock: CompileToBitcode.() -> Unit = {}
|
||||
) {
|
||||
targetList.get().forEach { targetName ->
|
||||
project.tasks.register(
|
||||
"${targetName}${name.snakeCaseToCamelCase().capitalize()}",
|
||||
CompileToBitcode::class.java,
|
||||
srcDir, name, targetName
|
||||
srcDir, name, targetName, outputGroup
|
||||
).configure {
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.description = "Compiles '$name' to bitcode for $targetName"
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ open class RuntimeTestingPlugin : Plugin<Project> {
|
||||
val bitcodeExtension =
|
||||
project.extensions.getByName(CompileToBitcodePlugin.EXTENSION_NAME) as CompileToBitcodeExtension
|
||||
|
||||
bitcodeExtension.create("googletest") {
|
||||
bitcodeExtension.create("googletest", outputGroup = "test") {
|
||||
srcDirs = project.files(
|
||||
googleTestRoot.resolve("googletest/src")
|
||||
)
|
||||
@@ -68,7 +68,7 @@ open class RuntimeTestingPlugin : Plugin<Project> {
|
||||
dependsOn(dependencies)
|
||||
}
|
||||
|
||||
bitcodeExtension.create("googlemock") {
|
||||
bitcodeExtension.create("googlemock", outputGroup = "test") {
|
||||
srcDirs = project.files(
|
||||
googleTestRoot.resolve("googlemock/src")
|
||||
)
|
||||
|
||||
+2
-2
@@ -497,11 +497,11 @@ targetList.each { target ->
|
||||
}
|
||||
}
|
||||
}
|
||||
from(project(':runtime').file("build/$target")) {
|
||||
from(project(':runtime').file("build/bitcode/main/$target")) {
|
||||
include("runtime.bc")
|
||||
into("$stdlibDefaultComponent/targets/$target/native")
|
||||
}
|
||||
from(project(':runtime').file("build/$target")) {
|
||||
from(project(':runtime').file("build/bitcode/main/$target")) {
|
||||
include("*.bc")
|
||||
exclude("runtime.bc")
|
||||
into("konan/targets/$target/native")
|
||||
|
||||
@@ -80,7 +80,7 @@ targetList.each { target ->
|
||||
if (target != "wasm32") defaultArgs += '-g'
|
||||
def konanArgs = [*defaultArgs,
|
||||
'-target', target,
|
||||
"-Xruntime=${project(':runtime').file('build/' + target + '/runtime.bc')}",
|
||||
"-Xruntime=${project(':runtime').file('build/bitcode/main/' + target + '/runtime.bc')}",
|
||||
*project.globalBuildArgs]
|
||||
|
||||
task("${target}KotlinxCli", type: JavaExec) {
|
||||
|
||||
@@ -43,7 +43,7 @@ bitcode {
|
||||
"${target}ExceptionsSupport"
|
||||
)
|
||||
includeRuntime()
|
||||
linkerArgs.add(project.file("../common/build/$target/hash.bc").path)
|
||||
linkerArgs.add(project.file("../common/build/bitcode/main/$target/hash.bc").path)
|
||||
}
|
||||
|
||||
create("mimalloc") {
|
||||
@@ -95,6 +95,12 @@ val hostRuntime by tasks.registering {
|
||||
dependsOn("${hostName}Runtime")
|
||||
}
|
||||
|
||||
val assemble by tasks.registering {
|
||||
dependsOn(tasks.withType(CompileToBitcode::class).matching {
|
||||
it.outputGroup == "main"
|
||||
})
|
||||
}
|
||||
|
||||
val clean by tasks.registering {
|
||||
doLast {
|
||||
delete(buildDir)
|
||||
|
||||
Reference in New Issue
Block a user