Some checks failed
Test / frontend-tests (pull_request) Failing after 1m15s
Test / frontend-typecheck (pull_request) Successful in 1m57s
PR Review Automation / review (pull_request) Successful in 4m17s
Test / rust-fmt-check (pull_request) Successful in 13m32s
Test / rust-clippy (pull_request) Has been cancelled
Test / rust-tests (pull_request) Has been cancelled
libsodium-sys requires memset_explicit which is not available in older MinGW toolchains. Added a C shim that provides a fallback implementation using volatile pointers to prevent compiler optimization. Changes: - Added memset_s_shim.c with fallback memset_explicit implementation - Updated build.rs to compile shim for Windows GNU targets - Added cc crate as build dependency - Set CFLAGS in CI to target Windows 8+ (_WIN32_WINNT=0x0602) - Set SODIUM_STATIC=yes to force static libsodium build Fixes linking error: undefined reference to memset_explicit Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
41 lines
1.1 KiB
Rust
41 lines
1.1 KiB
Rust
fn main() {
|
|
let version = get_version_from_git();
|
|
|
|
println!("cargo:rustc-env=APP_VERSION={version}");
|
|
println!("cargo:rerun-if-changed=.git/refs/heads/master");
|
|
println!("cargo:rerun-if-changed=.git/refs/tags");
|
|
|
|
// Compile memset_explicit shim for Windows MinGW
|
|
if std::env::var("CARGO_CFG_TARGET_OS").unwrap_or_default() == "windows"
|
|
&& std::env::var("CARGO_CFG_TARGET_ENV").unwrap_or_default() == "gnu"
|
|
{
|
|
cc::Build::new()
|
|
.file("memset_s_shim.c")
|
|
.compile("memset_shim");
|
|
println!("cargo:rerun-if-changed=memset_s_shim.c");
|
|
}
|
|
|
|
tauri_build::build()
|
|
}
|
|
|
|
fn get_version_from_git() -> String {
|
|
if let Ok(output) = std::process::Command::new("git")
|
|
.arg("describe")
|
|
.arg("--tags")
|
|
.arg("--abbrev=0")
|
|
.output()
|
|
{
|
|
if output.status.success() {
|
|
let version = String::from_utf8_lossy(&output.stdout)
|
|
.trim()
|
|
.trim_start_matches('v')
|
|
.to_string();
|
|
if !version.is_empty() {
|
|
return version;
|
|
}
|
|
}
|
|
}
|
|
|
|
"0.2.50".to_string()
|
|
}
|