summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libbindgen/Cargo.toml12
-rw-r--r--libbindgen/src/lib.rs8
-rw-r--r--libbindgen/src/log_stubs.rs30
-rw-r--r--libbindgen/tests/tests.rs3
4 files changed, 47 insertions, 6 deletions
diff --git a/libbindgen/Cargo.toml b/libbindgen/Cargo.toml
index 664ece6e..e275100b 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 e4923b77..84c69310 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 00000000..4262e120
--- /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 c0786406..63503282 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;