diff options
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
| -rw-r--r-- | mesonbuild/compilers/compilers.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 624226d33..c50c6229c 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -173,16 +173,19 @@ def is_object(fname: 'mesonlib.FileOrString') -> bool: fname = fname.fname return cached_is_object_by_name(fname) -def is_library(fname: 'mesonlib.FileOrString') -> bool: - if isinstance(fname, mesonlib.File): - fname = fname.fname - +@lru_cache(maxsize=None) +def cached_is_library_by_name(fname: str) -> bool: if soregex.match(fname): return True suffix = fname.split('.')[-1] return suffix in lib_suffixes +def is_library(fname: 'mesonlib.FileOrString') -> bool: + if isinstance(fname, mesonlib.File): + fname = fname.fname + return cached_is_library_by_name(fname) + def is_known_suffix(fname: 'mesonlib.FileOrString') -> bool: if isinstance(fname, mesonlib.File): fname = fname.fname |
