Skip to content

Commit

Permalink
Auto merge of #269 - jdub:logless-library-really, r=emilio
Browse files Browse the repository at this point in the history
libbindgen: Make logging optional

Note that the log crate isn't completely banished, as other is required by other dependencies.

Believe it or not, this change was the original aim of #204.
  • Loading branch information
bors-servo authored Nov 16, 2016
2 parents 3b1ec9a + a949b5c commit c800ad4
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 6 deletions.
12 changes: 10 additions & 2 deletions libbindgen/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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 = []
8 changes: 7 additions & 1 deletion libbindgen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
30 changes: 30 additions & 0 deletions libbindgen/src/log_stubs.rs
Original file line number Diff line number Diff line change
@@ -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)*); };
}
3 changes: 0 additions & 3 deletions libbindgen/tests/tests.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down

0 comments on commit c800ad4

Please sign in to comment.