X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farchitecture.h;h=a31ad9fc6fd1c979bac3c8b5502282e573e7d1e6;hb=aa053d637e8259755af7d2e4b510a242f4d29c7b;hp=5b894b1ee740d14f891b73d8ffee55701407d709;hpb=690b9c5f340504517cf6ba8aad0c168dcdff4efa;p=builder.git diff --git a/source/architecture.h b/source/architecture.h index 5b894b1..a31ad9f 100644 --- a/source/architecture.h +++ b/source/architecture.h @@ -21,8 +21,6 @@ public: Loader(Architecture &); }; - typedef std::list PatternList; - private: Builder &builder; std::string type; @@ -34,7 +32,7 @@ private: std::string name; bool native; std::string cross_prefix; - std::map filename_patterns; + std::map> filename_patterns; public: Architecture(Builder &b, const std::string &spec); @@ -46,7 +44,7 @@ public: const std::string &get_cpu() const { return cpu; } const std::string &get_fpu() const { return fpu; } const std::string &get_toolchain() const { return toolchain; } - bool match_name(const std::string &) const; + bool match_name(const std::string &, unsigned * = 0) const; std::string best_match(const std::vector &) const; bool is_native() const { return native; } bool is_cross() const { return !cross_prefix.empty(); } @@ -54,7 +52,7 @@ public: const std::string &get_cross_prefix() const { return cross_prefix; } template - const PatternList &get_patterns() const; + const std::vector &get_patterns() const; template std::string create_filename(const std::string &) const; @@ -69,20 +67,20 @@ private: }; template -inline const Architecture::PatternList &Architecture::get_patterns() const +inline const std::vector &Architecture::get_patterns() const { auto i = filename_patterns.find(typeid(T).name()); if(i!=filename_patterns.end()) return i->second; - static PatternList empty; + static std::vector empty; return empty; } template inline std::string Architecture::create_filename(const std::string &base) const { - const PatternList &patterns = get_patterns(); + const std::vector &patterns = get_patterns(); return patterns.empty() ? base : patterns.front().apply(base); }