libliquidfun-sys 0.1.0

A thin Rust ffi wrapper on top of Box2D and LiquidFun. Built using autocxx.
Documentation
extern crate cmake;

use std::path::PathBuf;

fn main() {
    println!("cargo:rustc-link-lib=static=box2d");
    println!("cargo:rerun-if-changed=box2d/");
    println!("cargo:rerun-if-changed=src/lib.rs");
    println!("cargo:rerun-if-changed=include/");

    let box2d_path = build_box2d();
    generate_bindings(box2d_path);
}

fn build_box2d() -> PathBuf {
    let box2d_path = cmake::Config::new("box2d")
        .define("BOX2D_BUILD_UNIT_TESTS", "OFF")
        .define("BOX2D_BUILD_TESTBED", "OFF")
        .define("BOX2D_BUILD_DOCS", "OFF")
        .define("BOX2D_USER_SETTINGS", "OFF")
        .define("BUILD_SHARED_LIBS", "OFF")
        .build();

    println!(
        "cargo:rustc-link-search=native={}/lib",
        box2d_path.display()
    );
    println!("cargo:include={}/include", box2d_path.display());


    return box2d_path;
}

fn generate_bindings(box2d_path: PathBuf) {
    let box2d_include_path = box2d_path.join(std::path::PathBuf::from("include"));
    let include_path = std::path::PathBuf::from("include");
    let mut autocxx_build = autocxx_build::Builder::new("src/lib.rs", [&box2d_include_path, &include_path]).build().unwrap();
    autocxx_build.include(box2d_include_path).include(include_path).flag_if_supported("-std=c++14").compile("libliquidfun-sys.a");
}