diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2016-12-09 12:47:14 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2016-12-13 09:20:34 +0530 |
commit | 7b3d00fee4bc76e9b6492321572db7ddd6d7f674 (patch) | |
tree | 85fb646e08a8ea9be1a6fde507bb721011047d7c /mesonbuild/interpreter.py | |
parent | ec47db6c0c6511d249b6d57fd24ca288e00eb9a3 (diff) | |
download | meson-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.py | 12 |
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 |