diff options
Diffstat (limited to 'impls/monero_rust/build.rs')
| -rw-r--r-- | impls/monero_rust/build.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/impls/monero_rust/build.rs b/impls/monero_rust/build.rs index 47c41a6..c3dd63a 100644 --- a/impls/monero_rust/build.rs +++ b/impls/monero_rust/build.rs @@ -5,6 +5,8 @@ fn main() { println!("cargo:rerun-if-changed=build.rs"); let lib_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()).join("lib"); + let monero_include_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()) + .join("../../monero_libwallet2_api_c/src/main/cpp/"); println!("cargo:rustc-link-search=native={}", lib_dir.display()); println!("cargo:rustc-link-lib=dylib=wallet2_api_c"); @@ -12,4 +14,17 @@ fn main() { println!("cargo:rustc-link-lib=dylib=hidapi-hidraw"); println!("cargo:rustc-link-arg-bin=monero_rust=-Wl,-rpath,$ORIGIN/../../lib"); + + // Generate Rust bindings. + let bindings = bindgen::Builder::default() + .header("../../monero_libwallet2_api_c/src/main/cpp/wallet2_api_c.h") + .clang_arg(format!("-I{}", monero_include_dir.display())) + .generate() + .expect("Unable to generate bindings"); + let out_path = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()) + .join("src") + .join("bindings.rs"); + bindings + .write_to_file(&out_path) + .expect("Couldn't write bindings!"); } |
