mdbx-sys 0.7.0

Rust bindings for mdbx.
Documentation
extern crate cc;
extern crate pkg_config;

#[cfg(feature = "bindgen")]
extern crate bindgen;

#[cfg(feature = "bindgen")]
#[path = "bindgen.rs"]
mod generate;

use std::env;
use std::path::PathBuf;
use std::process::Command;

fn main() {
    #[cfg(feature = "bindgen")]
    generate::generate();

    let mut mdbx = PathBuf::from(&env::var("CARGO_MANIFEST_DIR").unwrap());
    mdbx.push("libmdbx");

    if !pkg_config::find_library("libmdbx").is_ok() {
        let ret = Command::new("make")
            .args(&["-C", &mdbx.display().to_string()])
            .arg("libmdbx.a")
            .output()
            .expect("failed to make!");

        if !ret.status.success() {
            println!("cargo:warning={:?}", ret);
        }
    }

    println!("cargo:rustc-link-search={}", mdbx.display());
    println!("cargo:rustc-link-lib=static=mdbx");
}