8512178a24
- We are not targetting desktop for the time being, but unfortunately the IDE previews (which are very useful when developing UI) are only available for the Desktop target for now. It is worth keeping the desktop target just for that. We won't be spending much time focusing on desktop though. - Updated Compose multiplatform plugin and Kotlin versions. - Added coroutines swing dependency to be ablet o run the desktop app.
120 lines
3.3 KiB
Text
120 lines
3.3 KiB
Text
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlinMultiplatform)
|
|
alias(libs.plugins.androidApplication)
|
|
alias(libs.plugins.jetbrainsCompose)
|
|
}
|
|
|
|
kotlin {
|
|
androidTarget {
|
|
compilations.all {
|
|
kotlinOptions {
|
|
jvmTarget = "11"
|
|
}
|
|
}
|
|
}
|
|
|
|
jvm("desktop")
|
|
|
|
listOf(
|
|
iosX64(),
|
|
iosArm64(),
|
|
iosSimulatorArm64()
|
|
).forEach { iosTarget ->
|
|
iosTarget.binaries.framework {
|
|
baseName = "ComposeApp"
|
|
isStatic = true
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
val androidMain by getting {
|
|
dependencies {
|
|
implementation(libs.compose.ui.tooling.preview)
|
|
implementation(libs.androidx.activity.compose)
|
|
}
|
|
}
|
|
|
|
val commonMain by getting {
|
|
commonMain.dependencies {
|
|
implementation(projects.shared.preferences)
|
|
implementation(projects.shared.stargate)
|
|
|
|
implementation(compose.components.resources)
|
|
implementation(compose.components.uiToolingPreview)
|
|
implementation(compose.foundation)
|
|
implementation(compose.material3)
|
|
implementation(compose.runtime)
|
|
implementation(compose.ui)
|
|
implementation(libs.coroutines.core)
|
|
implementation(libs.voyager.navigator)
|
|
implementation(libs.voyager.screenmodel)
|
|
}
|
|
}
|
|
|
|
val desktopMain by getting
|
|
desktopMain.dependencies {
|
|
implementation(compose.desktop.currentOs)
|
|
implementation(libs.coroutines.swing)
|
|
}
|
|
|
|
val iosX64Main by getting
|
|
val iosArm64Main by getting
|
|
val iosSimulatorArm64Main by getting
|
|
val iosMain by creating {
|
|
dependsOn(commonMain)
|
|
iosX64Main.dependsOn(this)
|
|
iosArm64Main.dependsOn(this)
|
|
iosSimulatorArm64Main.dependsOn(this)
|
|
dependencies {}
|
|
}
|
|
}
|
|
}
|
|
|
|
android {
|
|
namespace = "net.agorise.kee"
|
|
compileSdk = libs.versions.android.compileSdk.get().toInt()
|
|
|
|
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
|
|
sourceSets["main"].res.srcDirs("src/androidMain/res")
|
|
sourceSets["main"].resources.srcDirs("src/commonMain/resources")
|
|
|
|
defaultConfig {
|
|
applicationId = "net.agorise.kee"
|
|
minSdk = libs.versions.android.minSdk.get().toInt()
|
|
targetSdk = libs.versions.android.targetSdk.get().toInt()
|
|
versionCode = 1
|
|
versionName = "1.0"
|
|
}
|
|
packaging {
|
|
resources {
|
|
excludes += "/META-INF/{AL2.0,LGPL2.1}"
|
|
}
|
|
}
|
|
buildTypes {
|
|
getByName("release") {
|
|
isMinifyEnabled = false
|
|
}
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
}
|
|
dependencies {
|
|
debugImplementation(libs.compose.ui.tooling)
|
|
}
|
|
}
|
|
|
|
compose.desktop {
|
|
application {
|
|
mainClass = "MainKt"
|
|
|
|
nativeDistributions {
|
|
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
|
packageName = "net.agorise.kee"
|
|
packageVersion = "1.0.0"
|
|
}
|
|
}
|
|
}
|
|
|