diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-13 21:02:52 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-13 21:23:36 -0400 |
commit | a5bb65437722874bfca5d7ea3db542a5482385eb (patch) | |
tree | ee9b2b47fc4eabb60d27a90d07ff7ef9c9a0eab3 /mesonbuild/modules | |
parent | 4680c09aac3dc97436357ba6c8a7ac64132a1830 (diff) | |
download | meson-a5bb65437722874bfca5d7ea3db542a5482385eb.zip meson-a5bb65437722874bfca5d7ea3db542a5482385eb.tar.gz meson-a5bb65437722874bfca5d7ea3db542a5482385eb.tar.bz2 |
gnome module: fix crash due to misused function while generating gir command
In commit 68e684d51f1e469e0d9f4b499ffda15146cad98a the _get_link_args
function was modified from returning a list[str] of arguments, to a
tuple of both that and a modified copy of the entire target's
current/enhanced dependencies (why not just the new ones? I don't know).
However, the existing use of the function was not adapted to this
change, and tried to turn this entire tuple into a node of the command
line. Tuples cannot flatten to lists, and mesonlib.File or
HoldableObjects don't make good command line arguments.
As a result we errored out with:
ERROR: Argument (['-L/path/to/builddir/', '--extra-library=foo'], [<SharedLibrary 25a6634@@foo@sha: foo>, <SharedLibrary 25a6634@@foo@sha: foo>, <SharedLibrary 25a6634@@foo@sha: foo>]) in "command" is invalid
Split out the flags and the dependencies and update the former while
replacing the latter.
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r-- | mesonbuild/modules/gnome.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index f908a83..8eebcbf 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -1132,9 +1132,9 @@ class GnomeModule(ExtensionModule): scan_command += ['-I' + srcdir, '-I' + builddir] scan_command += state.get_include_args(girtargets_inc_dirs) scan_command += ['--filelist=' + self._make_gir_filelist(state, srcdir, ns, nsversion, girtargets, libsources)] - scan_command += mesonlib.listify([self._get_link_args(state, l, depends, use_gir_args=True) - for l in kwargs['link_with']]) - + for l in kwargs['link_with']: + _cflags, depends = self._get_link_args(state, l, depends, use_gir_args=True) + scan_command.extend(_cflags) _cmd, _ginc, _deps = self._scan_include(state, kwargs['includes']) scan_command.extend(_cmd) gir_inc_dirs.extend(_ginc) |