in smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/rendering/GradleGenerator.kt [84:128]
fun renderKmpGradleBuild(
writer: CodeWriter,
isRootModule: Boolean,
dependencies: List<KotlinDependency>,
pluginsRenderer: InlineCodeWriter,
repositoryRenderer: InlineCodeWriter,
annotationRenderer: InlineCodeWriter
) {
writer.write(
"""
plugins {
#W
}
#W
kotlin {
#W
sourceSets {
val commonMain by getting {
dependencies {
#W
}
}
val commonTest by getting {
dependencies {
#W
}
}
}
val optInAnnotations = listOf(
#W
)
kotlin.sourceSets.all {
optInAnnotations.forEach { languageSettings.optIn(it) }
}
}
""".trimIndent(),
pluginsRenderer,
{ w: CodeWriter -> if (isRootModule) repositoryRenderer(w) },
{ w: CodeWriter -> if (isRootModule) renderRootJvmPluginConfig(w) else w.write("jvm()") },
{ w: CodeWriter -> renderDependencies(w, scope = Scope.SOURCE, isKmp = true, dependencies = dependencies) },
{ w: CodeWriter -> renderDependencies(w, scope = Scope.TEST, isKmp = true, dependencies = dependencies) },
annotationRenderer
)
}