Bug 1888590 - Mark some subtests on trusted-types-event-handlers.html as failing...
[gecko.git] / third_party / rust / pkcs11-bindings / build.rs
blob3582c298136d792ad71dfe0707cc42d090951a72
1 /* -*- Mode: rust; rust-indent-offset: 4 -*- */
3 extern crate bindgen;
5 use bindgen::callbacks::*;
6 use bindgen::*;
8 use std::env;
9 use std::path::PathBuf;
11 #[derive(Debug)]
12 struct PKCS11TypesParseCallbacks;
14 impl ParseCallbacks for PKCS11TypesParseCallbacks {
15     fn int_macro(&self, name: &str, _value: i64) -> Option<IntKind> {
16         if name == "CK_TRUE" || name == "CK_FALSE" {
17             Some(IntKind::U8)
18         } else {
19             Some(IntKind::ULong)
20         }
21     }
24 fn main() {
25     println!("cargo:rerun-if-changed=wrapper.h");
27     let bindings = Builder::default()
28         .header("wrapper.h")
29         .allowlist_function("C_GetFunctionList")
30         .allowlist_type("CK_RSA_PKCS_PSS_PARAMS")
31         .allowlist_type("CK_OBJECT_CLASS")
32         .allowlist_type("CK_KEY_TYPE")
33         .allowlist_type("CK_C_INITIALIZE_ARGS_PTR")
34         .allowlist_var("CK_TRUE")
35         .allowlist_var("CK_FALSE")
36         .allowlist_var("CK_UNAVAILABLE_INFORMATION")
37         .allowlist_var("CK_EFFECTIVELY_INFINITE")
38         .allowlist_var("CK_INVALID_HANDLE")
39         .allowlist_var("CKP_PUBLIC_CERTIFICATES_TOKEN")
40         .allowlist_var("CKA_.*")
41         .allowlist_var("CKC_.*")
42         .allowlist_var("CKD_.*")
43         .allowlist_var("CKF_.*")
44         .allowlist_var("CKK_.*")
45         .allowlist_var("CKM_.*")
46         .allowlist_var("CKO_.*")
47         .allowlist_var("CKR_.*")
48         .derive_default(true)
49         .parse_callbacks(Box::new(PKCS11TypesParseCallbacks))
50         .generate()
51         .expect("Unable to generate bindings");
53     let out_path = PathBuf::from(env::var("OUT_DIR").expect("OUT_DIR should be set in env"));
54     bindings
55         .write_to_file(out_path.join("bindings.rs"))
56         .expect("Couldn't write bindings!");