diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2016-09-27 15:51:16 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2016-09-27 15:51:16 -0700 |
| commit | cc29d43f8577be1e053572c83958e633fbbea4e5 (patch) | |
| tree | ee3d05c01cfb442d0da7a73515093b10892ef23f /toolsrc/src | |
| parent | 2ed13a583d5c8537680125d2ab5ec77b0f63503c (diff) | |
| parent | 687ac42cdd39fece9ed816836c049607f8d1223b (diff) | |
| download | vcpkg-cc29d43f8577be1e053572c83958e633fbbea4e5.tar.gz vcpkg-cc29d43f8577be1e053572c83958e633fbbea4e5.zip | |
Merge branch 'master' of https://github.com/microsoft/vcpkg
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/BinaryParagraph.cpp | 23 | ||||
| -rw-r--r-- | toolsrc/src/SourceParagraph.cpp | 19 | ||||
| -rw-r--r-- | toolsrc/src/StatusParagraph.cpp | 3 | ||||
| -rw-r--r-- | toolsrc/src/triplet.cpp | 6 | ||||
| -rw-r--r-- | toolsrc/src/vcpkglib_helpers.cpp | 23 |
5 files changed, 37 insertions, 37 deletions
diff --git a/toolsrc/src/BinaryParagraph.cpp b/toolsrc/src/BinaryParagraph.cpp index 274bd879e..da20c725c 100644 --- a/toolsrc/src/BinaryParagraph.cpp +++ b/toolsrc/src/BinaryParagraph.cpp @@ -8,25 +8,24 @@ namespace vcpkg { BinaryParagraph::BinaryParagraph() = default; - BinaryParagraph::BinaryParagraph(const std::unordered_map<std::string, std::string>& fields) + BinaryParagraph::BinaryParagraph(const std::unordered_map<std::string, std::string>& fields) : + name(required_field(fields, "Package")), + version(required_field(fields, "Version")), + description(optional_field(fields, "Description")), + maintainer(optional_field(fields, "Maintainer")) { - details::required_field(fields, name, "Package"); - required_field(fields, version, "Version"); - required_field(fields, target_triplet.value, "Architecture"); + target_triplet.value = required_field(fields, "Architecture"); { - std::string multi_arch; - required_field(fields, multi_arch, "Multi-Arch"); + std::string multi_arch = required_field(fields, "Multi-Arch"); Checks::check_throw(multi_arch == "same", "Multi-Arch must be 'same' but was %s", multi_arch); } - optional_field(fields, description, "Description"); - std::string deps; - optional_field(fields, deps, "Depends"); + + std::string deps = optional_field(fields, "Depends"); if (!deps.empty()) { - depends.clear(); - parse_depends(deps, depends); + this->depends.clear(); + this->depends = parse_depends(deps); } - optional_field(fields, maintainer, "Maintainer"); } BinaryParagraph::BinaryParagraph(const SourceParagraph& spgh, const triplet& target_triplet) diff --git a/toolsrc/src/SourceParagraph.cpp b/toolsrc/src/SourceParagraph.cpp index 7e3b0403e..374121ae9 100644 --- a/toolsrc/src/SourceParagraph.cpp +++ b/toolsrc/src/SourceParagraph.cpp @@ -5,17 +5,16 @@ using namespace vcpkg::details; vcpkg::SourceParagraph::SourceParagraph() = default; -vcpkg::SourceParagraph::SourceParagraph(const std::unordered_map<std::string, std::string>& fields) +vcpkg::SourceParagraph::SourceParagraph(const std::unordered_map<std::string, std::string>& fields): + name(required_field(fields, "Source")), + version(required_field(fields, "Version")), + description(optional_field(fields, "Description")), + maintainer(optional_field(fields, "Maintainer")) { - required_field(fields, name, "Source"); - required_field(fields, version, "Version"); - optional_field(fields, description, "Description"); - std::string deps; - optional_field(fields, deps, "Build-Depends"); + std::string deps = optional_field(fields, "Build-Depends"); if (!deps.empty()) { - depends.clear(); - parse_depends(deps, depends); - } - optional_field(fields, maintainer, "Maintainer"); + this->depends.clear(); + this->depends = parse_depends(deps); + }; } diff --git a/toolsrc/src/StatusParagraph.cpp b/toolsrc/src/StatusParagraph.cpp index 09a3b4d45..5aa425969 100644 --- a/toolsrc/src/StatusParagraph.cpp +++ b/toolsrc/src/StatusParagraph.cpp @@ -19,8 +19,7 @@ namespace vcpkg StatusParagraph::StatusParagraph(const std::unordered_map<std::string, std::string>& fields) : package(fields) { - std::string status_field; - required_field(fields, status_field, "Status"); + std::string status_field = required_field(fields, "Status"); auto b = status_field.begin(); auto mark = b; diff --git a/toolsrc/src/triplet.cpp b/toolsrc/src/triplet.cpp index 14f19d5cd..4270c458d 100644 --- a/toolsrc/src/triplet.cpp +++ b/toolsrc/src/triplet.cpp @@ -58,13 +58,13 @@ namespace vcpkg Checks::exit_with_message("Unknown system: %s", value); } - bool triplet::validate(const vcpkg_paths & paths) + bool triplet::validate(const vcpkg_paths& paths) const { auto it = fs::directory_iterator(paths.triplets); - for(; it != fs::directory_iterator(); ++it) + for (; it != fs::directory_iterator(); ++it) { std::string triplet_file_name = it->path().stem().generic_u8string(); - if(value == triplet_file_name) // TODO: fuzzy compare + if (value == triplet_file_name) // TODO: fuzzy compare { //value = triplet_file_name; // NOTE: uncomment when implementing fuzzy compare return true; diff --git a/toolsrc/src/vcpkglib_helpers.cpp b/toolsrc/src/vcpkglib_helpers.cpp index e947dc647..3aa3735b0 100644 --- a/toolsrc/src/vcpkglib_helpers.cpp +++ b/toolsrc/src/vcpkglib_helpers.cpp @@ -4,29 +4,28 @@ namespace vcpkg {namespace details { - void optional_field(const std::unordered_map<std::string, std::string>& fields, std::string& out, const std::string& fieldname) + std::string optional_field(const std::unordered_map<std::string, std::string>& fields, const std::string& fieldname) { auto it = fields.find(fieldname); if (it == fields.end()) { - out.clear(); + return std::string(); } - else - { - out = it->second; - } + return it->second; }; - void required_field(const std::unordered_map<std::string, std::string>& fields, std::string& out, const std::string& fieldname) + std::string required_field(const std::unordered_map<std::string, std::string>& fields, const std::string& fieldname) { auto it = fields.find(fieldname); vcpkg::Checks::check_throw(it != fields.end(), "Required field not present: %s", fieldname); - out = it->second; + return it->second; }; - void parse_depends(const std::string& depends_string, std::vector<std::string>& out) + std::vector<std::string> parse_depends(const std::string& depends_string) { + std::vector<std::string> out; + size_t cur = 0; do { @@ -34,17 +33,21 @@ namespace vcpkg {namespace details if (pos == std::string::npos) { out.push_back(depends_string.substr(cur)); - return; + break; } out.push_back(depends_string.substr(cur, pos - cur)); // skip comma and space ++pos; if (depends_string[pos] == ' ') + { ++pos; + } cur = pos; } while (cur != std::string::npos); + + return out; } }} |
