finance/composeApp/build.gradle.kts

124 lines
3.7 KiB
Kotlin

import com.android.build.gradle.internal.api.BaseVariantOutputImpl
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.ksp)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.sqldelight)
}
sqldelight {
databases {
create("Database") {
packageName.set(libs.versions.app.versionID.get())
}
}
}
kotlin {
androidTarget {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
jvmTarget.set(JvmTarget.valueOf(libs.versions.android.kotlinJVMTarget.get()))
}
}
jvm("desktop")
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
}
sourceSets {
val desktopMain by getting
androidMain.dependencies {
implementation(compose.preview)
implementation(libs.androidx.activity.compose)
}
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
}
desktopMain.dependencies {
implementation(compose.desktop.currentOs)
}
}
}
android {
namespace = libs.versions.app.versionID.get()
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 = libs.versions.app.versionID.get()
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
versionCode = libs.versions.app.versionCode.get().toInt()
versionName = libs.versions.app.versionName.get()
}
packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } }
buildTypes {
// getByName("release") {
// isMinifyEnabled = false
// }
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
)
}
}
compileOptions {
val javaVersion = JavaVersion.valueOf(libs.versions.app.javaVersion.get())
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
}
buildFeatures { compose = true }
dependencies {
debugImplementation(compose.uiTooling)
}
//applicationVariants.all { variant ->
//variant.outputs.all {
//(this as BaseVariantOutputImpl).outputFileName =
//"app-${variant.productFlavors[0].name}-${variant.buildType.name}-${variant.versionName}.apk"
//}
//true
//}
}
compose.desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = libs.versions.app.versionID.get()
packageVersion = libs.versions.app.versionName.get()
}
}
}