stringpitcher 0.1.3

Ultra low-latency pitch detection library for guitar and bass instruments
//! Build script for guitar_tuner library
//!
//! Generates C header file using cbindgen for FFI consumers.

use std::env;
use std::path::PathBuf;

fn main() {
    // Only generate header when building the library (not for tests/benches)
    let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap();
    let output_dir = PathBuf::from(&crate_dir).join("include");

    // Create include directory if it doesn't exist
    std::fs::create_dir_all(&output_dir).expect("Failed to create include directory");

    let output_file = output_dir.join("guitar_tuner.h");

    // Generate C bindings
    let config =
        cbindgen::Config::from_file("cbindgen.toml").expect("Failed to read cbindgen.toml");

    cbindgen::Builder::new()
        .with_crate(crate_dir)
        .with_config(config)
        .generate()
        .expect("Failed to generate bindings")
        .write_to_file(&output_file);

    println!("cargo:rerun-if-changed=src/ffi/bindings.rs");
    println!("cargo:rerun-if-changed=src/ffi/types.rs");
    println!("cargo:rerun-if-changed=cbindgen.toml");
}