From b5e90fe5791bfe28f1660708dcce1f98edd64f4c Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 31 Aug 2022 18:44:14 -0400 Subject: [PATCH] meson: Rename plugins list and make them "dependency" objects Part-of: --- meson.build | 30 ++++++++++++-------- subprojects/gst-devtools/meson.build | 17 +++++++++++ subprojects/gst-editing-services/meson.build | 4 +++ subprojects/gst-libav/meson.build | 8 ++++++ subprojects/gst-plugins-bad/meson.build | 4 +++ subprojects/gst-plugins-base/meson.build | 4 +++ subprojects/gst-plugins-good/meson.build | 4 +++ subprojects/gst-plugins-ugly/meson.build | 4 +++ subprojects/gst-rtsp-server/meson.build | 17 +++++++++++ subprojects/gstreamer-vaapi/meson.build | 20 +++++++++++++ subprojects/gstreamer/meson.build | 4 +++ 11 files changed, 104 insertions(+), 12 deletions(-) diff --git a/meson.build b/meson.build index e338a11eea..7cb37f9924 100644 --- a/meson.build +++ b/meson.build @@ -173,8 +173,17 @@ foreach sp : subprojects endif if subproj.found() - plugins = subproj.get_variable('plugins', []) + plugins = subproj.get_variable('gst_plugins', []) all_plugins += plugins + if subproj.get_variable('gst_plugins', []).length() != subproj.get_variable('plugins', plugins).length() + warning(f'DEPRECATED use of the `plugins` variable in @project_name@.') + warning('The variable should now be called `gst_plugins` and use:') + warning('`declare_dependency( link_with: , variable: {\'full_path\': .full_path()})` instead') + foreach plugin: subproj.get_variable('plugins', []) + all_plugins += [declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()})] + endforeach + endif + all_libraries += subproj.get_variable('libraries', []) if not get_option('tools').disabled() all_tools += subproj.get_variable('gst_tools', {}) @@ -185,9 +194,7 @@ foreach sp : subprojects subprojects_names += [project_name] if not meson.is_cross_build() and build_infos.get('build-hotdoc', false) - if plugins.length() > 0 - plugins_doc_caches += [subproj.get_variable('plugins_doc_dep', [])] - endif + plugins_doc_caches += [subproj.get_variable('plugins_doc_dep', [])] if documented_projects != '' documented_projects += ',' endif @@ -252,10 +259,14 @@ endif all_plugins_paths = [] all_plugins_dirs = [] +plugins_names = [] foreach plugin: all_plugins - all_plugins_paths += plugin.full_path() - all_plugins_dirs += fs.parent(plugin.full_path()) + plugin_path = plugin.get_variable('full_path') + all_plugins_paths += plugin_path + all_plugins_dirs += fs.parent(plugin_path) + plugins_names += plugin_path endforeach + # Work around meson bug: https://github.com/mesonbuild/meson/pull/6770 pathsep = host_machine.system() == 'windows' ? ';' : ':' all_plugins_paths = pathsep.join(all_plugins_paths) @@ -295,10 +306,6 @@ if building_full gst_c_args = ['-DHAVE_CONFIG_H'] # Generate a .c file which declare and register all built plugins - plugins_names = [] - foreach plugin: all_plugins - plugins_names += plugin.full_path() - endforeach all_plugin_names = ';'.join(plugins_names) static_plugins = get_option('gst-full-plugins') @@ -380,10 +387,9 @@ if building_full # Build both shared and static library gstfull = both_libraries('gstreamer-full-1.0', init_static_plugins_c, - link_with : all_plugins, link_args: gstfull_link_args, link_whole : exposed_libs, - dependencies : incdir_deps + glib_deps, + dependencies : [incdir_deps, glib_deps, all_plugins], link_depends : link_deps, install : true, ) diff --git a/subprojects/gst-devtools/meson.build b/subprojects/gst-devtools/meson.build index d789d25fb1..341c78a1a2 100644 --- a/subprojects/gst-devtools/meson.build +++ b/subprojects/gst-devtools/meson.build @@ -167,3 +167,20 @@ if not get_option('debug_viewer').disabled() subdir('debug-viewer') endif subdir('docs') + +plugin_names = [] +gst_plugins = [] +foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] + if plugin.name().startswith('gst') + plugin_names += [plugin.name().substring(3)] + else + plugin_names += [plugin.name()] + endif +endforeach + +summary({ + 'Plugins': plugin_names, +}, list_sep: ', ') diff --git a/subprojects/gst-editing-services/meson.build b/subprojects/gst-editing-services/meson.build index 996bcf01ee..94c0d638d4 100644 --- a/subprojects/gst-editing-services/meson.build +++ b/subprojects/gst-editing-services/meson.build @@ -337,7 +337,11 @@ endif configure_file(output: 'config.h', configuration: cdata) plugin_names = [] +gst_plugins = [] foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] if plugin.name().startswith('gst') plugin_names += [plugin.name().substring(3)] else diff --git a/subprojects/gst-libav/meson.build b/subprojects/gst-libav/meson.build index c4b400f29b..e2a3fa5d3c 100644 --- a/subprojects/gst-libav/meson.build +++ b/subprojects/gst-libav/meson.build @@ -229,3 +229,11 @@ if gst_version_nano == 0 endif configure_file(output: 'config.h', configuration: cdata) + +gst_plugins = [] +foreach plugin: plugins + pkgconfig.generate(plugin, install_dir: plugins_pkgconfig_install_dir) + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] +endforeach diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build index 681bfe9b7b..132c0d4f50 100644 --- a/subprojects/gst-plugins-bad/meson.build +++ b/subprojects/gst-plugins-bad/meson.build @@ -595,7 +595,11 @@ configure_file(output : 'config.h', configuration : cdata) subdir('docs') plugin_names = [] +gst_plugins = [] foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] if plugin.name().startswith('gst') plugin_names += [plugin.name().substring(3)] else diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build index 267bb3cc61..6cd7360253 100644 --- a/subprojects/gst-plugins-base/meson.build +++ b/subprojects/gst-plugins-base/meson.build @@ -545,7 +545,11 @@ endif configure_file(output : 'config.h', configuration : core_conf) plugin_names = [] +gst_plugins = [] foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] if plugin.name().startswith('gst') plugin_names += [plugin.name().substring(3)] else diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build index ac658b2e69..8490cfc981 100644 --- a/subprojects/gst-plugins-good/meson.build +++ b/subprojects/gst-plugins-good/meson.build @@ -510,7 +510,11 @@ endif configure_file(output : 'config.h', configuration : cdata) plugin_names = [] +gst_plugins = [] foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] if plugin.name().startswith('gst') plugin_names += [plugin.name().substring(3)] else diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build index 6ca84bb2d5..0e8e4b5952 100644 --- a/subprojects/gst-plugins-ugly/meson.build +++ b/subprojects/gst-plugins-ugly/meson.build @@ -321,7 +321,11 @@ endif configure_file(output : 'config.h', configuration : cdata) plugin_names = [] +gst_plugins = [] foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] if plugin.name().startswith('gst') plugin_names += [plugin.name().substring(3)] else diff --git a/subprojects/gst-rtsp-server/meson.build b/subprojects/gst-rtsp-server/meson.build index 7eee6936bc..afbf5d37c4 100644 --- a/subprojects/gst-rtsp-server/meson.build +++ b/subprojects/gst-rtsp-server/meson.build @@ -212,3 +212,20 @@ if gst_version_nano == 0 endif configure_file(output: 'config.h', configuration: cdata) + +plugin_names = [] +gst_plugins = [] +foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] + if plugin.name().startswith('gst') + plugin_names += [plugin.name().substring(3)] + else + plugin_names += [plugin.name()] + endif +endforeach + +summary({ + 'Plugins': plugin_names, +}, list_sep: ', ') diff --git a/subprojects/gstreamer-vaapi/meson.build b/subprojects/gstreamer-vaapi/meson.build index 1d445cc0f0..101d4cecd1 100644 --- a/subprojects/gstreamer-vaapi/meson.build +++ b/subprojects/gstreamer-vaapi/meson.build @@ -236,3 +236,23 @@ if gmodule_dep.version().version_compare('< 2.67.4') endif configure_file(output: 'config.h', configuration: cdata) + +pkgconfig = import('pkgconfig') +plugins_pkgconfig_install_dir = join_paths(plugins_install_dir, 'pkgconfig') + +plugin_names = [] +gst_plugins = [] +foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] + if plugin.name().startswith('gst') + plugin_names += [plugin.name().substring(3)] + else + plugin_names += [plugin.name()] + endif +endforeach + +summary({ + 'Plugins': plugin_names, +}, list_sep: ', ') diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build index 06e984679f..416fbddbe8 100644 --- a/subprojects/gstreamer/meson.build +++ b/subprojects/gstreamer/meson.build @@ -653,7 +653,11 @@ configure_file(output : 'config.h', configuration : cdata) install_data('gst-element-check-1.0.m4', install_dir : join_paths(get_option('datadir'), 'aclocal')) plugin_names = [] +gst_plugins = [] foreach plugin: plugins + dep = declare_dependency(link_with: plugin, variables: {'full_path': plugin.full_path()}) + meson.override_dependency(plugin.name(), dep) + gst_plugins += [dep] if plugin.name().startswith('gst') plugin_names += [plugin.name().substring(3)] else