X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectfile.h;h=fc844d9a04dff28786af13607351720dd404c1c6;hb=bde362811368647047f3ca13bdec596f092ecffe;hp=d270529b73cdefac2ca56a5be84f40a3669f7891;hpb=4dc31cca056ea293d320928f61fef0558089d32d;p=builder.git diff --git a/source/objectfile.h b/source/objectfile.h index d270529..fc844d9 100644 --- a/source/objectfile.h +++ b/source/objectfile.h @@ -1,21 +1,37 @@ #ifndef OBJECTFILE_H_ #define OBJECTFILE_H_ -#include "target.h" +#include "filetarget.h" -class Component; class SourceFile; -class ObjectFile: public Target +/** +Object files are compiled from source files. +*/ +class ObjectFile: public FileTarget { +private: + SourceFile &source; + bool used_in_shlib; + public: ObjectFile(Builder &, const Component &, SourceFile &); - const char *get_type() const { return "ObjectFile"; } - void find_depends() { } private: - const Component ∁ - - 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: + const char *get_type() const override { 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; } + + void collect_build_info(BuildInfo &) const override; + +private: + void find_dependencies() override; + + void find_dependencies(FileTarget *); }; #endif