summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/compilers.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 603a3eb48..8788df0be 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -133,11 +133,15 @@ def is_header(fname: 'mesonlib.FileOrString') -> bool:
def is_source_suffix(suffix: str) -> bool:
return suffix in source_suffixes
+@lru_cache(maxsize=None)
+def cached_is_source_by_name(fname: str) -> bool:
+ suffix = fname.split('.')[-1].lower()
+ return is_source_suffix(suffix)
+
def is_source(fname: 'mesonlib.FileOrString') -> bool:
if isinstance(fname, mesonlib.File):
fname = fname.fname
- suffix = fname.split('.')[-1].lower()
- return is_source_suffix(suffix)
+ return cached_is_source_by_name(fname)
def is_assembly(fname: 'mesonlib.FileOrString') -> bool:
if isinstance(fname, mesonlib.File):
@@ -152,14 +156,14 @@ def is_llvm_ir(fname: 'mesonlib.FileOrString') -> bool:
return suffix in llvm_ir_suffixes
@lru_cache(maxsize=None)
-def cached_by_name(fname: 'mesonlib.FileOrString') -> bool:
+def cached_is_object_by_name(fname: str) -> bool:
suffix = fname.split('.')[-1]
return suffix in obj_suffixes
def is_object(fname: 'mesonlib.FileOrString') -> bool:
if isinstance(fname, mesonlib.File):
fname = fname.fname
- return cached_by_name(fname)
+ return cached_is_object_by_name(fname)
def is_library(fname: 'mesonlib.FileOrString') -> bool:
if isinstance(fname, mesonlib.File):