Reputation: 11
I have a large project that uses boost.build. I would like a way to view the dependency tree for specific build targets.
For example:
exe foo : foo.c /BAR//LIB : /MEOW//PUB ;
The dependencies of foo would include all requirements of /BAR//LIB and all usage requirements of /MEOW//PUB.
Is there such functionality built into boost.build, or is there a tool available to do this?
Upvotes: 1
Views: 254
Reputation: 679
You can pass the command line option '-d3' to print a make tree (among other things). Also use '-n' to not actually build any target.
Note that the make tree is not exactly a dependency tree -- e.g. it omits recurrences of targets -- but it is usually close enough for debugging purposes. It should be intuitive enough to read. For each encountered target a few things are printed: First that the target has been encountered, then to which actual path the target has been bound (resolved), then its time (or missing respectively unbound (for pseudo-targets)), recursively the information for its dependencies (indented 1 additional space each level), and finally the decision whether the target has to be made/has been made.
Upvotes: 2