X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectfile.h;h=4f116e9f2d99e50e044b259bce2656fa3b214beb;hb=9f885c3eec8f065b7dc400acfb9dd67158284fcf;hp=7cc6f604c685ef343d744d39dfb4067cde2240a2;hpb=66d1078c04849ec17a7343d0494d6ed087e04318;p=builder.git diff --git a/source/objectfile.h b/source/objectfile.h index 7cc6f60..4f116e9 100644 --- a/source/objectfile.h +++ b/source/objectfile.h @@ -1,16 +1,8 @@ -/* $Id$ - -This file is part of builder -Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef OBJECTFILE_H_ #define OBJECTFILE_H_ #include "filetarget.h" -class Component; class SourceFile; /** @@ -19,31 +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 &); - virtual const char *get_type() const { return "ObjectFile"; } - const Component &get_component() const { return comp; } +private: + static Msp::FS::Path generate_target_path(const Component &, const Msp::FS::Path &); + +public: + const char *get_type() const override { return "ObjectFile"; } 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 *); + void collect_build_info(BuildInfo &) const override; - /** Adds a target to the dependency list as well as the new dependencies - list. */ - void add_depend(Target *); - virtual Action *create_action(); +private: + void find_dependencies() override; - static Msp::FS::Path generate_target_path(const Component &, const std::string &); + void find_dependencies(FileTarget &, std::vector &); }; #endif