Refactor ccov target dependencies tree #37
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem for me was that e.g. calling
ccov-capture-TARGETwas doing much more than the name was telling, e.g. it was cleaning all coverage data collected until then. Alsoccovwas doing the same for all targets.I draw the targets dependencies tree (
-- is a target dependency,+is extra action done by the target):So calling
ccovwas going down the tree and removing and regenerating everything. So any extra changes done in the meantime like manually called targets with special options were lost.So I change the hierarchy into this (
(**)denotes new targets):So now
ccov-clean-TARGETjust clean,ccov-capture-TARGETjust captures the data, butccovdoes all of them so it is backward compatible. The new targetccov-html-TARGETcaptures the data and generates html. Here I made exception that-htmlcalls-capturebecause this makes sense. Theccov-clean-TARGETis new and it sole purpose is to remove files. Task which was previously done byccov-capture-TARGET.Similar change I made for
ccov-all-*targets. Old scheme was:new scheme is
Now I can just run my targets in a custom way and call
make ccov-all-htmlto collect data. Previously it was not possible.