import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidKotlinMultiplatformLibrary) } kotlin { jvm { compilerOptions { jvmTarget.set(JvmTarget.JVM_21) } } android { namespace = "com.vitorpamplona.marmotquic" compileSdk = libs.versions.android.compileSdk .get() .toInt() minSdk = libs.versions.android.minSdk .get() .toInt() compilerOptions { jvmTarget.set(JvmTarget.JVM_21) } withHostTest {} } sourceSets { commonMain { dependencies { implementation(libs.kotlin.stdlib) implementation(libs.kotlinx.coroutines.core) api(project(":quartz")) implementation(project(":quic")) } } commonTest { dependencies { implementation(libs.kotlin.test) implementation(libs.kotlinx.coroutines.test) } } val jvmAndroid = create("jvmAndroid") { dependsOn(commonMain.get()) } jvmMain { dependsOn(jvmAndroid) } androidMain { dependsOn(jvmAndroid) } jvmTest { dependencies { implementation(libs.kotlin.test) implementation(libs.kotlinx.coroutines.test) implementation(libs.secp256k1.kmp.jni.jvm) } } getByName("androidHostTest") { dependencies { implementation(libs.kotlin.test) implementation(libs.kotlinx.coroutines.test) implementation(libs.secp256k1.kmp.jni.jvm) } } } } // Forward the interop opt-ins from the Gradle JVM to the test workers. // Without this, `-DmarmotQuicBroker=...` / `-DmarmotWn=...` never reach the // tests and every interop case silently skips. Mirrors `:nestsClient`. tasks.withType().configureEach { System.getProperty("marmotQuicBroker")?.let { systemProperty("marmotQuicBroker", it) } System.getProperty("marmotQuicBrokerPin")?.let { systemProperty("marmotQuicBrokerPin", it) } System.getProperty("marmotWn")?.let { systemProperty("marmotWn", it) } }