mirror of
https://github.com/KRTirtho/spotube.git
synced 2026-11-04 10:13:59 +00:00
fix(android): create intermediate directories for Rust targets to prevent runtime errors
This commit is contained in:
parent
64fb23e62b
commit
38e9bbc1d8
@ -18,6 +18,7 @@
|
||||
import gobley.gradle.GobleyHost
|
||||
import gobley.gradle.Variant
|
||||
import gobley.gradle.cargo.dsl.jvm
|
||||
import gobley.gradle.rust.targets.RustAndroidTarget
|
||||
import dev.nucleusframework.desktop.application.dsl.NativeImageOptimization
|
||||
import dev.nucleusframework.desktop.application.dsl.TargetFormat
|
||||
import org.jetbrains.compose.reload.gradle.ComposeHotRun
|
||||
@ -614,6 +615,15 @@ cargo {
|
||||
}
|
||||
}
|
||||
|
||||
// Gobley adds build/intermediates/rust/<triple>/<variant> as a jniLibs source dir, but AGP leaves source dirs
|
||||
// that don't exist at configuration time out of the merge inputs. On a clean build (CI) libcompose_app.so would
|
||||
// then silently miss the APK and crash at runtime with UnsatisfiedLinkError, so create the dirs up front.
|
||||
RustAndroidTarget.entries.forEach { target ->
|
||||
Variant.entries.forEach { variant ->
|
||||
layout.buildDirectory.dir("intermediates/rust/${target.rustTriple}/$variant").get().asFile.mkdirs()
|
||||
}
|
||||
}
|
||||
|
||||
// Google only ships x86_64 Linux NDK toolchains, so on a Linux arm64 host the Android Rust targets can never
|
||||
// link (clang: "Exec format error"). Desktop packaging doesn't need them; Android is built on x86_64 runners.
|
||||
run {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user