diff options
-rw-r--r-- | Android.bp | 31 | ||||
-rw-r--r-- | rust/gbm_wrapper.h | 28 |
2 files changed, 57 insertions, 2 deletions
@@ -163,7 +163,7 @@ cc_library { android: { shared_libs: [ "libcutils", - "liblog" + "liblog", ], static_libs: [ "libdrm", @@ -172,13 +172,40 @@ cc_library { }, apex_available: [ "//apex_available:platform", - "com.android.virt", + "//apex_available:anyapex", ], vendor_available: true, + product_available: true, export_include_dirs: ["."], } +// Rust bindings to minigbm, generated in a way compatible with gbm crate. +rust_bindgen { + name: "libgbm_sys", + crate_name: "gbm_sys", + wrapper_src: "rust/gbm_wrapper.h", + source_stem: "bindings", + bindgen_flags: [ + "--blocklist-type=__BINDGEN_TMP_.*", + "--allowlist-type=^gbm_.*$", + "--allowlist-function=^gbm_.*$", + "--allowlist-var=GBM_.*|gbm_.*$", + "--constified-enum-module=^gbm_.*$", + ], + shared_libs: ["libgbm"], + host_supported: true, + vendor_available: true, + product_available: true, + apex_available: [ + "//apex_available:anyapex", + "//apex_available:platform", + ], + visibility: [ + "//external/rust/crates/gbm", + ], +} + // Generic cc_library_shared { name: "libminigbm_gralloc", diff --git a/rust/gbm_wrapper.h b/rust/gbm_wrapper.h new file mode 100644 index 0000000..abcf3af --- /dev/null +++ b/rust/gbm_wrapper.h @@ -0,0 +1,28 @@ +/* + * Copyright 2024 Google LLC + */ + +#include <gbm.h> + +// bindgen doesn't create constants for macros that expand to other macros +// https://github.com/Smithay/gbm.rs/blob/606c4260e0147256fb5c2901bbe837c0dc7d9f2d/gbm-sys/build.rs#L16 + +const unsigned int __BINDGEN_TMP_GBM_BO_IMPORT_WL_BUFFER = GBM_BO_IMPORT_WL_BUFFER; +#undef GBM_BO_IMPORT_WL_BUFFER +const unsigned int GBM_BO_IMPORT_WL_BUFFER = __BINDGEN_TMP_GBM_BO_IMPORT_WL_BUFFER; +#define GBM_BO_IMPORT_WL_BUFFER GBM_BO_IMPORT_WL_BUFFER + +const unsigned int __BINDGEN_TMP_GBM_BO_IMPORT_EGL_IMAGE = GBM_BO_IMPORT_EGL_IMAGE; +#undef GBM_BO_IMPORT_EGL_IMAGE +const unsigned int GBM_BO_IMPORT_EGL_IMAGE = __BINDGEN_TMP_GBM_BO_IMPORT_EGL_IMAGE; +#define GBM_BO_IMPORT_EGL_IMAGE GBM_BO_IMPORT_EGL_IMAGE + +const unsigned int __BINDGEN_TMP_GBM_BO_IMPORT_FD = GBM_BO_IMPORT_FD; +#undef GBM_BO_IMPORT_FD +const unsigned int GBM_BO_IMPORT_FD = __BINDGEN_TMP_GBM_BO_IMPORT_FD; +#define GBM_BO_IMPORT_FD GBM_BO_IMPORT_FD + +const unsigned int __BINDGEN_TMP_GBM_BO_IMPORT_FD_MODIFIER = GBM_BO_IMPORT_FD_MODIFIER; +#undef GBM_BO_IMPORT_FD_MODIFIER +const unsigned int GBM_BO_IMPORT_FD_MODIFIER = __BINDGEN_TMP_GBM_BO_IMPORT_FD_MODIFIER; +#define GBM_BO_IMPORT_FD_MODIFIER GBM_BO_IMPORT_FD_MODIFIER |