X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farchitecture.h;h=4db809f19f3cbf0ef33e6706b8cc1bedae5f0619;hb=1c42eb92bc1f07baecbb8752e532608426621c05;hp=3ea13a06b0a67d2806140c48276590ecb8f04ad9;hpb=40177b0cfc0d4e67f971941f632e4f1f7e7c3f88;p=builder.git diff --git a/source/architecture.h b/source/architecture.h index 3ea13a0..4db809f 100644 --- a/source/architecture.h +++ b/source/architecture.h @@ -3,25 +3,21 @@ #include #include "buildinfo.h" -#include "misc.h" #include "pattern.h" class Builder; -// XXX Add lib/exe prefix/suffix fields. Some archs may need multiple alternatives, how to handle this? +/** +Stores information about an architecture. This includes CPU type, model and +bitness and operating system. +*/ class Architecture { public: - class Loader: public Msp::DataFile::Loader + class Loader: public Msp::DataFile::ObjectLoader { - private: - Architecture &arch; - public: Loader(Architecture &); - Architecture &get_object() { return arch; } - private: - void tool(const std::string &t, const std::string &p); }; typedef std::list PatternList; @@ -35,7 +31,6 @@ private: std::string name; bool native; std::string cross_prefix; - StringMap tools; PatternList sharedlib_patterns; PatternList staticlib_patterns; PatternList executable_patterns; @@ -49,10 +44,8 @@ public: const std::string &get_cpu() const { return cpu; } bool match_name(const std::string &) const; bool is_native() const { return native; } + bool is_cross() const { return !cross_prefix.empty(); } - void set_tool(const std::string &t, const std::string &p); - void set_cross_prefix(const std::string &); - std::string get_tool(const std::string &t) const; const std::string &get_cross_prefix() const { return cross_prefix; } const PatternList &get_shared_library_patterns() const { return sharedlib_patterns; } @@ -64,6 +57,4 @@ private: void parse_specification(const std::string &); }; -typedef std::map ArchMap; - #endif