const SourcePackage *get_package() const { return package; }
const Component *get_component() const { return component; }
+ /** Adds a dependency for the target. Order is preseved and is important
+ for some target types. It is an error to create dependency cycles, although
+ this won't be detected until the targets are prepared. */
+ void add_depend(Target &);
+
+protected:
+ /** Finds dependencies for the target. Called during preparation. If the
+ target needs to recursively inspect its dependencies, it should prepare its
+ direct dependencies first. */
+ virtual void find_depends() { }
+
+public:
+ /// Returns the dependencies of the target, in the order they were added.
+ const Dependencies &get_depends() const { return depends; }
+
/** Tries to locate a target that will help getting this target built. If
all dependencies are up-to-date, returns this target. If there are no
targets ready to be built (maybe because they are being built right now),
/** Forces rebuild of the target. */
void force_rebuild();
- /** Adds a dependency for the target. Order is preseved and is important
- for some target types. It is an error to create dependency cycles, although
- this won't be detected until the targets are prepared. */
- void add_depend(Target *);
-
- /// Returns the dependencies of the target, in the order they were added.
- const Dependencies &get_depends() const { return depends; }
+protected:
+ /** Marks the target to be rebuilt and specified a reason for it. */
+ void mark_rebuild(const std::string &);
- /** Finds dependencies for the target. Called during preparation. If the
- target needs to recursively inspect its dependencies, it should prepare its
- direct dependencies first. */
- virtual void find_depends() { }
+ /** Checks if the target needs to be rebuilt and why. */
+ virtual void check_rebuild() = 0;
+public:
/** Prepares the target by finding dependencies, recursively preparing them
and then checking whether rebuilding is needed. */
virtual void prepare();
/** Invokes the associated Tool to build the target and returns the
resulting Task. The task must be started by the caller. */
- Task *build();
+ virtual Task *build();
protected:
- /** Marks the target to be rebuilt and specified a reason for it. */
- void mark_rebuild(const std::string &);
-
- /** Checks if the target needs to be rebuilt and why. */
- virtual void check_rebuild() = 0;
-
/** Handler for Task::signal_finished. */
virtual void build_finished(bool);
};