diff options
Diffstat (limited to 'toolsrc/src/vcpkg/packagespec.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg/packagespec.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/toolsrc/src/vcpkg/packagespec.cpp b/toolsrc/src/vcpkg/packagespec.cpp index 789aaca80..52edf4b6f 100644 --- a/toolsrc/src/vcpkg/packagespec.cpp +++ b/toolsrc/src/vcpkg/packagespec.cpp @@ -1,5 +1,6 @@ #include "pch.h" +#include <vcpkg/base/checks.h> #include <vcpkg/base/util.h> #include <vcpkg/packagespec.h> #include <vcpkg/packagespecparseresult.h> @@ -16,8 +17,14 @@ namespace vcpkg std::string FeatureSpec::to_string() const { - if (feature().empty()) return spec().to_string(); - return Strings::format("%s[%s]:%s", name(), feature(), triplet()); + std::string ret; + this->to_string(ret); + return ret; + } + void FeatureSpec::to_string(std::string& out) const + { + if (feature().empty()) return spec().to_string(out); + Strings::append(out, name(), '[', feature(), "]:", triplet()); } std::vector<FeatureSpec> FeatureSpec::from_strings_and_triplet(const std::vector<std::string>& depends, @@ -71,7 +78,7 @@ namespace vcpkg if (auto p = res.get()) { FullPackageSpec fspec; - Triplet t = p->triplet.empty() ? default_triplet : Triplet::from_canonical_name(p->triplet); + Triplet t = p->triplet.empty() ? default_triplet : Triplet::from_canonical_name(std::move(p->triplet)); fspec.package_spec = PackageSpec::from_name_and_triplet(p->name, t).value_or_exit(VCPKG_LINE_INFO); fspec.features = std::move(p->features); return fspec; @@ -119,6 +126,7 @@ namespace vcpkg std::string PackageSpec::dir() const { return Strings::format("%s_%s", this->m_name, this->m_triplet); } std::string PackageSpec::to_string() const { return Strings::format("%s:%s", this->name(), this->triplet()); } + void PackageSpec::to_string(std::string& s) const { Strings::append(s, this->name(), ':', this->triplet()); } bool operator==(const PackageSpec& left, const PackageSpec& right) { |
