summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py11
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