diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2020-02-09 18:49:03 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2020-02-12 13:33:07 +0000 |
commit | 1464ac6ed54cad795444d240d3bdb83568f5601f (patch) | |
tree | cfa6c7e19bcc4973d13b1a29f8211ee8f73828ec /mesonbuild/compilers/compilers.py | |
parent | 021fd9a1d0535453a515f44aa4f15af9553eed40 (diff) | |
download | meson-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.py | 9 |
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': [], |