aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorBruce Richardson <bruce.richardson@intel.com>2018-04-19 09:56:13 +0100
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-04-19 11:41:14 +0000
commit11ebe0bfee31eeacec3d06d95dbc420079d67696 (patch)
tree0b7b9365e5987a507ab2f25f81e4963ddce2c740 /mesonbuild
parent2b93852a2e31c89232eb8917ccd712688fa18e5f (diff)
downloadmeson-11ebe0bfee31eeacec3d06d95dbc420079d67696.zip
meson-11ebe0bfee31eeacec3d06d95dbc420079d67696.tar.gz
meson-11ebe0bfee31eeacec3d06d95dbc420079d67696.tar.bz2
cache the generated headers for each target
Once we calculate the generated headers for a target we can cache them to speed up future calls for that target.
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/backend/ninjabackend.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index bc3a8ef..52a9cbf 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -252,6 +252,8 @@ int dummy;
# Get all generated headers. Any source file might need them so
# we need to add an order dependency to them.
def get_generated_headers(self, target):
+ if hasattr(target, 'cached_generated_headers'):
+ return target.cached_generated_headers
header_deps = []
# XXX: Why don't we add deps to CustomTarget headers here?
for genlist in target.get_generated_sources():
@@ -267,6 +269,7 @@ int dummy;
for dep in itertools.chain(target.link_targets, target.link_whole_targets):
if isinstance(dep, (build.StaticLibrary, build.SharedLibrary)):
header_deps += self.get_generated_headers(dep)
+ target.cached_generated_headers = header_deps
return header_deps
def get_target_generated_sources(self, target):