kotlin { jvmToolchain(17) if (enabledPlatforms.any { it.isJs() }) { project.tasks.withType().configureEach { compilerOptions { target.set("es2015") } } js(IR) { browser() if (isApp) { binaries.executable() } else { binaries.library() useEsModules() generateTypeScriptDefinitions() yarn.yarnLockMismatchReport = YarnLockMismatchReport.WARNING } } } if (enabledPlatforms.any { it.isWasm() }) { wasmJs { browser() } } if (enabledPlatforms.any { it.isAndroid() }) { androidTarget { compilations.configureEach { compileTaskProvider.configure { compilerOptions { jvmTarget.set(JvmTarget.JVM_17) } } } if (!isApp) { publishLibraryVariants("release") } } } if (isApp || isUiModule) { jvm("desktop") sourceSets.remove(sourceSets.jvmTest.get()) } else { jvm() } if (enabledPlatforms.any { it.isIos() }) { listOf( iosArm64(), iosSimulatorArm64(), ).forEach { iosTarget -> if (iosTarget.binaries.find { it.baseName == project.name } == null) { iosTarget.binaries.framework { baseName = project.name } } } } enableBaseDependencies() }