mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 03:31:05 +00:00
Configure subprojects in the right order
Use an array instead of a dict to make sure we iterate over the list of subprojects in the right order, which is first GStreamer core, then gst-plugins-base, then other things. Without this subprojects might get configured in random order, in which case gstreamer or gst-plugins-base libs might get picked up via pkg-config if they are also available installed, instead of being picked up from the subproject. This breaks all kinds of assumptions in gst-build and will likely have strange effects and/or lead to build failures such as subprojects/gst-plugins-good/tests/check/meson.build:144:2: ERROR: 'gstreamer-plugins-base-1.0' is not a pkgconfig dependency
This commit is contained in:
parent
a9bcc8f0ee
commit
7ea556d034
1 changed files with 20 additions and 17 deletions
37
meson.build
37
meson.build
|
@ -30,22 +30,23 @@ if not meson.is_subproject() and cc.get_id() == 'msvc'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
subprojects = {
|
# Ordered list of subprojects (dict has no ordering guarantees)
|
||||||
'gstreamer': {},
|
subprojects = [
|
||||||
'gst-plugins-base': {},
|
['gstreamer', {}],
|
||||||
'gst-plugins-good': {},
|
['gst-plugins-base', {}],
|
||||||
'gst-plugins-bad': { 'option': get_option('bad') },
|
['gst-plugins-good', {}],
|
||||||
'gst-plugins-ugly': { 'option': get_option('ugly') },
|
['gst-plugins-bad', { 'option': get_option('bad') }],
|
||||||
'pygobject': { 'option': get_option('python') },
|
['gst-plugins-ugly', { 'option': get_option('ugly') }],
|
||||||
'gst-python': { 'option': get_option('python') },
|
['gst-libav', { 'option': get_option('libav') }],
|
||||||
'gst-omx': { 'option': get_option('omx'), },
|
['gst-rtsp-server', { 'option': get_option('rtsp_server') }],
|
||||||
'gst-libav': { 'option': get_option('libav') },
|
['gst-devtools', { 'option': get_option('devtools') }],
|
||||||
'gstreamer-vaapi': { 'option': get_option('vaapi') },
|
['gst-editing-services', { 'option': get_option('ges') }],
|
||||||
'gst-rtsp-server': { 'option': get_option('rtsp_server') },
|
['gstreamer-vaapi', { 'option': get_option('vaapi') }],
|
||||||
'gst-devtools': { 'option': get_option('devtools') },
|
['gst-omx', { 'option': get_option('omx'), }],
|
||||||
'gst-editing-services': { 'option': get_option('ges') },
|
['gstreamer-sharp', { 'option': get_option('sharp') }],
|
||||||
'gstreamer-sharp': { 'option': get_option('sharp') },
|
['pygobject', { 'option': get_option('python') }],
|
||||||
}
|
['gst-python', { 'option': get_option('python') }],
|
||||||
|
]
|
||||||
|
|
||||||
python3 = import('python3').find_python()
|
python3 = import('python3').find_python()
|
||||||
symlink = '''
|
symlink = '''
|
||||||
|
@ -63,7 +64,9 @@ endif
|
||||||
subproject('orc', required: get_option('orc'))
|
subproject('orc', required: get_option('orc'))
|
||||||
|
|
||||||
subprojects_names = []
|
subprojects_names = []
|
||||||
foreach project_name, build_infos: subprojects
|
foreach sp : subprojects
|
||||||
|
project_name = sp[0]
|
||||||
|
build_infos = sp[1]
|
||||||
is_required = build_infos.get('option', true)
|
is_required = build_infos.get('option', true)
|
||||||
subproj = subproject(project_name, version: gst_version, required: is_required)
|
subproj = subproject(project_name, version: gst_version, required: is_required)
|
||||||
if subproj.found()
|
if subproj.found()
|
||||||
|
|
Loading…
Reference in a new issue