hala-pprof 0.1.6

Hala performance profiling toolkit
use std::{fs::create_dir, path::Path};

#[cfg(feature = "gperf")]
fn gen_gperf() {
    let out_dir = Path::new("src/gperf");

    if !out_dir.exists() {
        create_dir(out_dir).unwrap();
    }

    protobuf_codegen::Codegen::new()
        .protoc()
        .protoc_path(&protoc_bin_vendored::protoc_bin_path().unwrap())
        .includes(&["proto"])
        .input("proto/gperf.proto")
        .out_dir(out_dir)
        .run_from_script();
}

fn main() {
    #[cfg(feature = "gperf")]
    gen_gperf();

    let mut build = cc::Build::new();

    build
        .cpp(true)
        .static_crt(true)
        .flag_if_supported("-std=c++17")
        .flag_if_supported("/std:c++17")
        .flag_if_supported("/MD")
        .opt_level(3);

    println!("cargo:rerun-if-changed=src/c/external.cpp");
    build.file("src/c/external.cpp");
    build.compile("hala_pprof_c");
}