use lazy_static::lazy_static; use std::env; use std::path::PathBuf; lazy_static! { pub static ref CARGO_TARGET_DIR: PathBuf = { match env::var_os("CARGO_TARGET_DIR") { Some(v) => v.into(), None => env::current_dir().unwrap().join("target"), } }; pub static ref TARGET_LIB: PathBuf = { if let Some(path) = option_env!("TARGET_LIBS") { path.into() } else { let mut dir = CARGO_TARGET_DIR.clone(); if let Some(target) = env::var_os("CARGO_BUILD_TARGET") { dir.push(target); } dir.push(env!("PROFILE")); dir } }; } #[must_use] pub fn is_rustc_test_suite() -> bool { option_env!("RUSTC_TEST_SUITE").is_some() }