Files
TachideskJUI/ui-core/build.gradle.kts
2023-07-03 21:20:32 -04:00

124 lines
3.3 KiB
Kotlin

import org.jetbrains.compose.compose
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
id(libs.plugins.kotlin.multiplatform.get().pluginId)
id(libs.plugins.android.library.get().pluginId)
id(libs.plugins.compose.get().pluginId)
id(libs.plugins.buildkonfig.get().pluginId)
id(libs.plugins.kotlinter.get().pluginId)
}
kotlin {
android {
compilations {
all {
kotlinOptions.jvmTarget = Config.androidJvmTarget.toString()
}
}
}
jvm("desktop") {
compilations {
all {
kotlinOptions.jvmTarget = Config.desktopJvmTarget.toString()
}
}
}
iosX64()
iosArm64()
iosSimulatorArm64()
sourceSets {
all {
languageSettings {
optIn("kotlin.RequiresOptIn")
optIn("androidx.compose.foundation.ExperimentalFoundationApi")
optIn("androidx.compose.material.ExperimentalMaterialApi")
optIn("androidx.compose.ui.ExperimentalComposeUiApi")
}
}
val commonMain by getting {
dependencies {
api(kotlin("stdlib-common"))
api(libs.coroutines.core)
api(libs.imageloader.core)
api(libs.imageloader.moko)
api(libs.voyager.core)
api(libs.dateTime)
api(libs.immutableCollections)
api(projects.core)
api(projects.i18n)
api(compose.runtime)
api(compose.foundation)
api(compose.ui)
api(compose.material)
api(compose.materialIconsExtended)
api(compose("org.jetbrains.compose.ui:ui-util"))
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val jvmMain by creating {
dependsOn(commonMain)
dependencies {
api(kotlin("stdlib-jdk8"))
api(compose.desktop.currentOs)
}
}
val jvmTest by creating {
dependsOn(commonTest)
dependencies {
implementation(kotlin("test"))
}
}
val desktopMain by getting {
dependsOn(jvmMain)
}
val desktopTest by getting {
dependsOn(jvmTest)
}
val androidMain by getting {
dependsOn(jvmMain)
dependencies {
api(libs.bundles.compose.android)
api(libs.androidx.core)
api(libs.androidx.appCompat)
}
}
val androidUnitTest by getting {
dependsOn(jvmTest)
}
val iosMain by creating {
dependsOn(commonMain)
}
val iosTest by creating {
dependsOn(commonTest)
}
listOf(
"iosX64",
"iosArm64",
"iosSimulatorArm64",
).forEach {
getByName(it + "Main").dependsOn(iosMain)
getByName(it + "Test").dependsOn(iosTest)
}
}
}
buildkonfig {
packageName = "ca.gosyer.jui.uicore.build"
}
android {
namespace = "ca.gosyer.jui.uicore"
}