diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-30 15:58:06 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2022-03-31 14:50:27 -0400 |
commit | 1cfead6647b23d2e50743bc36a41ab53466af6ce (patch) | |
tree | bcbdc551bd7a5724ecd3b30c5a85235fd09eb211 | |
parent | 34d39dce5749b2f8066e22a890d79170387b2bb4 (diff) | |
download | meson-1cfead6647b23d2e50743bc36a41ab53466af6ce.zip meson-1cfead6647b23d2e50743bc36a41ab53466af6ce.tar.gz meson-1cfead6647b23d2e50743bc36a41ab53466af6ce.tar.bz2 |
fix continued breakage in gnome module API
In commit 823da3990947a8f4a2152826f0d7229f8a7a0159 we tried to fix
disappearing dependencies. Instead, we appended the replacement
dependencies to the existing ones. But this, too, was wrong. The
function doesn't return new dependencies... it returns a copied list
of all the dependencies, then alone of all parts of that API, expects to
overwrite the existing variable.
(Sadly, part of the internals actually uses the entire list for
something.)
As a result, we produced a repeatedly growing list, which eventually
scaled really badly and e.g. OOMed on gstreamer.
Instead, let's just replace the dependencies with the updated copy.
-rw-r--r-- | mesonbuild/modules/gnome.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 5376d00..8c63647 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -675,14 +675,14 @@ class GnomeModule(ExtensionModule): internal_ldflags.update(libdepflags[1]) external_ldflags.update(libdepflags[2]) gi_includes.update(libdepflags[3]) - depends.extend(libdepflags[4]) + depends = libdepflags[4] extdepflags = self._get_dependencies_flags_raw(dep.ext_deps, state, depends, include_rpath, use_gir_args) cflags.update(extdepflags[0]) internal_ldflags.update(extdepflags[1]) external_ldflags.update(extdepflags[2]) gi_includes.update(extdepflags[3]) - depends.extend(extdepflags[4]) + depends = extdepflags[4] for source in dep.sources: if isinstance(source, GirTarget): gi_includes.update([os.path.join(state.environment.get_build_dir(), |