build/gl: fix automatic dispmanx detection for rpi4
authorMatthew Waters <matthew@centricular.com>
Tue, 4 Oct 2022 04:39:51 +0000 (05:39 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 20 Oct 2022 22:29:16 +0000 (22:29 +0000)
rpi4 doesn't contain dispmanx but still contains bcm_host.pc which
confuses the configure detection.  Add an explicit check for
EGL_DISPMANX_WINDOW_T to ensure that we only build with dispmanx when
the types are available.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/893
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/952
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3230>

subprojects/gst-plugins-base/gst-libs/gst/gl/meson.build

index 346ab03..5085545 100644 (file)
@@ -690,7 +690,16 @@ if need_win_x11 != 'no'
 endif
 
 if need_win_dispmanx != 'no'
-  if bcm_host_dep.found()
+  have_dispmanx_window_t = cc.has_type(
+      'EGL_DISPMANX_WINDOW_T',
+      prefix: '''
+#include <bcm_host.h>
+#include <EGL/egl.h>
+''',
+      dependencies: [gl_lib_deps, egl_dep, bcm_host_dep],
+      include_directories: gl_includes)
+
+  if have_dispmanx_window_t and bcm_host_dep.found()
     if not egl_dep.found()
       error('dispmanx requires the use of egl')
     endif