@@ -7,7 +7,6 @@ import gobley.gradle.cargo.tasks.CargoBuildTask
77import gobley.gradle.cargo.tasks.FindDynamicLibrariesTask
88import gobley.gradle.cargo.tasks.RustUpTargetAddTask
99import org.gradle.api.Project
10- import org.gradle.language.jvm.tasks.ProcessResources
1110import org.jetbrains.kotlin.gradle.dsl.JvmTarget
1211import java.io.File
1312
@@ -20,17 +19,6 @@ fun rustLibraryName(triple: String): String = when {
2019fun Project.prebuiltRustLibrary(triple: String): File =
2120 layout.projectDirectory.dir("target/$triple/release").file(rustLibraryName(triple)).asFile
2221
23- data class NativeResource(val triple: String, val resourcePrefix: String)
24-
25- val nativeResources = listOf(
26- NativeResource("aarch64-apple-darwin", "darwin-aarch64"),
27- NativeResource("x86_64-apple-darwin", "darwin-x86-64"),
28- NativeResource("x86_64-unknown-linux-gnu", "linux-x86-64"),
29- NativeResource("aarch64-unknown-linux-gnu", "linux-aarch64"),
30- NativeResource("x86_64-pc-windows-msvc", "win32-x86-64"),
31- NativeResource("aarch64-pc-windows-msvc", "win32-aarch64"),
32- )
33-
3422plugins {
3523 alias(libs.plugins.kotlinJvm)
3624 alias(libs.plugins.kotlinAtomicfu)
@@ -43,12 +31,8 @@ plugins {
4331cargo {
4432 jvmVariant.set(Variant.Release)
4533 builds.jvm {
46- // In CI with pre-built natives, embed if the library file exists
47- // Otherwise, only embed for current host platform
48- val triple = rustTarget.rustTriple
49- val libName = rustLibraryName(triple)
50- val prebuiltLib = layout.projectDirectory.dir("target/$triple/release").file(libName)
51- embedRustLibrary = prebuiltLib.asFile.exists() || (GobleyHost.current.rustTarget == rustTarget)
34+ // Only embed for the current host platform; other platforms are packed as resources.
35+ embedRustLibrary = GobleyHost.current.rustTarget == rustTarget
5236 }
5337}
5438
@@ -74,6 +58,12 @@ kotlin {
7458 jvmToolchain(17)
7559}
7660
61+ sourceSets {
62+ main {
63+ resources.srcDir("src/jvmMain/resources")
64+ }
65+ }
66+
7767dependencies {
7868 implementation(libs.jna)
7969 implementation(libs.skiko.awt)
@@ -85,17 +75,6 @@ tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile>().configureEa
8575 }
8676}
8777
88- tasks.named<ProcessResources>("processResources") {
89- nativeResources.forEach { (triple, resourcePrefix) ->
90- val prebuiltLib = project.prebuiltRustLibrary(triple)
91- if (prebuiltLib.exists()) {
92- from(prebuiltLib) {
93- into(resourcePrefix)
94- }
95- }
96- }
97- }
98-
9978tasks.withType<CargoBuildTask>().configureEach {
10079 onlyIf {
10180 val rustTarget = target.orNull ?: return@onlyIf true
0 commit comments