aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-03-13 21:02:52 -0400
committerEli Schwartz <eschwartz@archlinux.org>2022-03-13 21:23:36 -0400
commita5bb65437722874bfca5d7ea3db542a5482385eb (patch)
treeee9b2b47fc4eabb60d27a90d07ff7ef9c9a0eab3 /mesonbuild
parent4680c09aac3dc97436357ba6c8a7ac64132a1830 (diff)
downloadmeson-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')
-rw-r--r--mesonbuild/modules/gnome.py6
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)