diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2019-03-28 08:56:10 -0700 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2019-03-29 21:27:54 +0000 |
commit | f2d4a32370bb94e0f63ddb5f9f38d93dcab8687b (patch) | |
tree | e4443e5741c65ac3a34eda402a72e450409d53c0 /mesonbuild | |
parent | 023fe1423890bf27f537e315246a95c0b6fa382e (diff) | |
download | meson-f2d4a32370bb94e0f63ddb5f9f38d93dcab8687b.zip meson-f2d4a32370bb94e0f63ddb5f9f38d93dcab8687b.tar.gz meson-f2d4a32370bb94e0f63ddb5f9f38d93dcab8687b.tar.bz2 |
dependencies/base: Pass correct arguments to subdependencies
Currently InternalDependency.get_partial_dependency shadows the the
input variables names, and then passes those new copies to the final
object returned. It also passes them to the arguments of of
get_partial_dependency for each subdependency, which is wrong. The
code is supposed to proxy the original argumetn values to that instead
of the shadowing values.
To avoid that this patch renames the new values.
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/dependencies/base.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 1b8818d..a08a677 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -204,18 +204,19 @@ class InternalDependency(Dependency): def get_partial_dependency(self, *, compile_args: bool = False, link_args: bool = False, links: bool = False, includes: bool = False, sources: bool = False): - compile_args = self.compile_args.copy() if compile_args else [] - link_args = self.link_args.copy() if link_args else [] - libraries = self.libraries.copy() if links else [] - whole_libraries = self.whole_libraries.copy() if links else [] - sources = self.sources.copy() if sources else [] - includes = self.include_directories.copy() if includes else [] - deps = [d.get_partial_dependency( + final_compile_args = self.compile_args.copy() if compile_args else [] + final_link_args = self.link_args.copy() if link_args else [] + final_libraries = self.libraries.copy() if links else [] + final_whole_libraries = self.whole_libraries.copy() if links else [] + final_sources = self.sources.copy() if sources else [] + final_includes = self.include_directories.copy() if includes else [] + final_deps = [d.get_partial_dependency( compile_args=compile_args, link_args=link_args, links=links, includes=includes, sources=sources) for d in self.ext_deps] return InternalDependency( - self.version, includes, compile_args, link_args, libraries, - whole_libraries, sources, deps) + self.version, final_includes, final_compile_args, + final_link_args, final_libraries, final_whole_libraries, + final_sources, final_deps) class ExternalDependency(Dependency): |