summary refs log tree commit diff
path: root/src/tools/clippy/tests/cargo/mod.rs
blob: a8f3e3145f64d723de26b9729b5375c21fd28a0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use std::env;
use std::lazy::SyncLazy;
use std::path::PathBuf;

pub static CARGO_TARGET_DIR: SyncLazy<PathBuf> = SyncLazy::new(|| match env::var_os("CARGO_TARGET_DIR") {
    Some(v) => v.into(),
    None => env::current_dir().unwrap().join("target"),
});

pub static TARGET_LIB: SyncLazy<PathBuf> = SyncLazy::new(|| {
    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()
}