diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2023-03-11 00:41:50 +0300 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2023-03-12 12:16:34 +0300 |
commit | f88552ee7f7d51f260e3c365a0d2803551df571c (patch) | |
tree | 7e3eb697a01608ec8f684dda0cb5ed0efd7f8701 /meson.build | |
parent | f7c8940ff26c6ba7581dd142616cc0e235c470ae (diff) |
meson: Handle features detection for gst version in a script
Instead of having a big list of features in the meson.build file, we
reuse the information from the Cargo.toml files
This refactors the dependencies to handle that new use case
There were issue in previous handling and only activating the `webrtc`
plugin was failing because the list of features incorrect.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/295
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1130>
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/meson.build b/meson.build index 03c8cbbb8..942d64ebf 100644 --- a/meson.build +++ b/meson.build @@ -315,28 +315,6 @@ if get_option('gtk4').allowed() endif endif -if gst_dep.version().version_compare('>=1.21') - components = [ - '', '-app', '-audio', '-base', '-check', - '-rtp', '-sdp', '-utils', '-video', '-webrtc', - ] - if get_option('tracers').allowed() - components += '-plugin-tracers' - endif - if get_option('threadshare').allowed() - components += '-net' - endif - if get_option('mp4').allowed() or get_option('fmp4').allowed() - components += '-pbutils' - endif - foreach c: components - features += f'gst@c@/v1_22' - endforeach - if get_option('webrtc').allowed() - features += 'gst-plugin-webrtc/gst1_22' - endif -endif - if get_option('rav1e').allowed() and find_program('nasm', required: false).found() features += 'gst-plugin-rav1e/asm' endif @@ -359,6 +337,12 @@ foreach plugin_name, details: plugins if plugin_deps_found packages += f'gst-plugin-@plugin_name@' features += details.get('features', []) + extra_features = run_command('dependencies.py', meson.current_source_dir(), plugin_name, + '--feature', '--gst-version', gst_dep.version(), capture: true, check: true).stdout().strip() + if extra_features != '' + features += extra_features.split(',') + endif + examples += details.get('examples', []) lib = details.get('library') if default_library in ['shared', 'both'] |