Files
rsh/crates/rsh-backend/build.rs
2026-05-12 21:51:19 +09:00

26 lines
1020 B
Rust

use std::path::{Path, PathBuf};
fn resolve_stub(env_var: &str, out_name: &str, out_dir: &Path) -> PathBuf {
println!("cargo:rerun-if-env-changed={env_var}");
let dest = out_dir.join(out_name);
if let Ok(src) = std::env::var(env_var) {
let src = PathBuf::from(&src);
if src.exists() {
println!("cargo:rerun-if-changed={}", src.display());
std::fs::copy(&src, &dest).expect("copy stub");
return dest;
}
println!("cargo:warning={env_var} set to {src:?} but file not found; serving 503 for this arch");
}
std::fs::write(&dest, []).expect("write placeholder");
dest
}
fn main() {
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
let x86 = resolve_stub("RSH_STUB_X86_64", "rsh-x86_64", &out_dir);
let arm = resolve_stub("RSH_STUB_AARCH64", "rsh-aarch64", &out_dir);
println!("cargo:rustc-env=STUB_X86_64_PATH={}", x86.display());
println!("cargo:rustc-env=STUB_AARCH64_PATH={}", arm.display());
}