From a949b5ceef6cf538af59698238f65efa2989ae3c Mon Sep 17 00:00:00 2001 From: Jeff Waugh Date: Wed, 16 Nov 2016 09:27:13 +1100 Subject: [PATCH] libbindgen: Make logging optional Note that the log crate isn't completely banished, as other is required by other dependencies. --- libbindgen/Cargo.toml | 12 ++++++++++-- libbindgen/src/lib.rs | 8 +++++++- libbindgen/src/log_stubs.rs | 30 ++++++++++++++++++++++++++++++ libbindgen/tests/tests.rs | 3 --- 4 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 libbindgen/src/log_stubs.rs diff --git a/libbindgen/Cargo.toml b/libbindgen/Cargo.toml index 664ece6e6b..e275100b1d 100644 --- a/libbindgen/Cargo.toml +++ b/libbindgen/Cargo.toml @@ -28,8 +28,6 @@ cfg-if = "0.1.0" clang-sys = "0.8.0" lazy_static = "0.1.*" libc = "0.2" -log = "0.3" -env_logger = "0.3" rustc-serialize = "0.3.19" syntex_syntax = "0.44" regex = "0.1" @@ -43,12 +41,22 @@ version = "0.28" optional = true version = "*" +[dependencies.env_logger] +optional = true +version = "0.3" + +[dependencies.log] +optional = true +version = "0.3" + [dependencies.quasi] features = ["with-syntex"] version = "0.20" [features] +default = ["logging"] llvm_stable = [] +logging = ["env_logger", "log"] static = [] # This feature only exists for CI -- don't use it! _docs = [] diff --git a/libbindgen/src/lib.rs b/libbindgen/src/lib.rs index e4923b77dd..84c6931079 100644 --- a/libbindgen/src/lib.rs +++ b/libbindgen/src/lib.rs @@ -29,9 +29,15 @@ extern crate clang_sys; extern crate libc; extern crate regex; #[macro_use] +extern crate lazy_static; + +#[cfg(feature = "logging")] +#[macro_use] extern crate log; + +#[cfg(not(feature = "logging"))] #[macro_use] -extern crate lazy_static; +mod log_stubs; // A macro to declare an internal module for which we *must* provide // documentation for. If we are building with the "_docs" feature, then the diff --git a/libbindgen/src/log_stubs.rs b/libbindgen/src/log_stubs.rs new file mode 100644 index 0000000000..4262e12040 --- /dev/null +++ b/libbindgen/src/log_stubs.rs @@ -0,0 +1,30 @@ +macro_rules! log { + (target: $target:expr, $lvl:expr, $($arg)+) => { + let _ = $target; + let _ = log!($lvl, $($arg)+); + }; + ($lvl:expr, $($arg:tt)+) => { + let _ = $lvl; + let _ = format_args!($($arg)+); + }; +} +macro_rules! error { + (target: $target:expr, $($arg:tt)*) => { log!($target, $($arg)*); }; + ($($arg:tt)*) => { log!("", $($arg)*); }; +} +macro_rules! warn { + (target: $target:expr, $($arg:tt)*) => { log!($target, $($arg)*); }; + ($($arg:tt)*) => { log!("", $($arg)*); }; +} +macro_rules! info { + (target: $target:expr, $($arg:tt)*) => { log!($target, $($arg)*); }; + ($($arg:tt)*) => { log!("", $($arg)*); }; +} +macro_rules! debug { + (target: $target:expr, $($arg:tt)*) => { log!($target, $($arg)*); }; + ($($arg:tt)*) => { log!("", $($arg)*); }; +} +macro_rules! trace { + (target: $target:expr, $($arg:tt)*) => { log!($target, $($arg)*); }; + ($($arg:tt)*) => { log!("", $($arg)*); }; +} diff --git a/libbindgen/tests/tests.rs b/libbindgen/tests/tests.rs index c07864062b..6350328269 100644 --- a/libbindgen/tests/tests.rs +++ b/libbindgen/tests/tests.rs @@ -1,9 +1,6 @@ extern crate clap; extern crate diff; -#[macro_use] -extern crate env_logger; extern crate libbindgen; -extern crate log; extern crate shlex; use std::fs;