tfledge 0.0.0

Chalkydri TFLite and libedgetpu bindings
Documentation
extern crate bindgen;

#[cfg(all(feature = "direct", feature = "throttled"))]
compile_error!("Can't select 'direct' and 'throttled' features");

#[cfg(not(any(feature = "direct", feature = "throttled")))]
compile_error!("Must select 'direct' or 'throttled' feature");


fn main() {
    #[cfg(feature = "__bindgen")]
    {
        let mut b = bindgen::builder()
            .clang_arg("-I../../third_party/libedgetpu/tflite/public")
            .clang_arg("-I../../third_party/tensorflow")
            .rustified_enum(".*")
            .use_core();
        for h in [
            "edgetpu_c.h",
            "tensorflow/lite/core/c/c_api.h",
            "tensorflow/lite/core/c/common.h",
            "/usr/include/stdio.h",
        ] {
            b = b.header(h);
        }
        b.generate().unwrap().write_to_file("src/gen.rs").unwrap();
    }

    #[cfg(feature = "direct")]
    println!("cargo:rustc-link-search={}/../../third_party/libedgetpu/out/direct", env!("CARGO_MANIFEST_DIR"));

    #[cfg(feature = "throttled")]
    println!("cargo:rustc-link-search={}/../../third_party/libedgetpu/out/throttled", env!("CARGO_MANIFEST_DIR"));

    println!("cargo:rustc-link-lib=edgetpu");

    println!("cargo:rustc-link-search={}/../../third_party/tensorflow/build", env!("CARGO_MANIFEST_DIR"));
    println!("cargo:rustc-link-lib=tensorflowlite_c");
}