]> git.tdb.fi Git - builder.git/blobdiff - source/objectfile.h
Don't rely on component type in determining whether to use -fPIC
[builder.git] / source / objectfile.h
index dbb49fe02c8355d3f43f9eaa24f3ce0016a25851..48e4482d7ab4a153f251724d02f4f855c01c218c 100644 (file)
@@ -1,37 +1,37 @@
-/* $Id$
-
-This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef OBJECTFILE_H_
 #define OBJECTFILE_H_
 
-#include "target.h"
+#include "filetarget.h"
 
-class Component;
 class SourceFile;
 
 /**
 Object files are compiled from source files.
 */
-class ObjectFile: public Target
+class ObjectFile: public FileTarget
 {
+private:
+       SourceFile &source;
+       bool used_in_shlib;
+
 public:
        ObjectFile(Builder &, const Component &, SourceFile &);
-       const char      *get_type() const      { return "ObjectFile"; }
-       const Component &get_component() const { return comp; }
-       void            find_depends();
 private:
-       const Component ∁
-       TargetList      new_deps;
-       
-       void find_depends(Target *);
-       void add_depend(Target *);
-       virtual Action  *create_action();
-
-       static std::string generate_target_name(const Component &, const std::string &);
+       static Msp::FS::Path generate_target_path(const Component &, const Msp::FS::Path &);
+
+public:
+       virtual const char *get_type() const { return "ObjectFile"; }
+       SourceFile &get_source() const { return source; }
+
+       void set_used_in_shared_library(bool);
+       bool is_used_in_shared_library() const { return used_in_shlib; }
+
+       virtual void collect_build_info(BuildInfo &) const;
+
+private:
+       virtual void find_dependencies();
+
+       void find_dependencies(FileTarget *);
 };
 
 #endif