build/gl: fix automatic dispmanx detection for rpi4

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/3246>
This commit is contained in:
Matthew Waters 2022-10-04 05:39:51 +01:00 committed by Tim-Philipp Müller
parent b7ae311c75
commit af92290306

View file

@ -689,7 +689,16 @@ if need_win_x11 != 'no'
endif endif
if need_win_dispmanx != 'no' 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() if not egl_dep.found()
error('dispmanx requires the use of egl') error('dispmanx requires the use of egl')
endif endif