Refactor ccov target dependencies tree #37
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-TARGET
was doing much more than the name was telling, e.g. it was cleaning all coverage data collected until then. Alsoccov
was 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
ccov
was 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-TARGET
just clean,ccov-capture-TARGET
just captures the data, butccov
does all of them so it is backward compatible. The new targetccov-html-TARGET
captures the data and generates html. Here I made exception that-html
calls-capture
because this makes sense. Theccov-clean-TARGET
is 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-html
to collect data. Previously it was not possible.