47 lines
1.7 KiB
Rust
47 lines
1.7 KiB
Rust
lazy_static! {
|
|
pub static ref ROOT_DIR: PathBuf = PathBuf::from(env!("CARGO_MANIFEST_DIR")).parent().unwrap().to_owned();
|
|
pub static ref FIXTURES_DIR: PathBuf = ROOT_DIR.join("test").join("fixtures");
|
|
pub static ref HEADER_DIR: PathBuf = ROOT_DIR.join("lib").join("include");
|
|
pub static ref GRAMMARS_DIR: PathBuf = ROOT_DIR.join("test").join("fixtures").join("grammars");
|
|
pub static ref SCRATCH_BASE_DIR: PathBuf = {
|
|
let result = ROOT_DIR.join("target").join("scratch");
|
|
fs::create_dir_all(&result).unwrap();
|
|
result
|
|
};
|
|
pub static ref WASM_DIR: PathBuf = ROOT_DIR.join("target").join("release");
|
|
pub static ref SCRATCH_DIR: PathBuf = {
|
|
// https://doc.rust-lang.org/reference/conditional-compilation.html
|
|
let vendor = if cfg!(target_vendor = "apple") {
|
|
"apple"
|
|
} else if cfg!(target_vendor = "fortanix") {
|
|
"fortanix"
|
|
} else if cfg!(target_vendor = "pc") {
|
|
"pc"
|
|
} else {
|
|
"unknown"
|
|
};
|
|
let env = if cfg!(target_env = "gnu") {
|
|
"gnu"
|
|
} else if cfg!(target_env = "msvc") {
|
|
"msvc"
|
|
} else if cfg!(target_env = "musl") {
|
|
"musl"
|
|
} else if cfg!(target_env = "sgx") {
|
|
"sgx"
|
|
} else {
|
|
"unknown"
|
|
};
|
|
let endian = if cfg!(target_endian = "little") {
|
|
"little"
|
|
} else if cfg!(target_endian = "big") {
|
|
"big"
|
|
} else {
|
|
"unknown"
|
|
};
|
|
|
|
let machine = format!("{}-{}-{}-{}-{}", std::env::consts::ARCH, std::env::consts::OS, vendor, env, endian);
|
|
let result = SCRATCH_BASE_DIR.join(machine);
|
|
fs::create_dir_all(&result).unwrap();
|
|
result
|
|
};
|
|
}
|