Files
wasmtime/wasmtime-wasi/build.rs
Jakub Konka 86b7a52009 Port host::__wasi_errno_t errors to Rust
They are now blacklisted in the bindgen.
2019-04-29 23:33:40 -07:00

114 lines
4.4 KiB
Rust

extern crate bindgen;
extern crate cmake;
use cmake::Config;
use std::env;
use std::path::PathBuf;
fn main() {
let dst = Config::new("sandboxed-system-primitives").build();
println!("cargo:rustc-link-search=native={}", dst.display());
println!("cargo:rustc-link-lib=static=SandboxedSystemPrimitives");
let bindings_builder = bindgen::Builder::default()
.header("sandboxed-system-primitives/include/wasmtime_ssp.h")
.header("sandboxed-system-primitives/src/posix.h")
.whitelist_function("wasmtime_ssp_.*")
.whitelist_function("fd_table_init")
.whitelist_function("fd_table_insert_existing")
.whitelist_function("fd_prestats_init")
.whitelist_function("fd_prestats_insert")
.whitelist_function("argv_environ_init")
.whitelist_type("__wasi_.*")
.whitelist_type("fd_table")
.whitelist_type("fd_prestats")
.whitelist_type("argv_environ_values")
.whitelist_var("__WASI_.*")
.blacklist_item("__WASI_ESUCCESS")
.blacklist_item("__WASI_E2BIG")
.blacklist_item("__WASI_EACCES")
.blacklist_item("__WASI_EADDRINUSE")
.blacklist_item("__WASI_EADDRNOTAVAIL")
.blacklist_item("__WASI_EAFNOSUPPORT")
.blacklist_item("__WASI_EAGAIN")
.blacklist_item("__WASI_EALREADY")
.blacklist_item("__WASI_EBADF")
.blacklist_item("__WASI_EBADMSG")
.blacklist_item("__WASI_EBUSY")
.blacklist_item("__WASI_ECANCELED")
.blacklist_item("__WASI_ECHILD")
.blacklist_item("__WASI_ECONNABORTED")
.blacklist_item("__WASI_ECONNREFUSED")
.blacklist_item("__WASI_ECONNRESET")
.blacklist_item("__WASI_EDEADLK")
.blacklist_item("__WASI_EDESTADDRREQ")
.blacklist_item("__WASI_EDOM")
.blacklist_item("__WASI_EDQUOT")
.blacklist_item("__WASI_EEXIST")
.blacklist_item("__WASI_EFAULT")
.blacklist_item("__WASI_EFBIG")
.blacklist_item("__WASI_EHOSTUNREACH")
.blacklist_item("__WASI_EIDRM")
.blacklist_item("__WASI_EILSEQ")
.blacklist_item("__WASI_EINPROGRESS")
.blacklist_item("__WASI_EINTR")
.blacklist_item("__WASI_EINVAL")
.blacklist_item("__WASI_EIO")
.blacklist_item("__WASI_EISCONN")
.blacklist_item("__WASI_EISDIR")
.blacklist_item("__WASI_ELOOP")
.blacklist_item("__WASI_EMFILE")
.blacklist_item("__WASI_EMLINK")
.blacklist_item("__WASI_EMSGSIZE")
.blacklist_item("__WASI_EMULTIHOP")
.blacklist_item("__WASI_ENAMETOOLONG")
.blacklist_item("__WASI_ENETDOWN")
.blacklist_item("__WASI_ENETRESET")
.blacklist_item("__WASI_ENETUNREACH")
.blacklist_item("__WASI_ENFILE")
.blacklist_item("__WASI_ENOBUFS")
.blacklist_item("__WASI_ENODEV")
.blacklist_item("__WASI_ENOENT")
.blacklist_item("__WASI_ENOEXEC")
.blacklist_item("__WASI_ENOLCK")
.blacklist_item("__WASI_ENOLINK")
.blacklist_item("__WASI_ENOMEM")
.blacklist_item("__WASI_ENOMSG")
.blacklist_item("__WASI_ENOPROTOOPT")
.blacklist_item("__WASI_ENOSPC")
.blacklist_item("__WASI_ENOSYS")
.blacklist_item("__WASI_ENOTCONN")
.blacklist_item("__WASI_ENOTDIR")
.blacklist_item("__WASI_ENOTEMPTY")
.blacklist_item("__WASI_ENOTRECOVERABLE")
.blacklist_item("__WASI_ENOTSOCK")
.blacklist_item("__WASI_ENOTSUP")
.blacklist_item("__WASI_ENOTTY")
.blacklist_item("__WASI_ENXIO")
.blacklist_item("__WASI_EOVERFLOW")
.blacklist_item("__WASI_EOWNERDEAD")
.blacklist_item("__WASI_EPERM")
.blacklist_item("__WASI_EPIPE")
.blacklist_item("__WASI_EPROTO")
.blacklist_item("__WASI_EPROTONOSUPPORT")
.blacklist_item("__WASI_EPROTOTYPE")
.blacklist_item("__WASI_ERANGE")
.blacklist_item("__WASI_EROFS")
.blacklist_item("__WASI_ESPIPE")
.blacklist_item("__WASI_ESRCH")
.blacklist_item("__WASI_ESTALE")
.blacklist_item("__WASI_ETIMEDOUT")
.blacklist_item("__WASI_ETXTBSY")
.blacklist_item("__WASI_EXDEV")
.blacklist_item("__WASI_ENOTCAPABLE");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings_builder
.generate()
.expect("Unable to generate bindings")
.write_to_file(out_path.join("wasmtime_ssp.rs"))
.expect("Couldn't write bindings!");
}