From b7bfcc32d1b3572fd09abfa61770c8dde31bdf3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 19 Dec 2017 15:06:22 +0000 Subject: [PATCH] meson: fix build with GstGL from gst-plugins-base as subproject - use right fallback variable - get platform/winsys variables from subproject instead of pkg-config With contributions from Thibault Saunier. --- meson.build | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/meson.build b/meson.build index 1fef56885f..3edc7272b1 100644 --- a/meson.build +++ b/meson.build @@ -325,20 +325,31 @@ endif # GStreamer OpenGL gstgl_dep = dependency('gstreamer-gl-1.0', version : gst_req, - fallback : ['gst-plugins-base', 'gl_dep'], required: false) + fallback : ['gst-plugins-base', 'gstgl_dep'], required: false) + build_gstgl = gstgl_dep.found() # FIXME: add option? -gst_gl_winsys = gstgl_dep.get_pkgconfig_variable('gl_winsys') -message('GStreamer OpenGL window systems: ' + gst_gl_winsys) -foreach ws : ['x11', 'wayland', 'android', 'cocoa', 'eagl'] - set_variable('gst_gl_have_window_@0@'.format(ws), gst_gl_winsys.contains(ws)) -endforeach +if build_gstgl + if gstgl_dep.type_name() == 'pkg' + gst_gl_winsys = gstgl_dep.get_pkgconfig_variable('gl_winsys') + gst_gl_platforms = gstgl_dep.get_pkgconfig_variable('gl_platforms') + else + gstbase = subproject('gst-plugins-base') + gst_gl_winsys = ' '.join(gstbase.get_variable('enabled_gl_winsys')) + gst_gl_platforms = ' '.join(gstbase.get_variable('enabled_gl_platforms')) + endif -gst_gl_platforms = gstgl_dep.get_pkgconfig_variable('gl_platforms') -message('GStreamer OpenGL platforms: ' + gst_gl_platforms) -foreach p : ['glx', 'egl', 'cgl', 'eagl'] - set_variable('gst_gl_have_platform_@0@'.format(p), gst_gl_platforms.contains(p)) -endforeach + message('GStreamer OpenGL window systems: ' + gst_gl_winsys) + message('GStreamer OpenGL platforms: ' + gst_gl_platforms) + + foreach ws : ['x11', 'wayland', 'android', 'cocoa', 'eagl', 'win32', 'dispmanx', 'viv_fb'] + set_variable('gst_gl_have_window_@0@'.format(ws), gst_gl_winsys.contains(ws)) + endforeach + + foreach p : ['glx', 'egl', 'cgl', 'eagl', 'wgl'] + set_variable('gst_gl_have_platform_@0@'.format(p), gst_gl_platforms.contains(p)) + endforeach +endif libm = cc.find_library('m', required : false) glib_dep = dependency('glib-2.0', version : glib_req,