Bug: 154052335

Clone this repo:
  1. 50ee8e4 Add cfg-if to com.android.virt apex by Victor Hsieh · 12 days ago master
  2. b0aa0a1 Allow using cfg-if from DnsResolver by Bernie Innocenti · 6 weeks ago
  3. 8fcc90e Mark ab/6881855 as merged by Xin Li · 8 weeks ago
  4. 0cd662b TEST_MAPPING: test dependers of this crate am: 3d42651cb8 by Jeff Vander Stoep · 2 months ago
  5. 3d42651 TEST_MAPPING: test dependers of this crate by Jeff Vander Stoep · 3 months ago



A macro to ergonomically define an item depending on a large number of #[cfg] parameters. Structured like an if-else chain, the first matching branch is the item that gets emitted.

cfg-if = "0.1"


cfg_if::cfg_if! {
    if #[cfg(unix)] {
        fn foo() { /* unix specific functionality */ }
    } else if #[cfg(target_pointer_width = "32")] {
        fn foo() { /* non-unix, 32-bit functionality */ }
    } else {
        fn foo() { /* fallback implementation */ }

fn main() {


This project is licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cfg-if by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.