diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-03-19 23:06:28 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-03-19 23:06:28 +0000 |
commit | f8cb5b211b1a166fb650ae86264e18240cb5dda5 (patch) | |
tree | 98337bc123e1f072a9b70bc1f4b2707c68b13e55 | |
parent | 29f09c54097b05f76e3bc4a8ddfab0c024e6c78e (diff) | |
parent | 65742c01dd3a6f879fe0f0617e4720a869a16aba (diff) | |
download | minigbm-sdk-release.tar.gz |
Snap for 11598262 from 65742c01dd3a6f879fe0f0617e4720a869a16aba to sdk-releasesdk-release
Change-Id: I17b4c16b9cf59095ea5bd00bb5c037b06ed6e74e
-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 |