// SPDX-FileCopyrightText: 2026 Echolot contributors // SPDX-License-Identifier: GPL-3.0-or-later plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.serialization) } // Pure Kotlin/JVM: the client half of probe-protocol.md. No Android deps, so // the Android app modules can depend on it and it stays unit-testable (incl. // live integration tests) on any JDK. Crypto, HTTP and UDP come from the JDK // (javax.crypto, java.net.http, java.net) — only JSON needs a library. dependencies { implementation(libs.kotlinx.serialization.json) testImplementation(kotlin("test")) } kotlin { // Build with the available JDK (Android Studio's JBR is 21) but emit // Java-17 bytecode so the Android app modules can consume this library. jvmToolchain(21) compilerOptions { jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } tasks.test { useJUnitPlatform() // The live end-to-end test against a real server only runs when // ECHOLOT_LIVE_URL is set; otherwise it self-skips (see LiveServerTest). listOf("ECHOLOT_LIVE_URL", "ECHOLOT_LIVE_PIN", "ECHOLOT_LIVE_CRED", "ECHOLOT_LIVE_UDP", "ECHOLOT_LIVE_TARGET").forEach { k -> System.getenv(k)?.let { environment(k, it) } } }