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 {