aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/__init__.py2
-rw-r--r--mesonbuild/compilers/compilers.py9
2 files changed, 11 insertions, 0 deletions
diff --git a/mesonbuild/compilers/__init__.py b/mesonbuild/compilers/__init__.py
index b378a63..a4e3943 100644
--- a/mesonbuild/compilers/__init__.py
+++ b/mesonbuild/compilers/__init__.py
@@ -30,6 +30,7 @@ __all__ = [
'is_llvm_ir',
'is_object',
'is_source',
+ 'is_known_suffix',
'lang_suffixes',
'sort_clink',
@@ -115,6 +116,7 @@ from .compilers import (
is_llvm_ir,
is_object,
is_library,
+ is_known_suffix,
lang_suffixes,
sort_clink,
CompilerArgs,
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index caa8600..366bb50 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 functools import lru_cache
@@ -75,6 +76,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')
@@ -147,6 +149,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': [],