protocol/build.gradle.kts (60 lines of code) (raw):

import com.jetbrains.rd.generator.gradle.RdGenTask plugins { alias(libs.plugins.kotlin) id("com.jetbrains.rdgen") version libs.versions.rdGen } repositories { mavenCentral() } dependencies { implementation(libs.rdGen) implementation(libs.kotlinStdLib) implementation( project( mapOf( "path" to ":", "configuration" to "riderModel" ) ) ) } rdgen { val coreModulePath = projectDir.resolve("../core/src/main/kotlin/com/jetbrains/aspire") val riderModulePath = projectDir.resolve("../rider/src/main/kotlin/com/jetbrains/aspire/rider") val pluginSourcePath = projectDir.resolve("../src") verbose = true packages = "model.aspireWorker,model.aspirePlugin" val ktWorkerOutput = coreModulePath.resolve("generated") val csWorkerOutput = pluginSourcePath.resolve("dotnet/AspireWorker/Generated") generator { language = "kotlin" transform = "asis" root = "model.aspireWorker.AspireWorkerRoot" directory = ktWorkerOutput.canonicalPath } generator { language = "csharp" transform = "reversed" root = "model.aspireWorker.AspireWorkerRoot" directory = csWorkerOutput.canonicalPath } val ktPluginOutput = riderModulePath.resolve("generated") val csPluginOutput = pluginSourcePath.resolve("dotnet/AspirePlugin/Generated") generator { language = "kotlin" transform = "asis" root = "com.jetbrains.rider.model.nova.ide.IdeRoot" directory = ktPluginOutput.canonicalPath } generator { language = "csharp" transform = "reversed" root = "com.jetbrains.rider.model.nova.ide.IdeRoot" directory = csPluginOutput.canonicalPath } } tasks.withType<RdGenTask> { val classPath = sourceSets["main"].runtimeClasspath dependsOn(classPath) classpath(classPath) }