X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farchitecture.h;h=5446c04235f3f0465fe64c93f62fc31ce6fdfc4e;hb=e0c863681c8a5fad5918bb7730ecbc65fbdfbc64;hp=ad30fe5d5db4f36a40d24f8194ffda6548d37882;hpb=82cf6fa5658ccbe612b989e50dfe4e88e617b980;p=builder.git diff --git a/source/architecture.h b/source/architecture.h index ad30fe5..5446c04 100644 --- a/source/architecture.h +++ b/source/architecture.h @@ -1,16 +1,9 @@ -/* $Id$ - -This file is part of builder -Copyright © 2007-2010 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef ARCHITECTURE_H_ #define ARCHITECTURE_H_ #include #include "buildinfo.h" -#include "misc.h" +#include "pattern.h" class Builder; @@ -26,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; @@ -39,23 +32,27 @@ private: std::string name; bool native; std::string cross_prefix; - StringMap tools; - BuildInfo build_info; + PatternList sharedlib_patterns; + PatternList staticlib_patterns; + PatternList executable_patterns; public: Architecture(Builder &b, const std::string &spec); const std::string &get_name() const { return name; } const std::string &get_system() const { return system; } + unsigned get_bits() const { return bits; } + 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 BuildInfo &get_build_info() const { return build_info; } + 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;