]> git.tdb.fi Git - builder.git/blobdiff - source/binary.h
Convert all list containers to vectors
[builder.git] / source / binary.h
index cb9a56eb75814cdba42d4580ef3ae697067d87de..16ed1ecf95148b6c028a727dbb40d0af49946216 100644 (file)
@@ -1,13 +1,7 @@
-/* $Id$
-
-This file is part of builder
-Copyright © 2006-2009  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef BINARY_H_
 #define BINARY_H_
 
+#include "buildinfo.h"
 #include "filetarget.h"
 
 class Component;
@@ -17,21 +11,24 @@ class ObjectFile;
 Produces a binary file, which may be either a standalone executable or a shared
 library.
 */
-class Binary: public virtual FileTarget
+class Binary: public FileTarget
 {
+private:
+       BuildInfo static_binfo;
+
 protected:
-       const Component ∁
+       std::vector<ObjectFile *> objects;
+
+       Binary(Builder &, const Msp::FS::Path &);
+       Binary(Builder &, const Component &, const std::string &, const std::vector<ObjectFile *> &);
 
-       Binary(Builder &, const Component &, const std::list<ObjectFile *> &);
 public:
-       const Component &get_component() const { return comp; }
-       virtual void find_depends();
-protected:
-       virtual Action *create_action();
+       void collect_build_info(BuildInfo &) const override;
 
-       /** Returns the path for the binary.  We can't do this in the constructor
-       since we need to pass the value to the Target c'tor. */
-       static Msp::FS::Path generate_target_path(const Component &);
+protected:
+       void find_dependencies() override;
+private:
+       void find_dependencies(Target *, std::vector<Target *> &, std::vector<Target *> &, std::vector<std::string> &);
 };
 
 #endif