]> git.tdb.fi Git - builder.git/blobdiff - source/objectfile.h
Reorder class members
[builder.git] / source / objectfile.h
index d270529b73cdefac2ca56a5be84f40a3669f7891..4845a0f15c0ca3490e619fa618766533e7852f43 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of builder
+Copyright © 2006-2009  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef OBJECTFILE_H_
 #define OBJECTFILE_H_
 
 class Component;
 class SourceFile;
 
+/**
+Object files are compiled from source files.
+*/
 class ObjectFile: public Target
 {
-public:
-       ObjectFile(Builder &, const Component &, SourceFile &);
-       const char *get_type() const { return "ObjectFile"; }
-       void find_depends() { }
 private:
        const Component ∁
+       TargetList new_deps;
        
+public:
+       ObjectFile(Builder &, const Component &, SourceFile &);
+       virtual const char *get_type() const { return "ObjectFile"; }
+       const Component &get_component() const { return comp; }
+
+       /** 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:
+       /** 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();
+
        static std::string generate_target_name(const Component &, const std::string &);
 };