Files
drop-app/src-tauri/tailscale/build.rs
2025-05-14 10:01:26 +10:00

37 lines
1.1 KiB
Rust

extern crate bindgen;
use abs_file_macro::abs_file;
use std::path::PathBuf;
use std::process::Command;
fn main() {
let build_folder = PathBuf::from(abs_file!());
let build_folder = build_folder.parent().unwrap();
let in_path = build_folder.join("libtailscale");
let out_path = build_folder.join("src/");
let mut make_cmd = Command::new("make");
make_cmd.arg("c-archive");
make_cmd.current_dir(in_path.clone());
make_cmd.status().expect("Make build failed");
let bindings = bindgen::Builder::default()
.header(in_path.join("libtailscale.h").to_str().unwrap())
.parse_callbacks(Box::new(bindgen::CargoCallbacks::new()))
.generate()
.expect("Unable to generate bindings");
bindings
.write_to_file(out_path.join("bindings.rs"))
.expect("Couldn't write bindings!");
println!("cargo:rerun-if-changed=libtailscale/tailscale.go");
println!(
"cargo:rustc-link-search=native={}",
in_path.to_str().unwrap()
);
println!("cargo:rustc-link-lib=static={}", "tailscale");
}