mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-11-29 06:50:59 +00:00
meson: Handle features needed only by examples separately
Currently we incorrectly require gtk4 to build the fallbackswitch, livesync, togglerecord plugins when the examples option is allowed. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1604>
This commit is contained in:
parent
4c9ed330c8
commit
6538803cf6
1 changed files with 29 additions and 6 deletions
35
meson.build
35
meson.build
|
@ -312,18 +312,21 @@ if examples_opt.allowed() and 'gtk4' in plugins
|
|||
plugins += {
|
||||
'fallbackswitch': {
|
||||
'library': 'libgstfallbackswitch',
|
||||
'examples': ['gtk-fallbackswitch'],
|
||||
'features': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||
'examples_features': {
|
||||
'gtk-fallbackswitch': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||
},
|
||||
},
|
||||
'livesync': {
|
||||
'library': 'libgstlivesync',
|
||||
'examples': ['gtk-livesync'],
|
||||
'features': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||
'examples_features': {
|
||||
'gtk-livesync': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||
}
|
||||
},
|
||||
'togglerecord': {
|
||||
'library': 'libgsttogglerecord',
|
||||
'examples': ['gtk-recording'],
|
||||
'features': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||
'examples_features': {
|
||||
'gtk-recording': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||
}
|
||||
},
|
||||
}
|
||||
else
|
||||
|
@ -454,6 +457,26 @@ foreach plugin_name, details: plugins
|
|||
examples += example
|
||||
endforeach
|
||||
|
||||
plugin_examples_features = details.get('examples_features', {})
|
||||
foreach example, examples_features: plugin_examples_features
|
||||
example_deps_found = true
|
||||
foreach feature: examples_features
|
||||
if feature.startswith('gst-plugin') and not packages.contains(feature)
|
||||
msg = f'@plugin_name@ example @example@ required feature @feature@ not found'
|
||||
if plugin_opt.enabled() and examples_opt.enabled()
|
||||
error(msg)
|
||||
endif
|
||||
message(msg + ', skipping')
|
||||
example_deps_found = false
|
||||
break
|
||||
endif
|
||||
endforeach
|
||||
features += examples_features
|
||||
if example_deps_found
|
||||
examples += example
|
||||
endif
|
||||
endforeach
|
||||
|
||||
packages += f'gst-plugin-@plugin_name@'
|
||||
features += plugin_features
|
||||
extra_features = run_command('dependencies.py', meson.current_source_dir(), plugin_name,
|
||||
|
|
Loading…
Reference in a new issue