aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2016-12-09 12:47:14 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2016-12-13 09:20:34 +0530
commit7b3d00fee4bc76e9b6492321572db7ddd6d7f674 (patch)
tree85fb646e08a8ea9be1a6fde507bb721011047d7c /mesonbuild/interpreter.py
parentec47db6c0c6511d249b6d57fd24ca288e00eb9a3 (diff)
downloadmeson-7b3d00fee4bc76e9b6492321572db7ddd6d7f674.zip
meson-7b3d00fee4bc76e9b6492321572db7ddd6d7f674.tar.gz
meson-7b3d00fee4bc76e9b6492321572db7ddd6d7f674.tar.bz2
Use dict for self.build.compilers instead of list
Everywhere we use this object, we end up iterating over it and comparing compiler.get_language() with something. Using a dict is the obvious choice and simplifies a lot of code.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 47b8ae6..4a5436b 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1074,9 +1074,8 @@ class MesonMain(InterpreterObject):
clist = self.build.compilers
else:
clist = self.build.cross_compilers
- for c in clist:
- if c.get_language() == cname:
- return CompilerHolder(c, self.build.environment)
+ if cname in clist:
+ return CompilerHolder(clist[cname], self.build.environment)
raise InterpreterException('Tried to access compiler for unspecified language "%s".' % cname)
def is_unity_method(self, args, kwargs):
@@ -1254,8 +1253,7 @@ class Interpreter(InterpreterBase):
def check_cross_stdlibs(self):
if self.build.environment.is_cross_build():
cross_info = self.build.environment.cross_info
- for c in self.build.cross_compilers:
- l = c.language
+ for l, c in self.build.cross_compilers.items():
try:
di = mesonlib.stringlistify(cross_info.get_stdlib(l))
if len(di) != 2:
@@ -2287,9 +2285,9 @@ requirements use the version keyword argument instead.''')
def get_used_languages(self, target):
result = {}
for i in target.sources:
- for c in self.build.compilers:
+ for lang, c in self.build.compilers.items():
if c.can_compile(i):
- result[c.language] = True
+ result[lang] = True
break
return result