aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorcomplexoctonion <complex_octonion@protonmail.com>2021-12-06 10:59:43 +0100
committerEli Schwartz <eschwartz93@gmail.com>2021-12-06 09:27:02 -0500
commit798f5ef17867da9e47c6819d271178eaae0fcf0f (patch)
treeb83ebf719e9be88f2dd2980305978663a62124e8 /mesonbuild
parenta21c7d54fb9b6d07df9bd4708ea23098f69edb11 (diff)
downloadmeson-798f5ef17867da9e47c6819d271178eaae0fcf0f.zip
meson-798f5ef17867da9e47c6819d271178eaae0fcf0f.tar.gz
meson-798f5ef17867da9e47c6819d271178eaae0fcf0f.tar.bz2
Fix performance regression in build file generation
Re-use any already determined rpaths for a target. Fixes #9695
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/backend/backends.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index ab02ae1..bb04fea 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -748,7 +748,8 @@ class Backend:
raise MesonException(f'Invalid arg for --just-symbols, {dir} is a directory.')
return dirs
- def rpaths_for_bundled_shared_libraries(self, target: build.BuildTarget, exclude_system: bool = True) -> T.List[str]:
+ @lru_cache(maxsize=None)
+ def rpaths_for_bundled_shared_libraries(self, target: build.BuildTarget, exclude_system: bool = True) -> 'ImmutableListProtocol[str]':
paths: T.List[str] = []
for dep in target.external_deps:
if not isinstance(dep, (dependencies.ExternalLibrary, dependencies.PkgConfigDependency)):