X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftarget.h;h=2824e2a806589c4ce4c948b90dcf37a89fe18c36;hb=aa053d637e8259755af7d2e4b510a242f4d29c7b;hp=64a132c9f13a0460f8608695cb632b88f3ed5522;hpb=55269a63b0875be0b172453714f9190d30fb1dff;p=builder.git diff --git a/source/target.h b/source/target.h index 64a132c..2824e2a 100644 --- a/source/target.h +++ b/source/target.h @@ -1,14 +1,15 @@ #ifndef TARGET_H_ #define TARGET_H_ -#include #include #include #include +#include #include #include class Builder; +class BuildInfo; class Component; class SourcePackage; class Task; @@ -26,7 +27,7 @@ dependencies can be used by other targets further down the chain. class Target { public: - typedef std::list Dependencies; + using Dependencies = std::vector; protected: enum State @@ -41,6 +42,7 @@ protected: public: sigc::signal signal_bubble_rebuild; + sigc::signal signal_modified; protected: Builder &builder; @@ -51,7 +53,7 @@ protected: Tool *tool; State state; std::string rebuild_reason; - std::list problems; + std::vector problems; Dependencies depends; Dependencies trans_depends; @@ -113,6 +115,8 @@ public: the build() function. */ const Tool *get_tool() const { return tool; } + virtual void collect_build_info(BuildInfo &) const; + /** Indicates if it's possible to build this target. */ bool is_buildable() const { return tool!=0; } @@ -137,7 +141,7 @@ protected: public: bool is_broken() const { return state==BROKEN; } - const std::list &get_problems() const { return problems; } + const std::vector &get_problems() const { return problems; } /** Prepares the target by finding dependencies, recursively preparing them and then checking whether rebuilding is needed. */