meson: fix GstPluginsPath.json generation

The refactored code was only adding paths to plugins in projects
that build hotdoc, which is not the case of gst-python for example
This commit is contained in:
Mathieu Duponchelle 2019-05-26 15:49:21 +02:00
parent 4c6b301fa0
commit 227c35b5d3

View file

@ -33,22 +33,22 @@ endif
# Ordered list of subprojects (dict has no ordering guarantees) # Ordered list of subprojects (dict has no ordering guarantees)
subprojects = [ subprojects = [
['gstreamer', {'build-hotdoc': true}], ['gstreamer', {'build-hotdoc': true, 'has-plugins': true}],
['gst-plugins-base', {'build-hotdoc': true}], ['gst-plugins-base', {'build-hotdoc': true, 'has-plugins': true}],
['gst-plugins-good', {'build-hotdoc': true}], ['gst-plugins-good', {'build-hotdoc': true, 'has-plugins': true}],
['libnice', { 'option': get_option('libnice'), 'match_gst_version': false}], ['libnice', { 'option': get_option('libnice'), 'match_gst_version': false}],
['gst-plugins-bad', { 'option': get_option('bad'), 'build-hotdoc': true }], ['gst-plugins-bad', { 'option': get_option('bad'), 'build-hotdoc': true, 'has-plugins': true}],
['gst-plugins-ugly', { 'option': get_option('ugly'), 'build-hotdoc': true }], ['gst-plugins-ugly', { 'option': get_option('ugly'), 'build-hotdoc': true, 'has-plugins': true}],
['gst-libav', { 'option': get_option('libav'), 'build-hotdoc': true }], ['gst-libav', { 'option': get_option('libav'), 'build-hotdoc': true, 'has-plugins': true}],
['gst-rtsp-server', { 'option': get_option('rtsp_server'), 'build-hotdoc': true }], ['gst-rtsp-server', { 'option': get_option('rtsp_server'), 'build-hotdoc': true }],
['gst-devtools', { 'option': get_option('devtools'), 'build-hotdoc': true }], ['gst-devtools', { 'option': get_option('devtools'), 'build-hotdoc': true }],
['gst-integration-testsuites', { 'option': get_option('devtools') }], ['gst-integration-testsuites', { 'option': get_option('devtools') }],
['gst-editing-services', { 'option': get_option('ges'), 'build-hotdoc': true }], ['gst-editing-services', { 'option': get_option('ges'), 'build-hotdoc': true, 'has-plugins': true}],
['gstreamer-vaapi', { 'option': get_option('vaapi'), 'build-hotdoc': true }], ['gstreamer-vaapi', { 'option': get_option('vaapi'), 'build-hotdoc': true, 'has-plugins': true}],
['gst-omx', { 'option': get_option('omx'), 'build-hotdoc': true, }], ['gst-omx', { 'option': get_option('omx'), 'build-hotdoc': true, 'has-plugins': true}],
['gstreamer-sharp', { 'option': get_option('sharp') }], ['gstreamer-sharp', { 'option': get_option('sharp') }],
['pygobject', { 'option': get_option('python'), 'match_gst_version': false }], ['pygobject', { 'option': get_option('python'), 'match_gst_version': false }],
['gst-python', { 'option': get_option('python') }], ['gst-python', { 'option': get_option('python'), 'has-plugins': true}],
] ]
python3 = import('python').find_installation() python3 = import('python').find_installation()
@ -83,24 +83,35 @@ foreach sp : subprojects
subproj = subproject(project_name, required: is_required) subproj = subproject(project_name, required: is_required)
endif endif
if subproj.found() and build_infos.has_key('build-hotdoc', default: false) if subproj.found()
plugins = subproj.get_variable('plugins') # Replace by using subproject.get_variable('plugins', [])
if plugins.length() > 0 # when https://github.com/mesonbuild/meson/pull/5426/files
plugins_doc_caches += [subproj.get_variable('plugins_doc_dep')] # is merged and released
if build_infos.has_key('has-plugins', default: false)
plugins = subproj.get_variable('plugins')
else
plugins = []
endif endif
foreach plugin: plugins foreach plugin: plugins
all_plugins += pathsep + plugin.full_path() all_plugins += pathsep + plugin.full_path()
endforeach endforeach
if documented_projects != ''
documented_projects += ','
endif
documented_projects += project_name
subprojects_names += [project_name] subprojects_names += [project_name]
cmdres = run_command(python3, '-c', symlink.format(project_name, meson.current_source_dir())) cmdres = run_command(python3, '-c', symlink.format(project_name, meson.current_source_dir()))
if cmdres.returncode() == 0 if cmdres.returncode() == 0
message('Created symlink to ' + project_name) message('Created symlink to ' + project_name)
endif endif
if build_infos.has_key('build-hotdoc', default: false)
if plugins.length() > 0
plugins_doc_caches += [subproj.get_variable('plugins_doc_dep')]
endif
if documented_projects != ''
documented_projects += ','
endif
documented_projects += project_name
endif
endif endif
endforeach endforeach