cargo-rustc-cfg: A Rust library (crate) for running the cargo rustc -- --print cfg command and parsing the output

A Rust library (crate) that runs the cargo rustc -- --print cfg command and parses the output. This is inspired by the [rustc-cfg] crate, which runs the rustc --print cfg command and parses the output, but it does not take into account any flags or configurations passed from [Cargo] to the [Rust compiler (rustc)] when building a project using Cargo. For example, if the RUSTFLAGS environment variable is used to add a target feature, i.e. RUSTFLAGS="-C target-feature=+crt-static, then the rustc --print cfg command will not list the added target feature in its output because the RUSTFLAGS environment variable is managed by Cargo. However, the cargo rustc -- --print cfg will list the added target feature in its output. This crate is useful for developing third-party that need compiler configuration information. This crate is not recommeded for [build scripts].

Crates.io GitHub release Crates.io Build Status

Quick Start

```rust use cargorustccfg::Cfg;

let cfg = Cfg::host()?; println("{:?}", cfg); ```

Installation

Add the following to a package's manifest (Cargo.toml):

toml cargo-rustc-cfg = "0.1"

If using the [Rust 2015 Edition], then also add the following to the lib.rs or main.rs source file:

rust extern crate cargo_rustc_cfg;

Tests

Tests are running using the cargo test command. Currently, only [documentation tests] are implemented because for a relatively simple, small library these provide enough coverage.

License

The cargo-rustc-cfg project is licensed under either the MIT license or Apache 2.0 license. See the LICENSE-MIT or LICENSE-APACHE files for more information about licensing and copyright.