in compiler/src/main/kotlin/motif/compiler/CodeGenerator.kt [25:48]
fun generate(env: XProcessingEnv, graph: ResolvedGraph, mode: OutputMode?): List<String> {
val kaptKotlinGeneratedDir = env.options[OPTION_KAPT_KOTLIN_GENERATED]
return if (mode == OutputMode.JAVA) {
generateJava(env, graph)
} else if (mode == OutputMode.KOTLIN) {
if (env.backend == XProcessingEnv.Backend.JAVAC && kaptKotlinGeneratedDir == null) {
throw IllegalStateException(
"-A$OPTION_MODE=${OutputMode.KOTLIN.name.lowercase()} " +
"requires -A$OPTION_KAPT_KOTLIN_GENERATED to be set.",
)
}
generateKotlin(env, graph, kaptKotlinGeneratedDir)
} else {
if (env.backend == XProcessingEnv.Backend.KSP) {
generateKotlin(env, graph, kaptKotlinGeneratedDir)
} else {
if (kaptKotlinGeneratedDir == null) {
generateJava(env, graph)
} else {
generateKotlin(env, graph, kaptKotlinGeneratedDir)
}
}
}
}