diff options
-rwxr-xr-x | backends.py | 19 | ||||
-rw-r--r-- | coredata.py | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/backends.py b/backends.py index 88237bb..8e066ec 100755 --- a/backends.py +++ b/backends.py @@ -610,6 +610,21 @@ class NinjaBackend(Backend): elem.add_item('aliasing', aliascmd) elem.write(outfile) + def generate_gcov_clean(self, outfile): + gcno_elem = NinjaBuildElement('clean-gcno', 'CUSTOM_COMMAND', '') + script_root = self.environment.get_script_dir() + clean_script = os.path.join(script_root, 'delwithsuffix.py') + gcno_elem.add_item('COMMAND', [sys.executable, clean_script, '.', 'gcno']) + gcno_elem.add_item('description', 'Deleting gcno files') + gcno_elem.write(outfile) + + gcda_elem = NinjaBuildElement('clean-gcda', 'CUSTOM_COMMAND', '') + script_root = self.environment.get_script_dir() + clean_script = os.path.join(script_root, 'delwithsuffix.py') + gcda_elem.add_item('COMMAND', [sys.executable, clean_script, '.', 'gcda']) + gcda_elem.add_item('description', 'Deleting gcno files') + gcda_elem.write(outfile) + def generate_ending(self, outfile): targetlist = [self.get_target_filename(t) for t in self.build.get_targets().values()] elem = NinjaBuildElement('all', 'phony', targetlist) @@ -621,6 +636,10 @@ class NinjaBackend(Backend): elem = NinjaBuildElement('clean', 'CUSTOM_COMMAND', '') elem.add_item('COMMAND', ['ninja', '-t', 'clean']) elem.add_item('description', 'Cleaning') + if self.environment.coredata.coverage: + self.generate_gcov_clean(outfile) + elem.add_dep('clean-gcda') + elem.add_dep('clean-gcno') elem.write(outfile) deps = [os.path.join(self.build_to_src, df) \ diff --git a/coredata.py b/coredata.py index d936bbf..94bdec0 100644 --- a/coredata.py +++ b/coredata.py @@ -57,6 +57,8 @@ def save(obj, filename): pickle.dump(obj, open(filename, 'wb')) forbidden_target_names = {'clean': None, + 'clean-gcno': None, + 'clean-gcda': None, 'coverage-text': None, 'coverage-xml': None, 'coverage-html': None, |