import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeHostTest import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest plugins { kotlin("multiplatform") if (System.getProperty("includeAndroid")?.toBoolean() == true) { id("com.android.library") } } kotlin { explicitApi() val includeAndroid = System.getProperty("includeAndroid")?.toBoolean() ?: true val commonMain by sourceSets.getting { dependencies { implementation(rootProject) } } val commonTest by sourceSets.getting { dependencies { implementation(kotlin("test-common")) implementation(kotlin("test-annotations-common")) implementation("org.kodein.memory:klio-files:0.12.0") api("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0") } } jvm { compilations.all { kotlinOptions.jvmTarget = "1.8" } compilations["main"].dependencies { implementation(project(":jni:jvm:all")) } compilations["test"].dependencies { implementation(kotlin("test-junit")) } } if (includeAndroid) { androidTarget { compilations.all { kotlinOptions.jvmTarget = "1.8" } sourceSets["androidMain"].dependencies { implementation(project(":jni:android")) } sourceSets["androidUnitTest"].dependencies { implementation(kotlin("test-junit")) implementation("androidx.test.ext:junit:1.1.2") implementation("androidx.test.espresso:espresso-core:3.3.0") } } } linuxX64() macosX64() macosArm64() iosX64() iosArm64() iosSimulatorArm64() } val includeAndroid = System.getProperty("includeAndroid")?.toBoolean() ?: true if (includeAndroid) { extensions.configure("android") { defaultConfig { compileSdk = 30 minSdk = 21 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") afterEvaluate { tasks.withType().all { enabled = false } } } } afterEvaluate { tasks.withType { testLogging { events("passed", "skipped", "failed", "standard_out", "standard_error") showExceptions = true showStackTraces = true } } tasks.withType { environment("TEST_RESOURCES_PATH", projectDir.resolve("src/commonTest/resources")) } tasks.withType { environment("TEST_RESOURCES_PATH", projectDir.resolve("src/commonTest/resources")) } tasks.withType { environment("SIMCTL_CHILD_TEST_RESOURCES_PATH", projectDir.resolve("src/commonTest/resources")) } }