|
|
|
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
kotlin("multiplatform")
|
|
|
|
id("org.jetbrains.compose")
|
|
|
|
id("maven-publish")
|
|
|
|
id("com.android.library")
|
|
|
|
}
|
|
|
|
|
|
|
|
val composeVersion = extra["compose.version"] as String
|
|
|
|
|
|
|
|
kotlin {
|
|
|
|
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
|
|
|
targetHierarchy.default()
|
|
|
|
jvm("desktop")
|
|
|
|
androidTarget {
|
|
|
|
publishLibraryVariants("release")
|
|
|
|
compilations.all {
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = "11"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iosX64()
|
|
|
|
iosArm64()
|
|
|
|
iosSimulatorArm64()
|
|
|
|
js {
|
|
|
|
browser {
|
|
|
|
testTask(Action {
|
|
|
|
enabled = false
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
macosX64()
|
|
|
|
macosArm64()
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
all {
|
|
|
|
languageSettings {
|
|
|
|
optIn("kotlin.RequiresOptIn")
|
|
|
|
optIn("kotlinx.cinterop.ExperimentalForeignApi")
|
|
|
|
optIn("kotlin.experimental.ExperimentalNativeApi")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// common
|
|
|
|
// ┌────┴────┐
|
|
|
|
// skiko blocking
|
|
|
|
// │ ┌─────┴────────┐
|
|
|
|
// ┌───┴───┬──│────────┐ │
|
|
|
|
// │ native │ jvmAndAndroid
|
|
|
|
// │ ┌───┴───┐ │ ┌───┴───┐
|
|
|
|
// js ios macos desktop android
|
|
|
|
|
|
|
|
val commonMain by getting {
|
|
|
|
dependencies {
|
|
|
|
implementation(compose.runtime)
|
|
|
|
implementation(compose.foundation)
|
|
|
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val commonTest by getting {
|
|
|
|
dependencies {
|
|
|
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3")
|
|
|
|
implementation(kotlin("test"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val blockingMain by creating {
|
|
|
|
dependsOn(commonMain)
|
|
|
|
}
|
|
|
|
val blockingTest by creating {
|
|
|
|
dependsOn(commonTest)
|
|
|
|
}
|
|
|
|
val skikoMain by creating {
|
|
|
|
dependsOn(commonMain)
|
|
|
|
}
|
|
|
|
val skikoTest by creating {
|
|
|
|
dependsOn(commonTest)
|
|
|
|
}
|
|
|
|
val jvmAndAndroidMain by creating {
|
|
|
|
dependsOn(blockingMain)
|
|
|
|
dependencies {
|
|
|
|
implementation(compose.material3)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val jvmAndAndroidTest by creating {
|
|
|
|
dependsOn(blockingTest)
|
|
|
|
}
|
|
|
|
val desktopMain by getting {
|
|
|
|
dependsOn(skikoMain)
|
|
|
|
dependsOn(jvmAndAndroidMain)
|
|
|
|
}
|
|
|
|
val desktopTest by getting {
|
|
|
|
dependsOn(skikoTest)
|
|
|
|
dependsOn(jvmAndAndroidTest)
|
|
|
|
dependencies {
|
|
|
|
implementation(compose.desktop.currentOs)
|
|
|
|
implementation("org.jetbrains.compose.ui:ui-test-junit4:$composeVersion")
|
|
|
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.7.3")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val androidMain by getting {
|
|
|
|
dependsOn(jvmAndAndroidMain)
|
|
|
|
}
|
|
|
|
val androidInstrumentedTest by getting {
|
|
|
|
dependsOn(jvmAndAndroidTest)
|
|
|
|
dependencies {
|
|
|
|
implementation("androidx.test:core:1.5.0")
|
|
|
|
implementation("androidx.compose.ui:ui-test-manifest:1.5.4")
|
|
|
|
implementation("androidx.compose.ui:ui-test:1.5.4")
|
|
|
|
implementation("androidx.compose.ui:ui-test-junit4:1.5.4")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val androidUnitTest by getting {
|
|
|
|
dependsOn(jvmAndAndroidTest)
|
|
|
|
}
|
|
|
|
val nativeMain by getting {
|
|
|
|
dependsOn(skikoMain)
|
|
|
|
dependsOn(blockingMain)
|
|
|
|
}
|
|
|
|
val nativeTest by getting {
|
|
|
|
dependsOn(skikoTest)
|
|
|
|
dependsOn(blockingTest)
|
|
|
|
}
|
|
|
|
val jsMain by getting {
|
|
|
|
dependsOn(skikoMain)
|
|
|
|
}
|
|
|
|
val jsTest by getting {
|
|
|
|
dependsOn(skikoTest)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
android {
|
|
|
|
compileSdk = 34
|
|
|
|
namespace = "org.jetbrains.compose.components.resources"
|
|
|
|
defaultConfig {
|
|
|
|
minSdk = 21
|
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
|
|
}
|
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
|
|
}
|
|
|
|
@Suppress("UnstableApiUsage")
|
|
|
|
testOptions {
|
|
|
|
managedDevices {
|
|
|
|
devices {
|
|
|
|
maybeCreate<com.android.build.api.dsl.ManagedVirtualDevice>("pixel5").apply {
|
|
|
|
device = "Pixel 5"
|
|
|
|
apiLevel = 31
|
|
|
|
systemImageSource = "aosp"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sourceSets {
|
|
|
|
val commonTestResources = "src/commonTest/resources"
|
|
|
|
named("androidTest") {
|
|
|
|
resources.srcDir(commonTestResources)
|
|
|
|
assets.srcDir("src/androidInstrumentedTest/assets")
|
|
|
|
}
|
|
|
|
named("test") { resources.srcDir(commonTestResources) }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
configureMavenPublication(
|
|
|
|
groupId = "org.jetbrains.compose.components",
|
|
|
|
artifactId = "components-resources",
|
|
|
|
name = "Resources for Compose JB"
|
|
|
|
)
|