tapchicoma
09/12/2023, 3:17 PMkotlin {
     compilerOptions {
          // Project-level common compiler options that are used as defaults for all targets
          allWarningsAsErrors.set(true)
     }
     // Target-level compiler options
     jvm {
          compilerOptions {
               // JVM compiler options that are used as defaults for all compilations in this target
               jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
          }
     }
    js {
        compilerOptions {
              // JS compiler options that are used as defaults for all compilations in this target
              moduleKind.set(org.jetbrains.kotlin.gradle.dsl.JsModuleKind.AMD)
        }
    }
    linuxX64 {
        compilerOptions {
             // Native compiler options that are used as defaults for all compilations in this target
             languageVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0) // Overrides default version ‘1.9’
        }
    }
    iosArm64 {
       compilerOptions {
            // Native compiler options that are used as defaults for all compilations in this target
            allWarningsAsErrors.set(false) // Overrides project-level configuration
       }
    }
}languageSettingscompilerOptionsmbonnin
09/13/2023, 1:14 PMcompilerOptionKotlinProjectExtensionKotlinJvmProjectExtensionKotlinMultiplatformExtensionval kotlin = project.kotlinExtension
when (kotlin) {
    is KotlinJvmProjectExtension -> kotlin.compilerOptions {
      configureCommonOptions()
    }
    is KotlinMultiplatformExtension -> kotlin.compilerOptions {
      configureCommonOptions()
    }
  }project.kotlinExtension.compilerOptions.configureCommonOptions()tapchicoma
09/13/2023, 1:18 PMKotlinTopLevelExtensionmbonnin
09/13/2023, 1:46 PMprivate fun KotlinProjectExtension.forEachCompilerOptions(block: KotlinCommonCompilerOptions.() -> Unit) {
  when (this) {
    is KotlinJvmProjectExtension -> compilerOptions.block()
    is KotlinMultiplatformExtension -> {
      targets.all {
        compilerOptions.block()
      }
    }
    else -> error("Unknown kotlin extension $this")
  }
}compilationstarget.compilerOptioncompilationtapchicoma
09/13/2023, 1:56 PMkotlin.compilerOptionstarget.compilerOptionskotlinCompilation.compilerOptions === kotlinCompileTask.compilerOptionstapchicoma
09/13/2023, 1:57 PMkotlin.compilerOptions