Add Soong config variable for libgbm build variants
minigbm has platform dependent compile flags that need to be set
correctly to work on the chipset (e.g. -DDRV_I915 on Intel devices). The
libminigbm_gralloc_* variants had set them, but the libgbm doesn't. This
CL introduces a Soong config variable "platform" under "minigbm"
namespace to control libgbm build variants, and apply the flags from
gralloc library to each variant.
Device .mk's can set it like:
$(call soong_config_set, minigbm, platform, intel)
Refer to
https://crsrc.org/o/src/third_party/chromiumos-overlay/media-libs/minigbm/minigbm-9999.ebuild
for ChromiumOS configuration of the compile flags.
Bug: 362894809
Test: m libgbm
Change-Id: I64d03604902072da85643c932832064a2425e25b
diff --git a/Android.bp b/Android.bp
index ce5977a..9ade3ba 100644
--- a/Android.bp
+++ b/Android.bp
@@ -142,6 +142,16 @@
srcs: [":minigbm_gralloc0_files"],
}
+generic_cflags = ["-DHAS_DMABUF_SYSTEM_HEAP"]
+intel_cflags = ["-DDRV_I915"]
+meson_cflags = ["-DDRV_MESON"]
+msm_cflags = [
+ "-DDRV_MSM",
+ "-DQCOM_DISABLE_COMPRESSED_NV12",
+ "-DHAS_DMABUF_SYSTEM_HEAP",
+]
+arcvm_cflags = ["-DVIRTIO_GPU_NEXT"]
+
cc_library {
name: "libgbm",
defaults: ["minigbm_defaults"],
@@ -153,6 +163,15 @@
"gbm_helpers.c",
],
+ cflags: select(soong_config_variable("minigbm", "platform"), {
+ "generic": generic_cflags,
+ "intel": intel_cflags,
+ "meson": meson_cflags,
+ "msm": msm_cflags,
+ "arcvm": arcvm_cflags,
+ default: [],
+ }),
+
target: {
host: {
// Avoid linking to another host copy of libdrm; this library will cause
@@ -211,7 +230,7 @@
cc_library_shared {
name: "libminigbm_gralloc",
defaults: ["minigbm_cros_gralloc_library_defaults"],
- cflags: ["-DHAS_DMABUF_SYSTEM_HEAP"],
+ cflags: generic_cflags,
}
cc_library_shared {
@@ -234,7 +253,7 @@
cc_library_shared {
name: "libminigbm_gralloc_intel",
defaults: ["minigbm_cros_gralloc_library_defaults"],
- cflags: ["-DDRV_I915"],
+ cflags: intel_cflags,
enabled: false,
arch: {
x86: {
@@ -265,7 +284,7 @@
cc_library_shared {
name: "libminigbm_gralloc_meson",
defaults: ["minigbm_cros_gralloc_library_defaults"],
- cflags: ["-DDRV_MESON"],
+ cflags: meson_cflags,
}
cc_library_shared {
@@ -278,11 +297,7 @@
cc_library_shared {
name: "libminigbm_gralloc_msm",
defaults: ["minigbm_cros_gralloc_library_defaults"],
- cflags: [
- "-DDRV_MSM",
- "-DQCOM_DISABLE_COMPRESSED_NV12",
- "-DHAS_DMABUF_SYSTEM_HEAP",
- ],
+ cflags: msm_cflags,
}
cc_library_shared {
@@ -295,7 +310,7 @@
cc_library_shared {
name: "libminigbm_gralloc_arcvm",
defaults: ["minigbm_cros_gralloc_library_defaults"],
- cflags: ["-DVIRTIO_GPU_NEXT"],
+ cflags: arcvm_cflags,
}
cc_library_shared {