aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend
diff options
context:
space:
mode:
authorCharles Brunet <charles.brunet@optelgroup.com>2023-07-21 08:43:15 -0400
committerXavier Claessens <xclaesse@gmail.com>2023-07-21 09:31:21 -0400
commit047c2d644cdb006d01ce35f2fef76247ccb15335 (patch)
treecaafcdf1a67d261912a1441f5c47e2cb00dbdddf /mesonbuild/backend
parent1bca73cc376b275e79f01416e7963f359534dffb (diff)
downloadmeson-047c2d644cdb006d01ce35f2fef76247ccb15335.zip
meson-047c2d644cdb006d01ce35f2fef76247ccb15335.tar.gz
meson-047c2d644cdb006d01ce35f2fef76247ccb15335.tar.bz2
Display more timestamps when profiling ninja
When running setup with `--profile-self` option, there are currently no logs after "Found ninja...". However, there are still some lengthy processes for generating targets and ninja.build. This add more log entries, when profiling, only for the purpose of displaying the timestamps of the different steps in ninja generation.
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r--mesonbuild/backend/ninjabackend.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 1786fef..9c347d7 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -628,11 +628,15 @@ class NinjaBackend(backends.Backend):
for t in ProgressBar(self.build.get_targets().values(), desc='Generating targets'):
self.generate_target(t)
+ mlog.log_timestamp("Targets generated")
self.add_build_comment(NinjaComment('Test rules'))
self.generate_tests()
+ mlog.log_timestamp("Tests generated")
self.add_build_comment(NinjaComment('Install rules'))
self.generate_install()
+ mlog.log_timestamp("Install generated")
self.generate_dist()
+ mlog.log_timestamp("Dist generated")
key = OptionKey('b_coverage')
if (key in self.environment.coredata.options and
self.environment.coredata.options[key].value):
@@ -640,12 +644,14 @@ class NinjaBackend(backends.Backend):
if gcovr_exe or (lcov_exe and genhtml_exe):
self.add_build_comment(NinjaComment('Coverage rules'))
self.generate_coverage_rules(gcovr_exe, gcovr_version)
+ mlog.log_timestamp("Coverage rules generated")
else:
# FIXME: since we explicitly opted in, should this be an error?
# The docs just say these targets will be created "if possible".
mlog.warning('Need gcovr or lcov/genhtml to generate any coverage reports')
self.add_build_comment(NinjaComment('Suffix'))
self.generate_utils()
+ mlog.log_timestamp("Utils generated")
self.generate_ending()
self.write_rules(outfile)
@@ -1363,6 +1369,7 @@ class NinjaBackend(backends.Backend):
def write_builds(self, outfile):
for b in ProgressBar(self.build_elements, desc='Writing build.ninja'):
b.write(outfile)
+ mlog.log_timestamp("build.ninja generated")
def generate_phony(self):
self.add_build_comment(NinjaComment('Phony build target, always out of date'))