mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-04-29 13:05:00 +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/1614>
This commit is contained in:
parent
44a8a05aa3
commit
ef09a54b32
1 changed files with 50 additions and 26 deletions
76
meson.build
76
meson.build
|
@ -204,32 +204,6 @@ plugins = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if get_option('examples').allowed()
|
|
||||||
plugins += {
|
|
||||||
'fallbackswitch': {
|
|
||||||
'library': 'libgstfallbackswitch',
|
|
||||||
'examples': ['gtk-fallbackswitch'],
|
|
||||||
'features': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
|
||||||
},
|
|
||||||
'livesync': {
|
|
||||||
'library': 'libgstlivesync',
|
|
||||||
'examples': ['gtk-livesync'],
|
|
||||||
'features': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
|
||||||
},
|
|
||||||
'togglerecord': {
|
|
||||||
'library': 'libgsttogglerecord',
|
|
||||||
'examples': ['gtk-recording'],
|
|
||||||
'features': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
|
||||||
},
|
|
||||||
}
|
|
||||||
else
|
|
||||||
plugins += {
|
|
||||||
'fallbackswitch': { 'library': 'libgstfallbackswitch'},
|
|
||||||
'livesync': { 'library': 'libgstlivesync'},
|
|
||||||
'togglerecord': { 'library': 'libgsttogglerecord'},
|
|
||||||
}
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Won't build on platforms where it bundles the sources because of:
|
# Won't build on platforms where it bundles the sources because of:
|
||||||
# https://github.com/qnighy/libwebp-sys2-rs/issues/12
|
# https://github.com/qnighy/libwebp-sys2-rs/issues/12
|
||||||
# the fix is:
|
# the fix is:
|
||||||
|
@ -329,6 +303,36 @@ if get_option('gtk4').allowed()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
examples_opt = get_option('examples')
|
||||||
|
if examples_opt.allowed() and 'gtk4' in plugins
|
||||||
|
plugins += {
|
||||||
|
'fallbackswitch': {
|
||||||
|
'library': 'libgstfallbackswitch',
|
||||||
|
'examples_features': {
|
||||||
|
'gtk-fallbackswitch': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'livesync': {
|
||||||
|
'library': 'libgstlivesync',
|
||||||
|
'examples_features': {
|
||||||
|
'gtk-livesync': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'togglerecord': {
|
||||||
|
'library': 'libgsttogglerecord',
|
||||||
|
'examples_features': {
|
||||||
|
'gtk-recording': ['gtk', 'gio', 'gst-plugin-gtk4'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
else
|
||||||
|
plugins += {
|
||||||
|
'fallbackswitch': { 'library': 'libgstfallbackswitch'},
|
||||||
|
'livesync': { 'library': 'libgstlivesync'},
|
||||||
|
'togglerecord': { 'library': 'libgsttogglerecord'},
|
||||||
|
}
|
||||||
|
endif
|
||||||
|
|
||||||
# Process plugins list
|
# Process plugins list
|
||||||
|
|
||||||
default_library = get_option('default_library')
|
default_library = get_option('default_library')
|
||||||
|
@ -438,6 +442,26 @@ foreach plugin_name, details: plugins
|
||||||
examples += example
|
examples += example
|
||||||
endforeach
|
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@'
|
packages += f'gst-plugin-@plugin_name@'
|
||||||
features += plugin_features
|
features += plugin_features
|
||||||
extra_features = run_command('dependencies.py', meson.current_source_dir(), plugin_name,
|
extra_features = run_command('dependencies.py', meson.current_source_dir(), plugin_name,
|
||||||
|
|
Loading…
Reference in a new issue