build_context/
lib.rs

1// SPDX-License-Identifier: Apache-2.0 OR MIT
2
3/*!
4<!-- tidy:crate-doc:start -->
5Make [build environment/target information](https://doc.rust-lang.org/nightly/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-build-scripts) available as constants in normal libraries and binaries.
6
7This is intended primarily for use in tests and its helpers. When used in libraries or binaries, be careful not to depend on constants that depend on the host environment.
8
9Some constants duplicate those provided in `std::env::consts`.
10
11<!-- tidy:crate-doc:end -->
12 */
13
14#![no_std]
15#![doc(test(
16    no_crate_inject,
17    attr(
18        deny(warnings, rust_2018_idioms, single_use_lifetimes),
19        allow(dead_code, unused_variables)
20    )
21))]
22#![forbid(unsafe_code)]
23#![warn(
24    // Lints that may help when writing public library.
25    missing_debug_implementations,
26    missing_docs,
27    clippy::alloc_instead_of_core,
28    clippy::exhaustive_enums,
29    clippy::exhaustive_structs,
30    clippy::impl_trait_in_params,
31    // clippy::missing_inline_in_public_items,
32    clippy::std_instead_of_alloc,
33    clippy::std_instead_of_core,
34)]
35
36// Use \ on Windows host to work around https://github.com/rust-lang/rust/issues/75075 / https://github.com/rust-lang/cargo/issues/13919.
37#[cfg(not(host_os = "windows"))]
38include!(concat!(env!("OUT_DIR"), "/build-context"));
39#[cfg(host_os = "windows")]
40include!(concat!(env!("OUT_DIR"), "\\build-context"));