|
|
|
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
|
|
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
kotlin("multiplatform")
|
|
|
|
id("com.android.library")
|
|
|
|
id("org.jetbrains.compose")
|
|
|
|
}
|
|
|
|
|
|
|
|
kotlin {
|
|
|
|
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
|
|
|
targetHierarchy.default()
|
|
|
|
androidTarget {
|
|
|
|
compilations.all {
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = "11"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
jvm("desktop")
|
|
|
|
listOf(
|
|
|
|
iosX64(),
|
|
|
|
iosArm64(),
|
|
|
|
iosSimulatorArm64()
|
|
|
|
).forEach { iosTarget ->
|
|
|
|
iosTarget.binaries.framework {
|
|
|
|
baseName = "shared"
|
|
|
|
isStatic = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
js {
|
|
|
|
browser {
|
|
|
|
testTask(Action {
|
|
|
|
enabled = false
|
|
|
|
})
|
|
|
|
}
|
|
|
|
binaries.executable()
|
|
|
|
}
|
|
|
|
@OptIn(ExperimentalWasmDsl::class)
|
|
|
|
wasmJs {
|
|
|
|
browser()
|
|
|
|
binaries.executable()
|
|
|
|
}
|
|
|
|
|
|
|
|
listOf(
|
|
|
|
macosX64(),
|
|
|
|
macosArm64()
|
|
|
|
).forEach { macosTarget ->
|
|
|
|
macosTarget.binaries {
|
|
|
|
executable {
|
|
|
|
entryPoint = "main"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
all {
|
|
|
|
languageSettings {
|
|
|
|
optIn("org.jetbrains.compose.resources.ExperimentalResourceApi")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val commonMain by getting {
|
|
|
|
dependencies {
|
|
|
|
implementation(compose.runtime)
|
|
|
|
implementation(compose.material3)
|
|
|
|
implementation(project(":resources:library"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val desktopMain by getting {
|
|
|
|
dependencies {
|
|
|
|
implementation(compose.desktop.common)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
android {
|
|
|
|
compileSdk = 34
|
|
|
|
namespace = "org.jetbrains.compose.resources.demo.shared"
|
|
|
|
defaultConfig {
|
|
|
|
minSdk = 21
|
|
|
|
}
|
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
compose.experimental {
|
|
|
|
web.application {}
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO: remove this block after we update on a newer kotlin. Currently there is an error: `error:0308010C:digital envelope routines::unsupported`
|
|
|
|
rootProject.plugins.withType<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin> {
|
|
|
|
rootProject.the<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension>().nodeVersion = "16.0.0"
|
|
|
|
}
|