ittapi-rs 0.1.0

Rust bindings for ittapi
Documentation
#![allow(unused_imports)]
use cmake;
use cmake::Config;
use std::env;
use std::path::PathBuf;
extern crate bindgen;

#[cfg(target_os = "windows")]
fn main() {}

#[cfg(not(target_os = "windows"))]
fn main() {
    let out_dir = env::var("OUT_DIR").unwrap();
    let out_path = PathBuf::from(out_dir);

    #[cfg(not(feature = "force_32"))]
    {
        let _ittnotify_64 = Config::new("./")
            .generator("Unix Makefiles")
            .no_build_target(true)
            .build();

        println!("cargo:rustc-link-search={}/build/bin/", out_path.display());
        println!("cargo:rustc-link-lib=static=ittnotify64");
    }

    #[cfg(feature = "force_32")]
    #[cfg(not(any(target_os = "ios", target_os = "macos")))]
    {
        let _ittnotify_32 = Config::new("./")
            .generator("Unix Makefiles")
            .define("FORCE_32", "ON")
            .no_build_target(true)
            .build();

        println!("cargo:rustc-link-search={}/build/bin/", out_path.display());
        println!("cargo:rustc-link-lib=static=ittnotify32");
    }

    let ittnotify_bindings = bindgen::Builder::default()
        .rustfmt_bindings(true)
        .header("./include/ittnotify.h")
        .generate()
        .expect("Unable to generate bindings");

    ittnotify_bindings
        .write_to_file(out_path.join("ittnotify_bindings.rs"))
        .expect("Couldn't write bindings!");

    let jitprofiling_bindings = bindgen::Builder::default()
        .rustfmt_bindings(true)
        .header("./include/jitprofiling.h")
        .generate()
        .expect("Unable to generate bindings");

    jitprofiling_bindings
        .write_to_file(out_path.join("jitprofiling_bindings.rs"))
        .expect("Couldn't write bindings!");
}