X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectfile.h;h=48e4482d7ab4a153f251724d02f4f855c01c218c;hb=0f7867524bf87a389ff5d4f9d3290d68a254b693;hp=dbb49fe02c8355d3f43f9eaa24f3ce0016a25851;hpb=be8a901dfc026f61db46d5d64a41cecc619bc97d;p=builder.git diff --git a/source/objectfile.h b/source/objectfile.h index dbb49fe..48e4482 100644 --- a/source/objectfile.h +++ b/source/objectfile.h @@ -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