X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farchitecture.h;h=6828ad88337d3cd2b7c17a5b565e922b8e25fd55;hb=76ede1d44e68182a2380260c22ec7be68c9817af;hp=2d7ca5f18c8f51017b82ecebc96f3b15c730d321;hpb=88a344b29ab173cd6ecacd0b038ea96dcb7484fc;p=builder.git diff --git a/source/architecture.h b/source/architecture.h index 2d7ca5f..6828ad8 100644 --- a/source/architecture.h +++ b/source/architecture.h @@ -26,11 +26,14 @@ private: Builder &builder; std::string type; std::string cpu; + std::string fpu; std::string system; unsigned bits; + std::string toolchain; std::string name; bool native; std::string cross_prefix; + PatternList object_patterns; PatternList sharedlib_patterns; PatternList staticlib_patterns; PatternList executable_patterns; @@ -38,25 +41,28 @@ private: public: Architecture(Builder &b, const std::string &spec); + const std::string &get_type() const { return type; } 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; } + const std::string &get_fpu() const { return fpu; } + const std::string &get_toolchain() const { return toolchain; } bool match_name(const std::string &) const; + std::string best_match(const std::list &) const; bool is_native() const { return native; } bool is_cross() const { return !cross_prefix.empty(); } const std::string &get_cross_prefix() const { return cross_prefix; } + const PatternList &get_object_patterns() const { return object_patterns; } 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; + static void resolve_aliases(std::vector &); void parse_specification(const std::string &); }; -typedef std::map ArchMap; - #endif