summaryrefslogtreecommitdiff
path: root/exes/all-in-one/build.rs
blob: 25a4b99855c6a2e0b60eac55f12976e9c79518cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
extern crate cbindgen;

use cbindgen::{Config, Language};
use std::env;
use std::error::Error;
use std::path::PathBuf;

/// Generates the headers for the go program.
fn main() -> Result<(), Box<dyn Error>> {
    let crate_dir = env::var("CARGO_MANIFEST_DIR")?;
    let package_name = env::var("CARGO_PKG_NAME")?;

    // We export the header file to build/{package_name}.h
    let output_file = PathBuf::from("../../internal/pkg/all-in-one")
        .join(format!("{}.h", package_name))
        .display()
        .to_string();

    let config = Config {
        language: Language::C,
        ..Default::default()
    };

    cbindgen::generate_with_config(crate_dir, config)?.write_to_file(output_file);

    Ok(())
}