aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/ast/introspection.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-03-21 16:42:55 -0400
committerXavier Claessens <xclaesse@gmail.com>2022-03-24 12:27:06 -0400
commitf2d21bf8a98fe4eb528a077f3faf5d68cd35c244 (patch)
tree4f750b938ad79de8c0e32f8301d1d9d36eac9fe6 /mesonbuild/ast/introspection.py
parentebbe4425e7a1c1c16281ef163e443fc1c0a8b209 (diff)
downloadmeson-f2d21bf8a98fe4eb528a077f3faf5d68cd35c244.zip
meson-f2d21bf8a98fe4eb528a077f3faf5d68cd35c244.tar.gz
meson-f2d21bf8a98fe4eb528a077f3faf5d68cd35c244.tar.bz2
Make compilers list per subproject
Previously subprojects inherited languages already added by main project, or any previous subproject. This change to have a list of compilers per interpreters, which means that if a subproject does not add 'c' language it won't be able to compile .c files any more, even if main project added the 'c' language. This delays processing list of compilers until the interpreter adds the BuildTarget into its list of targets. That way the interpreter can add missing languages instead of duplicating that logic into BuildTarget for the cython case.
Diffstat (limited to 'mesonbuild/ast/introspection.py')
-rw-r--r--mesonbuild/ast/introspection.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/mesonbuild/ast/introspection.py b/mesonbuild/ast/introspection.py
index 55c3bcc..f0a2a0c 100644
--- a/mesonbuild/ast/introspection.py
+++ b/mesonbuild/ast/introspection.py
@@ -258,7 +258,10 @@ class IntrospectionInterpreter(AstInterpreter):
objects = [] # type: T.List[T.Any]
empty_sources = [] # type: T.List[T.Any]
# Passing the unresolved sources list causes errors
- target = targetclass(name, self.subdir, self.subproject, for_machine, empty_sources, [], objects, self.environment, kwargs_reduced)
+ target = targetclass(name, self.subdir, self.subproject, for_machine, empty_sources, [], objects,
+ self.environment, self.coredata.compilers[for_machine], kwargs_reduced)
+ target.process_compilers()
+ target.process_compilers_late([])
new_target = {
'name': target.get_basename(),