use std::path::{Path, PathBuf};
use std::sync::OnceLock;
static SYSROOT: OnceLock<PathBuf> = OnceLock::new();
pub fn set_sysroot(path: PathBuf) {
let _ = SYSROOT.set(path);
}
pub fn get_sysroot() -> Option<&'static Path> {
SYSROOT.get().map(|p| p.as_path())
}
pub fn apply_sysroot(path: impl Into<PathBuf>) -> PathBuf {
let path = path.into();
if let Some(root) = get_sysroot() {
if path.is_absolute() {
let mut components = path.components();
components.next();
root.join(components.as_path())
} else {
root.join(path)
}
} else {
path
}
}