]> git.tdb.fi Git - builder.git/blobdiff - source/staticlibrary.h
Use build info to store static library dependencies
[builder.git] / source / staticlibrary.h
index cb27138abe6d67f7264747c12194568e60aebc8c..c76b314cd441021cbffc99c8ee968eb4d69b7e42 100644 (file)
@@ -1,14 +1,7 @@
-/* $Id$
+#ifndef STATICLIBRARY_H_
+#define STATICLIBRARY_H_
 
-This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
-#ifndef STATICLIB_H_
-#define STATICLIB_H_
-
-#include "target.h"
+#include "filetarget.h"
 
 class Component;
 class ObjectFile;
@@ -16,18 +9,25 @@ class ObjectFile;
 /**
 A static library target.
 */
-class StaticLibrary: public Target
+class StaticLibrary: public FileTarget
 {
+private:
+       /* TODO this really belongs in a Component, but some refactoring is required
+       to allow non-builder packages to have components.  Rename BinaryPackage to
+       ExternalPackage, add BuildableComponent and ExternalComponent classes. */
+       BuildInfo build_info;
+
 public:
+       StaticLibrary(Builder &, const Msp::FS::Path &);
        StaticLibrary(Builder &, const Component &, const std::list<ObjectFile *> &);
-       const char      *get_type() const      { return "StaticLibrary"; }
-       const Component &get_component() const { return comp; }
 private:
-       const Component &comp;
+       static std::string generate_filename(const Component &);
 
-       virtual Action  *create_action();
+public:
+       virtual const char *get_type() const { return "StaticLibrary"; }
 
-       std::string generate_target_name(const Component &);
+       void add_required_library(const std::string &);
+       virtual void collect_build_info(BuildInfo &) const;
 };
 
 #endif