fun generate()

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)
        }
      }
    }
  }