Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.jetbrains.compose.desktop.application.dsl.TargetFormat
- import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
- import org.jetbrains.kotlin.gradle.dsl.JvmTarget
- plugins {
- alias(libs.plugins.kotlinMultiplatform)
- alias(libs.plugins.androidApplication)
- alias(libs.plugins.composeMultiplatform)
- alias(libs.plugins.composeCompiler)
- alias(libs.plugins.composeHotReload)
- kotlin("plugin.serialization") version "1.8.20"
- }
- kotlin {
- androidTarget {
- compilerOptions {
- jvmTarget.set(JvmTarget.JVM_13)
- }
- }
- listOf(
- iosX64(),
- iosArm64(),
- iosSimulatorArm64()
- ).forEach { iosTarget ->
- iosTarget.binaries.framework {
- baseName = "ComposeApp"
- isStatic = true
- }
- }
- jvm()
- js {
- binaries.executable()
- browser {
- useEsModules()
- }
- compilerOptions {
- moduleKind.set(JsModuleKind.MODULE_ES)
- }
- }
- val coroutinesVersion = "1.10.2"
- val koinVersion = "4.1.1"
- val ktorVersion = "3.3.3"
- sourceSets {
- jsMain.dependencies {
- implementation("io.ktor:ktor-client-js:${ktorVersion}")
- }
- // Dependencies for existing source sets
- iosMain.dependencies {
- implementation("io.ktor:ktor-client-darwin:$ktorVersion")
- }
- androidMain.dependencies {
- implementation(compose.preview)
- implementation(libs.androidx.activity.compose)
- api("io.insert-koin:koin-android:${koinVersion}")
- implementation("io.ktor:ktor-client-android:${ktorVersion}")
- }
- commonMain.dependencies {
- implementation("io.insert-koin:koin-compose:${koinVersion}")
- // new
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutinesVersion}")
- implementation("io.ktor:ktor-client-core:$ktorVersion")
- implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
- implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
- implementation("io.ktor:ktor-client-auth:$ktorVersion")
- implementation("io.insert-koin:koin-core:$koinVersion")
- // - -
- implementation(compose.runtime)
- implementation(compose.foundation)
- implementation(compose.material3)
- implementation(compose.ui)
- implementation(compose.components.resources)
- implementation(compose.components.uiToolingPreview)
- implementation(libs.androidx.lifecycle.viewmodelCompose)
- implementation(libs.androidx.lifecycle.runtimeCompose)
- }
- commonTest.dependencies {
- implementation(libs.kotlin.test)
- }
- jvmMain.dependencies {
- implementation(compose.desktop.currentOs)
- implementation(libs.kotlinx.coroutinesSwing)
- // 4. Add the missing Ktor client for the JVM target
- implementation("io.ktor:ktor-client-cio:$ktorVersion")
- }
- }
- }
- android {
- namespace = "com.justxraf.myrmeco"
- compileSdk = libs.versions.android.compileSdk.get().toInt()
- defaultConfig {
- applicationId = "com.justxraf.myrmeco"
- 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_17
- targetCompatibility = JavaVersion.VERSION_17
- }
- }
- dependencies {
- debugImplementation(compose.uiTooling)
- }
- compose.desktop {
- application {
- mainClass = "com.justxraf.myrmeco.MainKt"
- nativeDistributions {
- targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
- packageName = "com.justxraf.myrmeco"
- packageVersion = "1.0.0"
- }
- }
- }
Add Comment
Please, Sign In to add comment