vulkan: don't run tests or build lib if plugin isn't actually built
authorTim-Philipp Müller <tim@centricular.com>
Thu, 28 May 2020 18:07:32 +0000 (19:07 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 28 May 2020 18:07:32 +0000 (19:07 +0100)
The unit tests only checked for vulkan_dep.found(), which can
be true if the libs are there but glslc was not found, in which
case the plugin wouldn't be built and the unit tests would fail
because of missing vulkan plugins.

Doesn't really make much sense to build the vulkan integration lib
either if we're not going to build the vulkan plugin, so just disable
both for now if glslc is not available.

Fixes #1301

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1307>

ext/vulkan/meson.build
gst-libs/gst/vulkan/meson.build

index 03e50d0..80f8559 100644 (file)
@@ -10,10 +10,7 @@ if not gstvulkan_dep.found()
   endif
 endif
 
-glslc = find_program('glslc', required: get_option('vulkan'))
-if not glslc.found()
-  subdir_done()
-endif
+assert(glslc.found())
 
 subdir('shaders')
 
index 4897ec4..e35b555 100644 (file)
@@ -249,7 +249,11 @@ if not vulkan_windowing
   warning('No Windowing system found.  vulkansink will not work')
 endif
 
-if not vulkan_dep.found() or not has_vulkan_header
+# Only needed for the vulkan plugin, but doesn't make sense to build
+# anything else vulkan related if we are not going to build the plugin
+glslc = find_program('glslc', required: get_option('vulkan'))
+
+if not vulkan_dep.found() or not has_vulkan_header or not glslc.found()
   if get_option('vulkan').enabled()
     error('GStreamer Vulkan integration required via options, but needed dependencies not found.')
   else