diff options
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/BinaryParagraph.h | 4 | ||||
| -rw-r--r-- | toolsrc/include/package_spec.h | 17 | ||||
| -rw-r--r-- | toolsrc/include/package_spec_parse_result.h | 8 | ||||
| -rw-r--r-- | toolsrc/include/triplet.h | 9 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg_Strings.h | 4 |
5 files changed, 29 insertions, 13 deletions
diff --git a/toolsrc/include/BinaryParagraph.h b/toolsrc/include/BinaryParagraph.h index 88d6e84b1..01979c924 100644 --- a/toolsrc/include/BinaryParagraph.h +++ b/toolsrc/include/BinaryParagraph.h @@ -3,6 +3,7 @@ #include <unordered_map> #include "SourceParagraph.h" #include "triplet.h" +#include "package_spec.h" namespace vcpkg { @@ -18,11 +19,10 @@ namespace vcpkg std::string dir() const; - std::string name; + package_spec spec; std::string version; std::string description; std::string maintainer; - triplet target_triplet; std::vector<std::string> depends; }; diff --git a/toolsrc/include/package_spec.h b/toolsrc/include/package_spec.h index 942b34adc..30dfca5c7 100644 --- a/toolsrc/include/package_spec.h +++ b/toolsrc/include/package_spec.h @@ -8,12 +8,19 @@ namespace vcpkg { struct package_spec { - static expected<package_spec> from_string(const std::string& spec, const triplet& default_target_triplet); + static expected<package_spec> from_string(const std::string& spec_as_string, const triplet& default_target_triplet); - std::string name; - triplet target_triplet; + static expected<package_spec> from_name_and_triplet(const std::string& name, const triplet& target_triplet); + + const std::string& name() const; + + const triplet& target_triplet() const; std::string dir() const; + + private: + std::string m_name; + triplet m_target_triplet; }; std::string to_string(const package_spec& spec); @@ -33,8 +40,8 @@ namespace std size_t operator()(const vcpkg::package_spec& value) const { size_t hash = 17; - hash = hash * 31 + std::hash<std::string>()(value.name); - hash = hash * 31 + std::hash<vcpkg::triplet>()(value.target_triplet); + hash = hash * 31 + std::hash<std::string>()(value.name()); + hash = hash * 31 + std::hash<vcpkg::triplet>()(value.target_triplet()); return hash; } }; diff --git a/toolsrc/include/package_spec_parse_result.h b/toolsrc/include/package_spec_parse_result.h index e59622951..5735c4f4c 100644 --- a/toolsrc/include/package_spec_parse_result.h +++ b/toolsrc/include/package_spec_parse_result.h @@ -5,8 +5,9 @@ namespace vcpkg { enum class package_spec_parse_result { - success = 0, - too_many_colons + SUCCESS = 0, + TOO_MANY_COLONS, + INVALID_CHARACTERS }; struct package_spec_parse_result_category_impl final : std::error_category @@ -30,5 +31,6 @@ namespace std { template <> struct is_error_code_enum<vcpkg::package_spec_parse_result> : ::std::true_type - {}; + { + }; } diff --git a/toolsrc/include/triplet.h b/toolsrc/include/triplet.h index f9d1e9483..32ea2e711 100644 --- a/toolsrc/include/triplet.h +++ b/toolsrc/include/triplet.h @@ -6,17 +6,22 @@ namespace vcpkg { struct triplet { + static triplet from_canonical_name(const std::string& triplet_as_string); + static const triplet X86_WINDOWS; static const triplet X64_WINDOWS; static const triplet X86_UWP; static const triplet X64_UWP; static const triplet ARM_UWP; - std::string value; + const std::string& canonical_name() const; std::string architecture() const; std::string system() const; + + private: + std::string m_canonical_name; }; bool operator==(const triplet& left, const triplet& right); @@ -39,7 +44,7 @@ namespace std { std::hash<std::string> hasher; size_t hash = 17; - hash = hash * 31 + hasher(t.value); + hash = hash * 31 + hasher(t.canonical_name()); return hash; } }; diff --git a/toolsrc/include/vcpkg_Strings.h b/toolsrc/include/vcpkg_Strings.h index dc17f35d2..2aa99afe0 100644 --- a/toolsrc/include/vcpkg_Strings.h +++ b/toolsrc/include/vcpkg_Strings.h @@ -59,5 +59,7 @@ namespace vcpkg {namespace Strings std::string utf16_to_utf8(const std::wstring& w); - std::string::const_iterator case_insensitive_find(const std::string& s, const std::string& pattern); + std::string::const_iterator case_insensitive_ascii_find(const std::string& s, const std::string& pattern); + + std::string ascii_to_lowercase(const std::string& input); }} |
