rd-kt/rd-gen/models/build.gradle.kts (54 lines of code) (raw):
import com.jetbrains.rd.gradle.plugins.applyKotlinJVM
import com.jetbrains.rd.gradle.tasks.RdGenerateTask
import com.jetbrains.rd.gradle.tasks.util.cppDirectorySystemPropertyKey
import com.jetbrains.rd.gradle.tasks.util.csDirectorySystemPropertyKey
import com.jetbrains.rd.gradle.tasks.util.ktDirectorySystemPropertyKey
applyKotlinJVM()
plugins {
kotlin("jvm")
}
val repoRoot: File by rootProject.extra.properties
val cppRoot: File by rootProject.extra.properties
val ktRoot: File by rootProject.extra.properties
val csRoot: File by rootProject.extra.properties
val BUILD_DIR = rootProject!!.buildDir
dependencies {
implementation(project(":rd-gen"))
}
tasks {
fun RdGenerateTask.prepareOutputs() {
fun mapSources(properties: Map<String, String>, sourcesFolder: String) {
addOutputDirectories(properties.mapKeys { "${it.key}.$sourcesFolder" })
}
mapSources(mapOf(
cppDirectorySystemPropertyKey to "${cppRoot}/demo",
ktDirectorySystemPropertyKey to "${BUILD_DIR}/models/demo",
csDirectorySystemPropertyKey to "${csRoot}/Test.Cross/obj/DemoModel"
), "demo")
mapSources(mapOf(
cppDirectorySystemPropertyKey to "$cppRoot/src/rd_framework_cpp/src/test/util/interning",
ktDirectorySystemPropertyKey to "$BUILD_DIR/models/interning"
), "interning")
mapSources(mapOf(
cppDirectorySystemPropertyKey to "$cppRoot/src/rd_framework_cpp/src/test/util/entities"
), "entities")
mapSources(mapOf(
ktDirectorySystemPropertyKey to "$BUILD_DIR/models/sync",
csDirectorySystemPropertyKey to "${csRoot}/Test.Cross/obj/SyncModel"
), "sync")
mapSources(mapOf(
ktDirectorySystemPropertyKey to "$BUILD_DIR/models/openEntity"
), "openEntity")
mapSources(mapOf(
csDirectorySystemPropertyKey to "${csRoot}/Test.RdFramework/Reflection/data/Generated"
), "reflectionTest")
}
@Suppress("UNUSED_VARIABLE")
val generateEverything by registering(RdGenerateTask::class) {
val modelClassPath = sourceSets["main"].runtimeClasspath
classpath(modelClassPath)
inputs.files(modelClassPath)
prepareOutputs()
args = listOf("--packages=com,org,testModels", "-v")
}
}