X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fanalyzer.h;h=6d6af9b5ab5706a076617bd6e9a500cf84052ee3;hb=4e6fd9a7436d61af311ab83b5ec264b37078fe76;hp=7dd4c1345d8e3b5d09f25835da88ce996be48bb7;hpb=242c55b17e6608b29a77ca17a5b677e202a3ca90;p=builder.git diff --git a/source/analyzer.h b/source/analyzer.h index 7dd4c13..6d6af9b 100644 --- a/source/analyzer.h +++ b/source/analyzer.h @@ -9,6 +9,7 @@ Distributed under the LGPL #define ANALYZER_H_ #include +#include #include #include @@ -26,7 +27,7 @@ public: DEPS, //< Skip over "trivial" targets such as Install and Compile ALLDEPS, //< Print out absolutely every target REBUILD, //< Print targets that are going to be rebuilt - RDEPS //< Print targets that depend on the given targets (NYI) + RDEPS //< Print targets that depend on the given targets }; private: @@ -38,12 +39,13 @@ private: Table table; unsigned max_depth; bool full_paths; + std::map > rdepends; public: Analyzer(Builder &); - void set_mode(Mode m) { mode=m; } - void set_max_depth(unsigned m) { max_depth=m; } - void set_full_paths(bool f) { full_paths=f; } + void set_mode(Mode m) { mode = m; } + void set_max_depth(unsigned m) { max_depth = m; } + void set_full_paths(bool f) { full_paths = f; } /** Performs the analysis and prints out the resulting dependency tree. @@ -54,14 +56,15 @@ private: /** Adds rows to the table for the given target and its dependencies. */ - void build_depend_table(Target &, unsigned); + void build_depend_table(const Target &, unsigned); /** Prints out the table that resulted from the analysis. */ void print_table() const; - static bool target_order(Target *, Target *); + static bool target_order(const Target *, const Target *); + static bool target_order_full(const Target *, const Target *); }; #endif