]> 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 21483147cfa20cb7dd22b115450baec00e8ed89e..48e4482d7ab4a153f251724d02f4f855c01c218c 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "filetarget.h"
 
-class Component;
 class SourceFile;
 
 /**
@@ -12,30 +11,27 @@ Object files are compiled from source files.
 class ObjectFile: public FileTarget
 {
 private:
-       const Component ∁
        SourceFile &source;
-       TargetList new_deps;
-       
+       bool used_in_shlib;
+
 public:
        ObjectFile(Builder &, const Component &, SourceFile &);
+private:
+       static Msp::FS::Path generate_target_path(const Component &, const Msp::FS::Path &);
+
+public:
        virtual const char *get_type() const { return "ObjectFile"; }
-       const Component &get_component() const { return comp; }
        SourceFile &get_source() const { return source; }
 
-       /** 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();
+       void set_used_in_shared_library(bool);
+       bool is_used_in_shared_library() const { return used_in_shlib; }
 
-private:
-       /** Recursively looks for header targets and adds them as dependencies. */
-       void find_depends(Target *);
+       virtual void collect_build_info(BuildInfo &) const;
 
-       /** Adds a target to the dependency list as well as the new dependencies
-       list. */
-       void add_depend(Target *);
+private:
+       virtual void find_dependencies();
 
-       static Msp::FS::Path generate_target_path(const Component &, const std::string &);
+       void find_dependencies(FileTarget *);
 };
 
 #endif