meson: Fix Python library name fetching on Windows

`python.get_variable('FOO', [])` becomes `python.get_variable('FOO')`
due to how Meson treats empty arrays in arguments, which breaks the
fallback feature of get_variable().

So we need to actually check whether the variable exists before trying
to fetch it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6734>
This commit is contained in:
Nirbheek Chauhan 2024-04-26 02:59:37 +05:30 committed by GStreamer Marge Bot
parent 7074849c5c
commit 753aeccde7

View file

@ -55,9 +55,13 @@ elif host_system == 'darwin'
endif endif
pylib_fnames = [] pylib_fnames = []
# Library name with soversion, non-devel package # Library name with soversion, non-devel package
pylib_fnames += python.get_variable('INSTSONAME', []) if python.has_variable('INSTSONAME')
pylib_fnames += python.get_variable('INSTSONAME')
endif
# Library name without soversion, devel package, framework, etc. # Library name without soversion, devel package, framework, etc.
pylib_fnames += python.get_variable('LDLIBRARY', []) if python.has_variable('LDLIBRARY')
pylib_fnames += python.get_variable('LDLIBRARY')
endif
# Manually construct name as a fallback # Manually construct name as a fallback
pylib_fnames += [ pylib_fnames += [
pylib_prefix + 'python' + python_dep.version() + python_abi_flags + '.' + pylib_suffix pylib_prefix + 'python' + python_dep.version() + python_abi_flags + '.' + pylib_suffix
@ -81,12 +85,7 @@ foreach loc: pylib_locs
endforeach endforeach
endforeach endforeach
if pylib_fname == '' if pylib_fname == ''
error_msg = 'Could not find python library to load' message('Could not find python library to load, will try loading at runtime')
if python_opt.enabled()
error(error_msg)
else
message(error_msg)
endif
endif endif
pygi_override_dir = get_option('pygi-overrides-dir') pygi_override_dir = get_option('pygi-overrides-dir')