From 1fb2d3229f88c1f26a0683237b3ce70d699b7574 Mon Sep 17 00:00:00 2001 From: Felix Hilgers Date: Tue, 21 Oct 2025 23:45:26 +0200 Subject: [PATCH] fix: sharing source between sourcesets --- CHANGELOG.md | 1 + buildSrc/src/main/kotlin/targets.kt | 4 ++ trixnity-olm/build.gradle.kts | 57 +++++++++++++------ .../net/folivo/trixnity/olm/NativeSize.kt | 0 .../folivo/trixnity/olm/OlmAccountPointer.kt | 0 .../olm/OlmInboundGroupSessionPointer.kt | 0 .../net/folivo/trixnity/olm/OlmLibrary.kt | 0 .../folivo/trixnity/olm/OlmLibraryWrapper.kt | 0 .../olm/OlmOutboundGroupSessionPointer.kt | 0 .../trixnity/olm/OlmPkDecryptionPointer.kt | 0 .../trixnity/olm/OlmPkEncryptionPointer.kt | 0 .../trixnity/olm/OlmPkSigningPointer.kt | 0 .../net/folivo/trixnity/olm/OlmSASPointer.kt | 0 .../folivo/trixnity/olm/OlmSessionPointer.kt | 0 .../folivo/trixnity/olm/OlmUtilityPointer.kt | 0 .../net/folivo/trixnity/olm/jnaUtils.kt | 0 trixnity-test-utils/build.gradle.kts | 5 ++ 17 files changed, 50 insertions(+), 17 deletions(-) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/NativeSize.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmAccountPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmInboundGroupSessionPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmLibrary.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmLibraryWrapper.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmOutboundGroupSessionPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmPkDecryptionPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmPkEncryptionPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmPkSigningPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmSASPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmSessionPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/OlmUtilityPointer.kt (100%) rename trixnity-olm/src/{jvmMain => jvmAndroidMain}/kotlin/net/folivo/trixnity/olm/jnaUtils.kt (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77ce20ab3..7115c1d35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed cache did not persist values when there were no cache entry but subscribers for an index (very rare case) +- Fix dokka documentation generation ### Security diff --git a/buildSrc/src/main/kotlin/targets.kt b/buildSrc/src/main/kotlin/targets.kt index 9132ae20c..f54aa940d 100644 --- a/buildSrc/src/main/kotlin/targets.kt +++ b/buildSrc/src/main/kotlin/targets.kt @@ -1,5 +1,7 @@ import org.gradle.kotlin.dsl.get +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget @@ -22,6 +24,8 @@ fun KotlinMultiplatformExtension.addJvmTarget( fun KotlinMultiplatformExtension.addAndroidTarget() = androidTarget { // TODO use androidLibrary publishLibraryVariants("release") + @OptIn(ExperimentalKotlinGradlePluginApi::class) + instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) } fun KotlinMultiplatformExtension.addJsTarget( diff --git a/trixnity-olm/build.gradle.kts b/trixnity-olm/build.gradle.kts index 80f519db3..e118ef8c3 100644 --- a/trixnity-olm/build.gradle.kts +++ b/trixnity-olm/build.gradle.kts @@ -1,5 +1,8 @@ +@file:OptIn(ExperimentalKotlinGradlePluginApi::class) + import com.android.build.gradle.tasks.ExternalNativeBuildTask import com.android.build.gradle.tasks.ExternalNativeCleanTask +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.konan.target.KonanTarget @@ -89,6 +92,11 @@ android { isDefault = true } } + packaging { + resources { + excludes += "META-INF/INDEX.LIST" + } + } } tasks.withType(com.android.build.gradle.tasks.MergeSourceSetFolders::class).configureEach { if (name.contains("jni", true)) { @@ -110,11 +118,27 @@ kotlin { addAndroidTarget() addJsTarget(rootDir) + applyDefaultHierarchyTemplate { + common { + group("olmLibrary") { + group("jvmAndroid") { + withJvm() + withAndroidTarget() + } + group("native") { + withLinux() + withMingw() + withApple() + } + } + } + } + compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") } - val nativeOlmTargets = olmNativeTargetList.map { target -> + olmNativeTargetList.forEach { target -> target.createTarget(this).apply { compilations { "main" { @@ -148,20 +172,20 @@ kotlin { implementation(libs.oshai.logging) } } - val olmLibraryMain by creating { - dependsOn(commonMain.get()) + // TODO: proper kotlin multiplatform variant of using jna + val jvmAndroidMain by getting { + dependencies { + compileOnly(libs.jna) + } } - jvmMain { - dependsOn(olmLibraryMain) + androidMain { dependencies { - implementation(libs.jna) + implementation(libs.jna.get().toString() + "@aar") } } - val androidMain by getting { - dependsOn(olmLibraryMain) - kotlin.srcDirs("src/jvmMain/kotlin") + jvmMain { dependencies { - api(libs.jna.get().toString() + "@aar") + implementation(libs.jna.get().toString() + "@jar") } } jsMain { @@ -169,12 +193,6 @@ kotlin { implementation(npm("@matrix-org/olm", libs.versions.olm.get())) } } - val nativeMain by creating { - dependsOn(olmLibraryMain) - } - nativeOlmTargets.forEach { - getByName(it.targetName + "Main").dependsOn(nativeMain) - } commonTest { dependencies { implementation(kotlin("test")) @@ -186,8 +204,13 @@ kotlin { } androidUnitTest { dependencies { - implementation(libs.jna.get().toString() + "@jar") implementation(files(desktopOlmLibs)) + implementation(libs.jna.get().toString() + "@jar") + } + } + androidInstrumentedTest { + dependencies { + implementation(libs.androidx.test.runner) } } } diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/NativeSize.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/NativeSize.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/NativeSize.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/NativeSize.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmAccountPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmAccountPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmAccountPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmAccountPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmInboundGroupSessionPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmInboundGroupSessionPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmInboundGroupSessionPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmInboundGroupSessionPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmLibrary.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmLibrary.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmLibrary.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmLibrary.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmLibraryWrapper.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmLibraryWrapper.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmLibraryWrapper.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmLibraryWrapper.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmOutboundGroupSessionPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmOutboundGroupSessionPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmOutboundGroupSessionPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmOutboundGroupSessionPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmPkDecryptionPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmPkDecryptionPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmPkDecryptionPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmPkDecryptionPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmPkEncryptionPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmPkEncryptionPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmPkEncryptionPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmPkEncryptionPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmPkSigningPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmPkSigningPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmPkSigningPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmPkSigningPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmSASPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmSASPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmSASPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmSASPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmSessionPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmSessionPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmSessionPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmSessionPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmUtilityPointer.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmUtilityPointer.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/OlmUtilityPointer.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/OlmUtilityPointer.kt diff --git a/trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/jnaUtils.kt b/trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/jnaUtils.kt similarity index 100% rename from trixnity-olm/src/jvmMain/kotlin/net/folivo/trixnity/olm/jnaUtils.kt rename to trixnity-olm/src/jvmAndroidMain/kotlin/net/folivo/trixnity/olm/jnaUtils.kt diff --git a/trixnity-test-utils/build.gradle.kts b/trixnity-test-utils/build.gradle.kts index 287723e20..f529fe0f3 100644 --- a/trixnity-test-utils/build.gradle.kts +++ b/trixnity-test-utils/build.gradle.kts @@ -72,4 +72,9 @@ android { defaultConfig { minSdk = libs.versions.androidMinSdk.get().toInt() } + packaging { + resources { + excludes += "META-INF/INDEX.LIST" + } + } } \ No newline at end of file -- GitLab