X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectfile.h;h=4845a0f15c0ca3490e619fa618766533e7852f43;hb=242c55b17e6608b29a77ca17a5b677e202a3ca90;hp=dbb49fe02c8355d3f43f9eaa24f3ce0016a25851;hpb=77461a8c0e2b5686b04cf15f3a9333b215813992;p=builder.git diff --git a/source/objectfile.h b/source/objectfile.h index dbb49fe..4845a0f 100644 --- a/source/objectfile.h +++ b/source/objectfile.h @@ -1,7 +1,7 @@ /* $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 */ @@ -18,18 +18,28 @@ Object files are compiled from source files. */ 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 &); };