Skip to content

Commit 2726ae4

Browse files
committed
Configure processResources task to include native Rust libraries
- Define `nativeResources` mapping for target triples and resource prefixes. - Update `processResources` task to package prebuilt Rust libraries for supported platforms.
1 parent b21cd77 commit 2726ae4

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

wrywebview/build.gradle.kts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import gobley.gradle.cargo.tasks.CargoBuildTask
77
import gobley.gradle.cargo.tasks.FindDynamicLibrariesTask
88
import gobley.gradle.cargo.tasks.RustUpTargetAddTask
99
import org.gradle.api.Project
10+
import org.gradle.language.jvm.tasks.ProcessResources
1011
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
1112
import java.io.File
1213

@@ -19,6 +20,17 @@ fun rustLibraryName(triple: String): String = when {
1920
fun Project.prebuiltRustLibrary(triple: String): File =
2021
layout.projectDirectory.dir("target/$triple/release").file(rustLibraryName(triple)).asFile
2122

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+
2234
plugins {
2335
alias(libs.plugins.kotlinJvm)
2436
alias(libs.plugins.kotlinAtomicfu)
@@ -73,6 +85,17 @@ tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile>().configureEa
7385
}
7486
}
7587

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+
7699
tasks.withType<CargoBuildTask>().configureEach {
77100
onlyIf {
78101
val rustTarget = target.orNull ?: return@onlyIf true

0 commit comments

Comments
 (0)