From 6662331bbf1e5d46a7256f7dd0453a523da28bfc Mon Sep 17 00:00:00 2001 From: 0neSe7en Date: Tue, 7 Sep 2021 15:46:23 +0800 Subject: [PATCH 1/2] feat: add wasm-unknown-emscripten target support --- build.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/build.rs b/build.rs index 7e9fe81..60c084a 100644 --- a/build.rs +++ b/build.rs @@ -631,6 +631,7 @@ fn main() { fn thread_main() { let statik = env::var("CARGO_FEATURE_STATIC").is_ok(); + let is_wasm_emscripten = env::var("TARGET").unwrap() == "wasm32-unknown-emscripten"; let include_paths: Vec = if env::var("CARGO_FEATURE_BUILD").is_ok() { println!( @@ -1170,6 +1171,13 @@ fn thread_main() { .size_t_is_usize(true) .parse_callbacks(Box::new(Callbacks)); + if is_wasm_emscripten { + let emsdk_path = PathBuf::from(env::var("EMSDK").unwrap()); + let emsdk_sysroot = emsdk_path.join("upstream/emscripten/cache/sysroot"); + builder = builder + .clang_arg(format!("--sysroot={}", emsdk_sysroot.to_string_lossy())); + } + // The input headers we would like to generate // bindings for. if env::var("CARGO_FEATURE_AVCODEC").is_ok() { From 28a4a16af15640e76196d5fd911875a98f171287 Mon Sep 17 00:00:00 2001 From: 0neSe7en Date: Tue, 7 Sep 2021 17:10:14 +0800 Subject: [PATCH 2/2] fix: add clang arg -fvisibility=default https://github.com/rust-lang/rust-bindgen/issues/1941 --- build.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/build.rs b/build.rs index 60c084a..9d47891 100644 --- a/build.rs +++ b/build.rs @@ -1074,6 +1074,7 @@ fn thread_main() { // the resulting bindings. let mut builder = bindgen::Builder::default() .clang_args(clang_includes) + .clang_arg("-fvisibility=default") .ctypes_prefix("libc") // https://github.com/rust-lang/rust-bindgen/issues/550 .blocklist_type("max_align_t")