mirror of
https://github.com/Drop-OSS/drop-app.git
synced 2025-11-15 01:01:25 +10:00
chore: libtailscale rust build
This commit is contained in:
36
src-tauri/tailscale/build.rs
Normal file
36
src-tauri/tailscale/build.rs
Normal file
@ -0,0 +1,36 @@
|
||||
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");
|
||||
}
|
||||
Reference in New Issue
Block a user