From e77405841e97d1d41484828fccb5ad1b98091066 Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Tue, 18 Jul 2023 19:48:03 -0400 Subject: [PATCH] refactor: make a subdirectory for the scratch dir depending on the machine's features --- cli/src/tests/helpers/dirs.rs | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/cli/src/tests/helpers/dirs.rs b/cli/src/tests/helpers/dirs.rs index 4bf345d8..e4f220ea 100644 --- a/cli/src/tests/helpers/dirs.rs +++ b/cli/src/tests/helpers/dirs.rs @@ -4,7 +4,37 @@ lazy_static! { static ref HEADER_DIR: PathBuf = ROOT_DIR.join("lib").join("include"); static ref GRAMMARS_DIR: PathBuf = ROOT_DIR.join("test").join("fixtures").join("grammars"); static ref SCRATCH_DIR: PathBuf = { - let result = ROOT_DIR.join("target").join("scratch"); + // 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 = ROOT_DIR.join("target").join("scratch").join(machine); fs::create_dir_all(&result).unwrap(); result };