aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2020-02-09 18:49:03 +0000
committerJon Turney <jon.turney@dronecode.org.uk>2020-02-12 13:33:07 +0000
commit1464ac6ed54cad795444d240d3bdb83568f5601f (patch)
treecfa6c7e19bcc4973d13b1a29f8211ee8f73828ec /mesonbuild/compilers/compilers.py
parent021fd9a1d0535453a515f44aa4f15af9553eed40 (diff)
downloadmeson-1464ac6ed54cad795444d240d3bdb83568f5601f.zip
meson-1464ac6ed54cad795444d240d3bdb83568f5601f.tar.gz
meson-1464ac6ed54cad795444d240d3bdb83568f5601f.tar.bz2
Improve error reported when language has no compiler
This gives consistent reporting of this error for all platforms. Also, reporting this error when constructing the BuildTarget, rather than discovering the problem during backend generation means that the error is reported against with a location.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index e8e72cf..0df6aea 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -14,6 +14,7 @@
import contextlib, os.path, re, tempfile
import collections.abc
+import itertools
import typing as T
from ..linkers import StaticLinker, GnuLikeDynamicLinkerMixin, SolarisDynamicLinker
@@ -72,6 +73,7 @@ clink_suffixes = ()
for _l in clink_langs + ('vala',):
clink_suffixes += lang_suffixes[_l]
clink_suffixes += ('h', 'll', 's')
+all_suffixes = set(itertools.chain(*lang_suffixes.values(), clink_suffixes))
# Languages that should use LDFLAGS arguments when linking.
languages_using_ldflags = ('objcpp', 'cpp', 'objc', 'c', 'fortran', 'd', 'cuda')
@@ -144,6 +146,13 @@ def is_library(fname):
suffix = fname.split('.')[-1]
return suffix in lib_suffixes
+def is_known_suffix(fname):
+ if hasattr(fname, 'fname'):
+ fname = fname.fname
+ suffix = fname.split('.')[-1]
+
+ return suffix in all_suffixes
+
cuda_buildtype_args = {'plain': [],
'debug': [],
'debugoptimized': [],