meson: fix build with GstGL from gst-plugins-base as subproject
authorTim-Philipp Müller <tim@centricular.com>
Tue, 19 Dec 2017 15:06:22 +0000 (15:06 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 19 Dec 2017 15:07:48 +0000 (15:07 +0000)
- use right fallback variable
- get platform/winsys variables from subproject instead of pkg-config

With contributions from Thibault Saunier.

meson.build

index 1fef568..3edc727 100644 (file)
@@ -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,