ui-components/build.gradle.kts (80 lines of code) (raw):
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
plugins {
alias(libs.plugins.androidLibrary)
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.composeCompiler)
alias(libs.plugins.kotlinMultiplatform)
}
kotlin {
applyDefaultHierarchyTemplate()
androidTarget()
jvm()
iosX64()
iosArm64()
iosSimulatorArm64()
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
browser()
}
js {
browser()
}
sourceSets {
commonMain.dependencies {
api(libs.compose.runtime)
api(libs.compose.foundation)
api(libs.compose.animation)
implementation(libs.compose.material.ripple)
api(libs.compose.components.resources)
implementation(libs.compose.ui.tooling.preview)
implementation(libs.coil.compose)
implementation(libs.coil.network.ktor3)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.multiplatform.markdown.renderer)
}
val nonAndroidMain by creating {
dependsOn(commonMain.get())
}
configure(listOf(iosMain, jvmMain, webMain)) {
get().dependsOn(nonAndroidMain)
}
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
jvmMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
jsMain.dependencies {
implementation(libs.ktor.client.js)
}
}
jvmToolchain(21)
compilerOptions {
freeCompilerArgs.add("-Xexpect-actual-classes")
}
}
android {
namespace = "com.jetbrains.kotlinconf.ui"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
compose.resources {
publicResClass = true
nameOfResClass = "UiRes"
packageOfResClass = "org.jetbrains.kotlinconf.ui.generated.resources"
}
// Android preview support
dependencies {
debugImplementation(libs.compose.ui.tooling)
}