aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/cmake/interpreter.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py
index 6fcebb5..9cfb4fa 100644
--- a/mesonbuild/cmake/interpreter.py
+++ b/mesonbuild/cmake/interpreter.py
@@ -251,8 +251,6 @@ class ConverterTarget:
self.generated_raw: T.List[Path] = []
- self.clib_compiler = None
-
for i in target.files:
languages: T.Set[str] = set()
src_suffixes: T.Set[str] = set()
@@ -278,10 +276,6 @@ class ConverterTarget:
# Register the new languages and initialize the compile opts array
for lang in languages:
self.languages.add(lang)
-
- if self.clib_compiler is None:
- self.clib_compiler = self.env.coredata.compilers[self.for_machine].get(lang)
-
if lang not in self.compile_opts:
self.compile_opts[lang] = []
@@ -301,6 +295,17 @@ class ConverterTarget:
else:
self.sources += i.sources
+ self.clib_compiler = None
+ compilers = self.env.coredata.compilers[self.for_machine]
+
+ for lang in ['objcpp', 'cpp', 'objc', 'fortran', 'c']:
+ if lang in self.languages:
+ try:
+ self.clib_compiler = compilers[lang]
+ break
+ except KeyError:
+ pass
+
def __repr__(self) -> str:
return f'<{self.__class__.__name__}: {self.name}>'