X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farchitecture.h;h=c07297a8940153fa7551e6a62c1c956c66852f33;hb=632361796a7ddadf8a726526c937fab22281fb7b;hp=1f643dc325b4a1512170d95b50b22871b84de5bd;hpb=4240871c17854e2afccdcc37ce8f3464f8091a3f;p=builder.git diff --git a/source/architecture.h b/source/architecture.h index 1f643dc..c07297a 100644 --- a/source/architecture.h +++ b/source/architecture.h @@ -3,7 +3,7 @@ #include #include "buildinfo.h" -#include "misc.h" +#include "pattern.h" class Builder; @@ -19,10 +19,10 @@ public: public: Loader(Architecture &); Architecture &get_object() { return arch; } - private: - void tool(const std::string &t, const std::string &p); }; + typedef std::list PatternList; + private: Builder &builder; std::string type; @@ -32,7 +32,9 @@ private: std::string name; bool native; std::string cross_prefix; - StringMap tools; + PatternList sharedlib_patterns; + PatternList staticlib_patterns; + PatternList executable_patterns; public: Architecture(Builder &b, const std::string &spec); @@ -44,11 +46,13 @@ public: bool match_name(const std::string &) const; bool is_native() const { return native; } - 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; } + const PatternList &get_static_library_patterns() const { return staticlib_patterns; } + const PatternList &get_executable_patterns() const { return executable_patterns; } + private: std::string resolve_alias(const std::string &) const; void parse_specification(const std::string &);