summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.bp31
-rw-r--r--rust/gbm_wrapper.h28
2 files changed, 57 insertions, 2 deletions
diff --git a/Android.bp b/Android.bp
index f66e07c..e4761c1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -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