@@ -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