diff options
Diffstat (limited to 'vendor/cc/src/target.rs')
| -rw-r--r-- | vendor/cc/src/target.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/vendor/cc/src/target.rs b/vendor/cc/src/target.rs new file mode 100644 index 00000000..ed432df5 --- /dev/null +++ b/vendor/cc/src/target.rs @@ -0,0 +1,41 @@ +//! Parsing of `rustc` target names to match the values exposed to Cargo +//! build scripts (`CARGO_CFG_*`). + +mod apple; +mod generated; +mod llvm; +mod parser; + +pub(crate) use parser::TargetInfoParser; + +/// Information specific to a `rustc` target. +/// +/// See <https://doc.rust-lang.org/cargo/appendix/glossary.html#target>. +#[derive(Debug, PartialEq, Clone)] +pub(crate) struct TargetInfo<'a> { + /// The full architecture, including the subarchitecture. + /// + /// This differs from `cfg!(target_arch)`, which only specifies the + /// overall architecture, which is too coarse for certain cases. + pub full_arch: &'a str, + /// The overall target architecture. + /// + /// This is the same as the value of `cfg!(target_arch)`. + pub arch: &'a str, + /// The target vendor. + /// + /// This is the same as the value of `cfg!(target_vendor)`. + pub vendor: &'a str, + /// The operating system, or `none` on bare-metal targets. + /// + /// This is the same as the value of `cfg!(target_os)`. + pub os: &'a str, + /// The environment on top of the operating system. + /// + /// This is the same as the value of `cfg!(target_env)`. + pub env: &'a str, + /// The ABI on top of the operating system. + /// + /// This is the same as the value of `cfg!(target_abi)`. + pub abi: &'a str, +} |
