Guest User

Untitled

a guest
Dec 10th, 2025
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 4.21 KB | None | 0 0
  1. import org.jetbrains.compose.desktop.application.dsl.TargetFormat
  2. import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
  3. import org.jetbrains.kotlin.gradle.dsl.JvmTarget
  4.  
  5. plugins {
  6.     alias(libs.plugins.kotlinMultiplatform)
  7.     alias(libs.plugins.androidApplication)
  8.     alias(libs.plugins.composeMultiplatform)
  9.     alias(libs.plugins.composeCompiler)
  10.     alias(libs.plugins.composeHotReload)
  11.     kotlin("plugin.serialization") version "1.8.20"
  12. }
  13.  
  14. kotlin {
  15.     androidTarget {
  16.         compilerOptions {
  17.             jvmTarget.set(JvmTarget.JVM_13)
  18.         }
  19.     }
  20.    
  21.     listOf(
  22.         iosX64(),
  23.         iosArm64(),
  24.         iosSimulatorArm64()
  25.     ).forEach { iosTarget ->
  26.         iosTarget.binaries.framework {
  27.             baseName = "ComposeApp"
  28.             isStatic = true
  29.         }
  30.     }
  31.    
  32.     jvm()
  33.    
  34.     js {
  35.  
  36.         binaries.executable()
  37.         browser {
  38.             useEsModules()
  39.         }
  40.  
  41.         compilerOptions {
  42.             moduleKind.set(JsModuleKind.MODULE_ES)
  43.         }
  44.     }
  45.  
  46.     val coroutinesVersion = "1.10.2"
  47.     val koinVersion = "4.1.1"
  48.     val ktorVersion = "3.3.3"
  49.  
  50.     sourceSets {
  51.         jsMain.dependencies {
  52.             implementation("io.ktor:ktor-client-js:${ktorVersion}")
  53.         }
  54.         // Dependencies for existing source sets
  55.         iosMain.dependencies {
  56.             implementation("io.ktor:ktor-client-darwin:$ktorVersion")
  57.         }
  58.         androidMain.dependencies {
  59.             implementation(compose.preview)
  60.             implementation(libs.androidx.activity.compose)
  61.  
  62.             api("io.insert-koin:koin-android:${koinVersion}")
  63.             implementation("io.ktor:ktor-client-android:${ktorVersion}")
  64.         }
  65.         commonMain.dependencies {
  66.             implementation("io.insert-koin:koin-compose:${koinVersion}")
  67.             // new
  68.             implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutinesVersion}")
  69.             implementation("io.ktor:ktor-client-core:$ktorVersion")
  70.             implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
  71.             implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
  72.             implementation("io.ktor:ktor-client-auth:$ktorVersion")
  73.  
  74.             implementation("io.insert-koin:koin-core:$koinVersion")
  75.             // - -
  76.  
  77.             implementation(compose.runtime)
  78.             implementation(compose.foundation)
  79.             implementation(compose.material3)
  80.             implementation(compose.ui)
  81.             implementation(compose.components.resources)
  82.             implementation(compose.components.uiToolingPreview)
  83.             implementation(libs.androidx.lifecycle.viewmodelCompose)
  84.             implementation(libs.androidx.lifecycle.runtimeCompose)
  85.         }
  86.         commonTest.dependencies {
  87.             implementation(libs.kotlin.test)
  88.         }
  89.         jvmMain.dependencies {
  90.             implementation(compose.desktop.currentOs)
  91.             implementation(libs.kotlinx.coroutinesSwing)
  92.             // 4. Add the missing Ktor client for the JVM target
  93.             implementation("io.ktor:ktor-client-cio:$ktorVersion")
  94.         }
  95.     }
  96. }
  97.  
  98. android {
  99.     namespace = "com.justxraf.myrmeco"
  100.     compileSdk = libs.versions.android.compileSdk.get().toInt()
  101.  
  102.     defaultConfig {
  103.         applicationId = "com.justxraf.myrmeco"
  104.         minSdk = libs.versions.android.minSdk.get().toInt()
  105.         targetSdk = libs.versions.android.targetSdk.get().toInt()
  106.         versionCode = 1
  107.         versionName = "1.0"
  108.     }
  109.     packaging {
  110.         resources {
  111.             excludes += "/META-INF/{AL2.0,LGPL2.1}"
  112.         }
  113.     }
  114.     buildTypes {
  115.         getByName("release") {
  116.             isMinifyEnabled = false
  117.         }
  118.     }
  119.     compileOptions {
  120.         sourceCompatibility = JavaVersion.VERSION_17
  121.         targetCompatibility = JavaVersion.VERSION_17
  122.     }
  123. }
  124.  
  125. dependencies {
  126.     debugImplementation(compose.uiTooling)
  127. }
  128.  
  129. compose.desktop {
  130.     application {
  131.         mainClass = "com.justxraf.myrmeco.MainKt"
  132.  
  133.         nativeDistributions {
  134.             targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
  135.             packageName = "com.justxraf.myrmeco"
  136.             packageVersion = "1.0.0"
  137.         }
  138.     }
  139. }
  140.  
Add Comment
Please, Sign In to add comment