You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
4.1 KiB
141 lines
4.1 KiB
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile |
|
|
|
plugins { |
|
kotlin("multiplatform") |
|
id("org.jetbrains.compose") |
|
id("maven-publish") |
|
id("com.android.library") |
|
} |
|
|
|
val composeVersion = extra["compose.version"] as String |
|
|
|
kotlin { |
|
jvm("desktop") |
|
android { |
|
publishLibraryVariants("release") |
|
} |
|
ios() |
|
iosSimulatorArm64() |
|
js(IR) { |
|
browser() |
|
} |
|
macosX64() |
|
macosArm64() |
|
|
|
sourceSets { |
|
val commonMain by getting { |
|
dependencies { |
|
implementation("org.jetbrains.compose.runtime:runtime:$composeVersion") |
|
implementation("org.jetbrains.compose.foundation:foundation:$composeVersion") |
|
} |
|
} |
|
val commonTest by getting { |
|
dependencies { |
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4") |
|
implementation(kotlin("test")) |
|
} |
|
} |
|
val commonButJSMain by creating { |
|
dependsOn(commonMain) |
|
} |
|
val skikoMain by creating { |
|
dependsOn(commonMain) |
|
} |
|
val jvmAndAndroidMain by creating { |
|
dependsOn(commonMain) |
|
} |
|
val nativeMain by creating { |
|
dependsOn(commonMain) |
|
} |
|
val desktopMain by getting { |
|
dependsOn(skikoMain) |
|
dependsOn(jvmAndAndroidMain) |
|
dependsOn(commonButJSMain) |
|
} |
|
val desktopTest by getting { |
|
dependencies { |
|
implementation(compose.desktop.currentOs) |
|
implementation("org.jetbrains.compose.ui:ui-test-junit4:$composeVersion") |
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.6.4") |
|
} |
|
} |
|
val androidMain by getting { |
|
dependsOn(jvmAndAndroidMain) |
|
dependsOn(commonButJSMain) |
|
} |
|
val androidTest by getting { |
|
dependencies { |
|
|
|
} |
|
} |
|
val iosMain by getting { |
|
dependsOn(skikoMain) |
|
dependsOn(commonButJSMain) |
|
dependsOn(nativeMain) |
|
} |
|
val iosTest by getting |
|
val iosSimulatorArm64Main by getting |
|
iosSimulatorArm64Main.dependsOn(iosMain) |
|
val iosSimulatorArm64Test by getting |
|
iosSimulatorArm64Test.dependsOn(iosTest) |
|
val jsMain by getting { |
|
dependsOn(skikoMain) |
|
} |
|
val macosMain by creating { |
|
dependsOn(skikoMain) |
|
dependsOn(commonButJSMain) |
|
dependsOn(nativeMain) |
|
} |
|
val macosX64Main by getting { |
|
dependsOn(macosMain) |
|
} |
|
val macosArm64Main by getting { |
|
dependsOn(macosMain) |
|
} |
|
} |
|
} |
|
|
|
android { |
|
compileSdk = 33 |
|
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") |
|
defaultConfig { |
|
minSdk = 21 |
|
targetSdk = 33 |
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" |
|
} |
|
compileOptions { |
|
sourceCompatibility = JavaVersion.VERSION_1_8 |
|
targetCompatibility = JavaVersion.VERSION_1_8 |
|
} |
|
testOptions { |
|
managedDevices { |
|
devices { |
|
maybeCreate<com.android.build.api.dsl.ManagedVirtualDevice>("pixel5").apply { |
|
device = "Pixel 5" |
|
apiLevel = 31 |
|
systemImageSource = "aosp" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
dependencies { |
|
//Android integration tests |
|
testImplementation("androidx.test:core:1.5.0") |
|
androidTestImplementation("androidx.compose.ui:ui-test-manifest:1.3.1") |
|
androidTestImplementation("androidx.compose.ui:ui-test:1.3.1") |
|
androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.3.1") |
|
androidTestImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4") |
|
} |
|
|
|
// TODO it seems that argument isn't applied to the common sourceSet. Figure out why |
|
tasks.withType<KotlinCompile>().configureEach { |
|
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn" |
|
} |
|
|
|
configureMavenPublication( |
|
groupId = "org.jetbrains.compose.components", |
|
artifactId = "components-resources", |
|
name = "Resources for Compose JB" |
|
)
|
|
|