import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget import com.codingfeline.buildkonfig.compiler.FieldSpec.Type.STRING import com.codingfeline.buildkonfig.compiler.FieldSpec.Type.BOOLEAN plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidMultiplatformLibrary) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.composeCompiler) alias(libs.plugins.buildkonfig) } buildkonfig { packageName = "dev.zxq5.chatapp" defaultConfigs { buildConfigField(STRING, "VERSION_NAME", libs.versions.appVersion.get()) buildConfigField(BOOLEAN, "IS_DEBUG", "true") // default } // override per target/source set targetConfigs { create("android") {} } } buildscript { repositories { mavenCentral() } dependencies { classpath(libs.kotlin.gradle.plugin) classpath(libs.buildkonfig.gradle.plugin) } } kotlin { jvm() js { browser() binaries.executable() } @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() binaries.executable() } android { namespace = "dev.zxq5.chatapp.shared" compileSdk = libs.versions.android.compileSdk.get().toInt() minSdk = libs.versions.android.minSdk.get().toInt() compilerOptions { jvmTarget = JvmTarget.JVM_11 } androidResources { enable = true } withHostTest { isIncludeAndroidResources = true } withDeviceTestBuilder { sourceSetTreeName = "test" }.configure { instrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } } sourceSets { androidMain.dependencies { implementation(libs.compose.uiToolingPreview) implementation(libs.compose.uiTooling) } commonMain.dependencies { implementation(libs.compose.runtime) implementation(libs.compose.foundation) implementation(libs.compose.material3) implementation(libs.compose.ui) implementation(libs.compose.components.resources) implementation(libs.compose.uiToolingPreview) implementation(libs.androidx.lifecycle.viewmodelCompose) implementation(libs.androidx.lifecycle.runtimeCompose) implementation(libs.compose.materialIconsExtended) implementation(libs.qrose) implementation(libs.cryptography) implementation(libs.kotlinx.datetime) } commonTest.dependencies { implementation(libs.kotlin.test) } // jsMain.dependencies { // implementation(libs.wrappers.browser) // } } } dependencies { androidRuntimeClasspath(libs.compose.uiTooling) }