/* $Id$
This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
*/
class ObjectFile: public Target
{
+private:
+ const Component ∁
+ TargetList new_deps;
+
public:
ObjectFile(Builder &, const Component &, SourceFile &);
- const char *get_type() const { return "ObjectFile"; }
+ virtual const char *get_type() const { return "ObjectFile"; }
const Component &get_component() const { return comp; }
- void find_depends();
+
+ /** Processes as many new dependences as possible. Some may be created on
+ the fly and can't be processed until their own dependencies are ready. In
+ such cases this function needs to be called again. */
+ virtual void find_depends();
+
private:
- const Component ∁
- TargetList new_deps;
-
+ /** Recursively looks for header targets and adds them as dependencies. */
void find_depends(Target *);
+
+ /** Adds a target to the dependency list as well as the new dependencies
+ list. */
void add_depend(Target *);
- virtual Action *create_action();
+ virtual Action *create_action();
static std::string generate_target_name(const Component &, const std::string &);
};