|
|
|
@ -39,14 +39,29 @@ fn main() { |
|
|
|
|
lmdb.push("liblmdb"); |
|
|
|
|
|
|
|
|
|
if !pkg_config::find_library("liblmdb").is_ok() { |
|
|
|
|
cc::Build::new() |
|
|
|
|
let mut builder = cc::Build::new(); |
|
|
|
|
|
|
|
|
|
builder |
|
|
|
|
.define("MDB_IDL_LOGN", Some(MDB_IDL_LOGN.to_string().as_str())) |
|
|
|
|
.file(lmdb.join("mdb.c")) |
|
|
|
|
.file(lmdb.join("midl.c")) |
|
|
|
|
// https://github.com/mozilla/lmdb/blob/b7df2cac50fb41e8bd16aab4cc5fd167be9e032a/libraries/liblmdb/Makefile#L23
|
|
|
|
|
.flag_if_supported("-Wno-unused-parameter") |
|
|
|
|
.flag_if_supported("-Wbad-function-cast") |
|
|
|
|
.flag_if_supported("-Wuninitialized") |
|
|
|
|
.compile("liblmdb.a") |
|
|
|
|
.flag_if_supported("-Wuninitialized"); |
|
|
|
|
|
|
|
|
|
if env::var("CARGO_FEATURE_WITH_CLANG").is_ok() { |
|
|
|
|
builder.compiler("clang"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if env::var("CARGO_FEATURE_WITH_ASAN").is_ok() { |
|
|
|
|
builder.flag("-fsanitize=address"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if env::var("CARGO_FEATURE_WITH_FUZZER").is_ok() { |
|
|
|
|
builder.flag("-fsanitize=fuzzer"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
builder.compile("liblmdb.a") |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|