• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: Apache-2.0
2 
3 macro_rules! test {
4     () => (cfg!(test) && ::std::env::var("_CLANG_SYS_TEST").is_ok());
5 }
6 
7 macro_rules! target_os {
8     ($os:expr) => {
9         if cfg!(test) && ::std::env::var("_CLANG_SYS_TEST").is_ok() {
10             let var = ::std::env::var("_CLANG_SYS_TEST_OS");
11             var.map_or(false, |v| v == $os)
12         } else {
13             cfg!(target_os = $os)
14         }
15     };
16 }
17 
18 macro_rules! target_arch {
19     ($arch:expr) => {
20         if cfg!(test) && ::std::env::var("_CLANG_SYS_TEST").is_ok() {
21             let var = ::std::env::var("_CLANG_SYS_TEST_ARCH");
22             var.map_or(false, |v| v == $arch)
23         } else {
24             cfg!(target_arch = $arch)
25         }
26     };
27 }
28 
29 macro_rules! target_pointer_width {
30     ($pointer_width:expr) => {
31         if cfg!(test) && ::std::env::var("_CLANG_SYS_TEST").is_ok() {
32             let var = ::std::env::var("_CLANG_SYS_TEST_POINTER_WIDTH");
33             var.map_or(false, |v| v == $pointer_width)
34         } else {
35             cfg!(target_pointer_width = $pointer_width)
36         }
37     };
38 }
39 
40 macro_rules! target_env {
41     ($env:expr) => {
42         if cfg!(test) && ::std::env::var("_CLANG_SYS_TEST").is_ok() {
43             let var = ::std::env::var("_CLANG_SYS_TEST_ENV");
44             var.map_or(false, |v| v == $env)
45         } else {
46             cfg!(target_env = $env)
47         }
48     };
49 }
50