diff options
| -rw-r--r-- | mesonbuild/compilers/compilers.py | 12 |
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): |
