triplet -> Triplet

This commit is contained in:
Alexander Karatarakis 2017-04-03 15:02:45 -07:00
parent 378b018321
commit bdf80d63c6
24 changed files with 97 additions and 97 deletions

View File

@ -10,7 +10,7 @@ namespace vcpkg
{
BinaryParagraph();
explicit BinaryParagraph(std::unordered_map<std::string, std::string> fields);
BinaryParagraph(const SourceParagraph& spgh, const triplet& target_triplet);
BinaryParagraph(const SourceParagraph& spgh, const Triplet& target_triplet);
std::string displayname() const;

View File

@ -1,19 +1,19 @@
#pragma once
#include "PackageSpecParseResult.h"
#include "triplet.h"
#include "Triplet.h"
#include "vcpkg_expected.h"
namespace vcpkg
{
struct PackageSpec
{
static expected<PackageSpec> from_string(const std::string& spec_as_string, const triplet& default_target_triplet);
static expected<PackageSpec> from_string(const std::string& spec_as_string, const Triplet& default_target_triplet);
static expected<PackageSpec> from_name_and_triplet(const std::string& name, const triplet& target_triplet);
static expected<PackageSpec> from_name_and_triplet(const std::string& name, const Triplet& target_triplet);
const std::string& name() const;
const triplet& target_triplet() const;
const Triplet& target_triplet() const;
std::string display_name() const;
@ -23,7 +23,7 @@ namespace vcpkg
private:
std::string m_name;
triplet m_target_triplet;
Triplet m_target_triplet;
};
std::string to_printf_arg(const PackageSpec& spec);
@ -42,7 +42,7 @@ namespace std
{
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<vcpkg::Triplet>()(value.target_triplet());
return hash;
}
};

View File

@ -5,7 +5,7 @@
namespace vcpkg
{
struct triplet;
struct Triplet;
struct dependency
{
@ -28,7 +28,7 @@ namespace vcpkg
std::vector<dependency> depends;
};
std::vector<std::string> filter_dependencies(const std::vector<vcpkg::dependency>& deps, const triplet& t);
std::vector<std::string> filter_dependencies(const std::vector<vcpkg::dependency>& deps, const Triplet& t);
std::vector<vcpkg::dependency> expand_qualified_dependencies(const std::vector<std::string>& depends);
std::vector<std::string> parse_depends(const std::string& depends_string);

View File

@ -18,9 +18,9 @@ namespace vcpkg
{
return find(spec.name(), spec.target_triplet());
}
const_iterator find(const std::string& name, const triplet& target_triplet) const;
iterator find(const std::string& name, const triplet& target_triplet);
const_iterator find_installed(const std::string& name, const triplet& target_triplet) const;
const_iterator find(const std::string& name, const Triplet& target_triplet) const;
iterator find(const std::string& name, const Triplet& target_triplet);
const_iterator find_installed(const std::string& name, const Triplet& target_triplet) const;
iterator insert(std::unique_ptr<StatusParagraph>);

View File

@ -4,15 +4,15 @@
namespace vcpkg
{
struct triplet
struct Triplet
{
static triplet from_canonical_name(const std::string& triplet_as_string);
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;
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;
const std::string& canonical_name() const;
@ -24,23 +24,23 @@ namespace vcpkg
std::string m_canonical_name;
};
bool operator==(const triplet& left, const triplet& right);
bool operator==(const Triplet& left, const Triplet& right);
bool operator!=(const triplet& left, const triplet& right);
bool operator!=(const Triplet& left, const Triplet& right);
std::string to_string(const triplet& spec);
std::string to_string(const Triplet& spec);
std::string to_printf_arg(const triplet& spec);
std::string to_printf_arg(const Triplet& spec);
std::ostream& operator<<(std::ostream& os, const triplet& spec);
std::ostream& operator<<(std::ostream& os, const Triplet& spec);
}
namespace std
{
template <>
struct hash<vcpkg::triplet>
struct hash<vcpkg::Triplet>
{
size_t operator()(const vcpkg::triplet& t) const
size_t operator()(const vcpkg::Triplet& t) const
{
std::hash<std::string> hasher;
size_t hash = 17;

View File

@ -8,7 +8,7 @@
namespace vcpkg::Commands
{
using command_type_a = void(*)(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet);
using command_type_a = void(*)(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet);
using command_type_b = void(*)(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths);
using command_type_c = void(*)(const vcpkg_cmd_arguments& args);
@ -29,32 +29,32 @@ namespace vcpkg::Commands
std::string create_error_message(const BuildResult build_result, const PackageSpec& spec);
std::string create_user_troubleshooting_message(const PackageSpec& spec);
std::wstring make_build_env_cmd(const triplet& target_triplet, const toolset_t& toolset);
std::wstring make_build_env_cmd(const Triplet& target_triplet, const toolset_t& toolset);
BuildResult build_package(const SourceParagraph& source_paragraph, const PackageSpec& spec, const vcpkg_paths& paths, const fs::path& port_dir, const StatusParagraphs& status_db);
void perform_and_exit(const PackageSpec& spec, const fs::path& port_dir, const std::unordered_set<std::string>& options, const vcpkg_paths& paths);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet);
}
namespace BuildExternal
{
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet);
}
namespace Install
{
void install_package(const vcpkg_paths& paths, const BinaryParagraph& binary_paragraph, StatusParagraphs* status_db);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet);
}
namespace CI
{
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet);
}
namespace Remove
{
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet);
}
namespace Update
@ -73,7 +73,7 @@ namespace vcpkg::Commands
namespace Env
{
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_triplet);
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_triplet);
}
namespace Create

View File

@ -7,8 +7,8 @@ namespace vcpkg::Input
{
PackageSpec check_and_get_package_spec(
const std::string& package_spec_as_string,
const triplet& default_target_triplet,
const Triplet& default_target_triplet,
CStringView example_text);
void check_triplet(const triplet& t, const vcpkg_paths& paths);
void check_triplet(const Triplet& t, const vcpkg_paths& paths);
}

View File

@ -23,7 +23,7 @@ namespace vcpkg
fs::path build_info_file_path(const PackageSpec& spec) const;
fs::path listfile_path(const BinaryParagraph& pgh) const;
bool is_valid_triplet(const triplet& t) const;
bool is_valid_triplet(const Triplet& t) const;
fs::path root;
fs::path packages;

View File

@ -29,7 +29,7 @@ namespace vcpkg
{
const std::string name = details::remove_required_field(&fields, BinaryParagraphRequiredField::PACKAGE);
const std::string architecture = details::remove_required_field(&fields, BinaryParagraphRequiredField::ARCHITECTURE);
const triplet target_triplet = triplet::from_canonical_name(architecture);
const Triplet target_triplet = Triplet::from_canonical_name(architecture);
this->spec = PackageSpec::from_name_and_triplet(name, target_triplet).value_or_exit(VCPKG_LINE_INFO);
this->version = details::remove_required_field(&fields, BinaryParagraphRequiredField::VERSION);
@ -44,7 +44,7 @@ namespace vcpkg
this->depends = parse_depends(deps);
}
BinaryParagraph::BinaryParagraph(const SourceParagraph& spgh, const triplet& target_triplet)
BinaryParagraph::BinaryParagraph(const SourceParagraph& spgh, const Triplet& target_triplet)
{
this->spec = PackageSpec::from_name_and_triplet(spgh.name, target_triplet).value_or_exit(VCPKG_LINE_INFO);
this->version = spgh.version;

View File

@ -8,7 +8,7 @@ namespace vcpkg
return (c == '-') || isdigit(c) || (isalpha(c) && islower(c));
}
expected<PackageSpec> PackageSpec::from_string(const std::string& spec_as_string, const triplet& default_target_triplet)
expected<PackageSpec> PackageSpec::from_string(const std::string& spec_as_string, const Triplet& default_target_triplet)
{
auto pos = spec_as_string.find(':');
if (pos == std::string::npos)
@ -23,11 +23,11 @@ namespace vcpkg
}
const std::string name = spec_as_string.substr(0, pos);
const triplet target_triplet = triplet::from_canonical_name(spec_as_string.substr(pos + 1));
const Triplet target_triplet = Triplet::from_canonical_name(spec_as_string.substr(pos + 1));
return from_name_and_triplet(name, target_triplet);
}
expected<PackageSpec> PackageSpec::from_name_and_triplet(const std::string& name, const triplet& target_triplet)
expected<PackageSpec> PackageSpec::from_name_and_triplet(const std::string& name, const Triplet& target_triplet)
{
if (std::find_if_not(name.cbegin(), name.cend(), is_valid_package_spec_char) != name.end())
{
@ -45,7 +45,7 @@ namespace vcpkg
return this->m_name;
}
const triplet& PackageSpec::target_triplet() const
const Triplet& PackageSpec::target_triplet() const
{
return this->m_target_triplet;
}

View File

@ -3,7 +3,7 @@
#include "vcpkglib_helpers.h"
#include "vcpkg_System.h"
#include "vcpkg_Maps.h"
#include "triplet.h"
#include "Triplet.h"
#include "vcpkg_Checks.h"
namespace vcpkg
@ -125,7 +125,7 @@ namespace vcpkg
return out;
}
std::vector<std::string> filter_dependencies(const std::vector<vcpkg::dependency>& deps, const triplet& t)
std::vector<std::string> filter_dependencies(const std::vector<vcpkg::dependency>& deps, const Triplet& t)
{
std::vector<std::string> ret;
for (auto&& dep : deps)

View File

@ -11,7 +11,7 @@ namespace vcpkg
{
};
StatusParagraphs::const_iterator StatusParagraphs::find(const std::string& name, const triplet& target_triplet) const
StatusParagraphs::const_iterator StatusParagraphs::find(const std::string& name, const Triplet& target_triplet) const
{
return std::find_if(begin(), end(), [&](const std::unique_ptr<StatusParagraph>& pgh)
{
@ -20,7 +20,7 @@ namespace vcpkg
});
}
StatusParagraphs::iterator StatusParagraphs::find(const std::string& name, const triplet& target_triplet)
StatusParagraphs::iterator StatusParagraphs::find(const std::string& name, const Triplet& target_triplet)
{
return std::find_if(begin(), end(), [&](const std::unique_ptr<StatusParagraph>& pgh)
{
@ -29,7 +29,7 @@ namespace vcpkg
});
}
StatusParagraphs::const_iterator StatusParagraphs::find_installed(const std::string& name, const triplet& target_triplet) const
StatusParagraphs::const_iterator StatusParagraphs::find_installed(const std::string& name, const Triplet& target_triplet) const
{
const const_iterator it = find(name, target_triplet);
if (it != end() && (*it)->want == want_t::install)

View File

@ -18,14 +18,14 @@ namespace vcpkg::Commands::Build
static const std::string OPTION_CHECKS_ONLY = "--checks-only";
static void create_binary_control_file(const vcpkg_paths& paths, const SourceParagraph& source_paragraph, const triplet& target_triplet)
static void create_binary_control_file(const vcpkg_paths& paths, const SourceParagraph& source_paragraph, const Triplet& target_triplet)
{
const BinaryParagraph bpgh = BinaryParagraph(source_paragraph, target_triplet);
const fs::path binary_control_file = paths.packages / bpgh.dir() / "CONTROL";
std::ofstream(binary_control_file) << bpgh;
}
std::wstring make_build_env_cmd(const triplet& target_triplet, const toolset_t& toolset)
std::wstring make_build_env_cmd(const Triplet& target_triplet, const toolset_t& toolset)
{
return Strings::wformat(LR"("%s" %s >nul 2>&1)",
toolset.vcvarsall.native(),
@ -36,7 +36,7 @@ namespace vcpkg::Commands::Build
{
Checks::check_exit(VCPKG_LINE_INFO, spec.name() == source_paragraph.name, "inconsistent arguments to build_package()");
const triplet& target_triplet = spec.target_triplet();
const Triplet& target_triplet = spec.target_triplet();
for (auto&& dep : filter_dependencies(source_paragraph.depends, target_triplet))
{
if (status_db.find_installed(dep, target_triplet) == status_db.end())
@ -174,7 +174,7 @@ namespace vcpkg::Commands::Build
Checks::exit_success(VCPKG_LINE_INFO);
}
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet)
{
static const std::string example = Commands::Help::create_example_string("build zlib:x64-windows");
args.check_exact_arg_count(1, example); // Build only takes a single package and all dependencies must already be installed

View File

@ -5,7 +5,7 @@
namespace vcpkg::Commands::BuildExternal
{
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet)
{
static const std::string example = Commands::Help::create_example_string(R"(build_external zlib2 C:\path\to\dir\with\controlfile\)");
args.check_exact_arg_count(2, example);

View File

@ -14,7 +14,7 @@ namespace vcpkg::Commands::CI
using Dependencies::install_plan_type;
using Build::BuildResult;
static std::vector<PackageSpec> load_all_package_specs(const fs::path& ports_directory, const triplet& target_triplet)
static std::vector<PackageSpec> load_all_package_specs(const fs::path& ports_directory, const Triplet& target_triplet)
{
std::vector<SourceParagraph> ports = Paragraphs::load_all_ports(ports_directory);
std::vector<PackageSpec> specs;
@ -26,11 +26,11 @@ namespace vcpkg::Commands::CI
return specs;
}
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet)
{
static const std::string example = Commands::Help::create_example_string("ci x64-windows");
args.check_max_arg_count(1, example);
const triplet target_triplet = args.command_arguments.size() == 1 ? triplet::from_canonical_name(args.command_arguments.at(0)) : default_target_triplet;
const Triplet target_triplet = args.command_arguments.size() == 1 ? Triplet::from_canonical_name(args.command_arguments.at(0)) : default_target_triplet;
Input::check_triplet(target_triplet, paths);
args.check_and_get_optional_command_arguments({});
const std::vector<PackageSpec> specs = load_all_package_specs(paths.ports, target_triplet);

View File

@ -4,9 +4,9 @@
namespace vcpkg::Commands::Env
{
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_triplet)
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_triplet)
{
static const std::string example = Commands::Help::create_example_string(R"(env --triplet x64-windows)");
static const std::string example = Commands::Help::create_example_string(R"(env --Triplet x64-windows)");
args.check_exact_arg_count(0, example);
args.check_and_get_optional_command_arguments({});

View File

@ -21,7 +21,7 @@ namespace vcpkg::Commands::Install
const fs::path package_prefix_path = paths.package_dir(bpgh.spec);
const size_t prefix_length = package_prefix_path.native().size();
const triplet& target_triplet = bpgh.spec.target_triplet();
const Triplet& target_triplet = bpgh.spec.target_triplet();
const std::string& target_triplet_as_string = target_triplet.canonical_name();
std::error_code ec;
fs::create_directory(paths.installed / target_triplet_as_string, ec);
@ -96,7 +96,7 @@ namespace vcpkg::Commands::Install
}
};
static std::vector<std::string> extract_files_in_triplet(const std::vector<StatusParagraph_and_associated_files>& pgh_and_files, const triplet& triplet)
static std::vector<std::string> extract_files_in_triplet(const std::vector<StatusParagraph_and_associated_files>& pgh_and_files, const Triplet& triplet)
{
std::vector<std::string> output;
for (const StatusParagraph_and_associated_files& t : pgh_and_files)
@ -127,7 +127,7 @@ namespace vcpkg::Commands::Install
return SortedVector<std::string>(std::move(package_files));
}
static SortedVector<std::string> build_list_of_installed_files(const std::vector<StatusParagraph_and_associated_files>& pgh_and_files, const triplet& triplet)
static SortedVector<std::string> build_list_of_installed_files(const std::vector<StatusParagraph_and_associated_files>& pgh_and_files, const Triplet& triplet)
{
std::vector<std::string> installed_files = extract_files_in_triplet(pgh_and_files, triplet);
const size_t installed_remove_char_count = triplet.canonical_name().size() + 1; // +1 for the slash
@ -139,7 +139,7 @@ namespace vcpkg::Commands::Install
void install_package(const vcpkg_paths& paths, const BinaryParagraph& binary_paragraph, StatusParagraphs* status_db)
{
const fs::path package_dir = paths.package_dir(binary_paragraph.spec);
const triplet& triplet = binary_paragraph.spec.target_triplet();
const Triplet& triplet = binary_paragraph.spec.target_triplet();
const std::vector<StatusParagraph_and_associated_files> pgh_and_files = get_installed_files(paths, *status_db);
const SortedVector<std::string> package_files = build_list_of_package_files(package_dir);
@ -183,7 +183,7 @@ namespace vcpkg::Commands::Install
status_db->insert(std::make_unique<StatusParagraph>(spgh));
}
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet)
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet)
{
// input sanitization
static const std::string example = Commands::Help::create_example_string("install zlib zlib:x64-windows curl boost");

View File

@ -162,7 +162,7 @@ namespace vcpkg::Commands::Remove
}
}
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_triplet)
void perform_and_exit(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const Triplet& default_target_triplet)
{
static const std::string OPTION_PURGE = "--purge";
static const std::string OPTION_NO_PURGE = "--no-purge";
@ -173,7 +173,7 @@ namespace vcpkg::Commands::Remove
const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments({ OPTION_PURGE, OPTION_NO_PURGE, OPTION_RECURSE, OPTION_DRY_RUN, OPTION_OUTDATED });
StatusParagraphs status_db = database_load_check(paths);
std::vector<package_spec> specs;
std::vector<PackageSpec> specs;
if (options.find(OPTION_OUTDATED) != options.cend())
{
args.check_exact_arg_count(0, example);
@ -182,7 +182,7 @@ namespace vcpkg::Commands::Remove
else
{
args.check_min_arg_count(1, example);
specs = Util::fmap(args.command_arguments, [&](auto&& arg) { return Input::check_and_get_package_spec(arg, default_triplet, example); });
specs = Util::fmap(args.command_arguments, [&](auto&& arg) { return Input::check_and_get_package_spec(arg, default_target_triplet, example); });
for (auto&& spec : specs)
Input::check_triplet(spec.target_triplet(), paths);
}

View File

@ -1,6 +1,6 @@
#include "CppUnitTest.h"
#include "SourceParagraph.h"
#include "triplet.h"
#include "Triplet.h"
#pragma comment(lib,"version")
#pragma comment(lib,"winhttp")
@ -25,12 +25,12 @@ namespace UnitTest1
TEST_METHOD(filter_depends)
{
auto deps = expand_qualified_dependencies(parse_depends("libA [windows], libB, libC [uwp]"));
auto v = filter_dependencies(deps, triplet::X64_WINDOWS);
auto v = filter_dependencies(deps, Triplet::X64_WINDOWS);
Assert::AreEqual(size_t(2), v.size());
Assert::AreEqual("libA", v[0].c_str());
Assert::AreEqual("libB", v[1].c_str());
auto v2 = filter_dependencies(deps, triplet::ARM_UWP);
auto v2 = filter_dependencies(deps, Triplet::ARM_UWP);
Assert::AreEqual(size_t(2), v.size());
Assert::AreEqual("libB", v2[0].c_str());
Assert::AreEqual("libC", v2[1].c_str());

View File

@ -350,23 +350,23 @@ namespace UnitTest1
TEST_METHOD(package_spec_parse)
{
vcpkg::expected<vcpkg::PackageSpec> spec = vcpkg::PackageSpec::from_string("zlib", vcpkg::triplet::X86_WINDOWS);
vcpkg::expected<vcpkg::PackageSpec> spec = vcpkg::PackageSpec::from_string("zlib", vcpkg::Triplet::X86_WINDOWS);
Assert::AreEqual(vcpkg::PackageSpecParseResult::SUCCESS, vcpkg::to_package_spec_parse_result(spec.error_code()));
Assert::AreEqual("zlib", spec.get()->name().c_str());
Assert::AreEqual(vcpkg::triplet::X86_WINDOWS.canonical_name(), spec.get()->target_triplet().canonical_name());
Assert::AreEqual(vcpkg::Triplet::X86_WINDOWS.canonical_name(), spec.get()->target_triplet().canonical_name());
}
TEST_METHOD(package_spec_parse_with_arch)
{
vcpkg::expected<vcpkg::PackageSpec> spec = vcpkg::PackageSpec::from_string("zlib:x64-uwp", vcpkg::triplet::X86_WINDOWS);
vcpkg::expected<vcpkg::PackageSpec> spec = vcpkg::PackageSpec::from_string("zlib:x64-uwp", vcpkg::Triplet::X86_WINDOWS);
Assert::AreEqual(vcpkg::PackageSpecParseResult::SUCCESS, vcpkg::to_package_spec_parse_result(spec.error_code()));
Assert::AreEqual("zlib", spec.get()->name().c_str());
Assert::AreEqual(vcpkg::triplet::X64_UWP.canonical_name(), spec.get()->target_triplet().canonical_name());
Assert::AreEqual(vcpkg::Triplet::X64_UWP.canonical_name(), spec.get()->target_triplet().canonical_name());
}
TEST_METHOD(package_spec_parse_with_multiple_colon)
{
auto ec = vcpkg::PackageSpec::from_string("zlib:x86-uwp:", vcpkg::triplet::X86_WINDOWS).error_code();
auto ec = vcpkg::PackageSpec::from_string("zlib:x86-uwp:", vcpkg::Triplet::X86_WINDOWS).error_code();
Assert::AreEqual(vcpkg::PackageSpecParseResult::TOO_MANY_COLONS, vcpkg::to_package_spec_parse_result(ec));
}

View File

@ -1,64 +1,64 @@
#include "pch.h"
#include "triplet.h"
#include "Triplet.h"
#include "vcpkg_Checks.h"
#include "vcpkg_Strings.h"
namespace vcpkg
{
const triplet triplet::X86_WINDOWS = from_canonical_name("x86-windows");
const triplet triplet::X64_WINDOWS = from_canonical_name("x64-windows");
const triplet triplet::X86_UWP = from_canonical_name("x86-uwp");
const triplet triplet::X64_UWP = from_canonical_name("x64-uwp");
const triplet triplet::ARM_UWP = from_canonical_name("arm-uwp");
const Triplet Triplet::X86_WINDOWS = from_canonical_name("x86-windows");
const Triplet Triplet::X64_WINDOWS = from_canonical_name("x64-windows");
const Triplet Triplet::X86_UWP = from_canonical_name("x86-uwp");
const Triplet Triplet::X64_UWP = from_canonical_name("x64-uwp");
const Triplet Triplet::ARM_UWP = from_canonical_name("arm-uwp");
std::string to_string(const triplet& t)
std::string to_string(const Triplet& t)
{
return t.canonical_name();
}
std::string to_printf_arg(const triplet& t)
std::string to_printf_arg(const Triplet& t)
{
return to_string(t);
}
bool operator==(const triplet& left, const triplet& right)
bool operator==(const Triplet& left, const Triplet& right)
{
return left.canonical_name() == right.canonical_name();
}
bool operator!=(const triplet& left, const triplet& right)
bool operator!=(const Triplet& left, const Triplet& right)
{
return !(left == right);
}
std::ostream& operator<<(std::ostream& os, const triplet& t)
std::ostream& operator<<(std::ostream& os, const Triplet& t)
{
return os << to_string(t);
}
triplet triplet::from_canonical_name(const std::string& triplet_as_string)
Triplet Triplet::from_canonical_name(const std::string& triplet_as_string)
{
const std::string s(Strings::ascii_to_lowercase(triplet_as_string));
auto it = std::find(s.cbegin(), s.cend(), '-');
Checks::check_exit(VCPKG_LINE_INFO, it != s.cend(), "Invalid triplet: %s", triplet_as_string);
triplet t;
Triplet t;
t.m_canonical_name = s;
return t;
}
const std::string& triplet::canonical_name() const
const std::string& Triplet::canonical_name() const
{
return this->m_canonical_name;
}
std::string triplet::architecture() const
std::string Triplet::architecture() const
{
auto it = std::find(this->m_canonical_name.cbegin(), this->m_canonical_name.cend(), '-');
return std::string(this->m_canonical_name.cbegin(), it);
}
std::string triplet::system() const
std::string Triplet::system() const
{
auto it = std::find(this->m_canonical_name.cbegin(), this->m_canonical_name.cend(), '-');
return std::string(it + 1, this->m_canonical_name.cend());

View File

@ -69,21 +69,21 @@ static void inner(const vcpkg_cmd_arguments& args)
return command_function(args, paths);
}
triplet default_target_triplet;
Triplet default_target_triplet;
if (args.target_triplet != nullptr)
{
default_target_triplet = triplet::from_canonical_name(*args.target_triplet);
default_target_triplet = Triplet::from_canonical_name(*args.target_triplet);
}
else
{
const optional<std::wstring> vcpkg_default_triplet_env = System::get_environmental_variable(L"VCPKG_DEFAULT_TRIPLET");
if (auto v = vcpkg_default_triplet_env.get())
{
default_target_triplet = triplet::from_canonical_name(Strings::utf16_to_utf8(*v));
default_target_triplet = Triplet::from_canonical_name(Strings::utf16_to_utf8(*v));
}
else
{
default_target_triplet = triplet::X86_WINDOWS;
default_target_triplet = Triplet::X86_WINDOWS;
}
}

View File

@ -6,7 +6,7 @@
namespace vcpkg::Input
{
PackageSpec check_and_get_package_spec(const std::string& package_spec_as_string, const triplet& default_target_triplet, CStringView example_text)
PackageSpec check_and_get_package_spec(const std::string& package_spec_as_string, const Triplet& default_target_triplet, CStringView example_text)
{
const std::string as_lowercase = Strings::ascii_to_lowercase(package_spec_as_string);
expected<PackageSpec> expected_spec = PackageSpec::from_string(as_lowercase, default_target_triplet);
@ -21,7 +21,7 @@ namespace vcpkg::Input
Checks::exit_fail(VCPKG_LINE_INFO);
}
void check_triplet(const triplet& t, const vcpkg_paths& paths)
void check_triplet(const Triplet& t, const vcpkg_paths& paths)
{
if (!paths.is_valid_triplet(t))
{

View File

@ -211,7 +211,7 @@ namespace vcpkg
return this->vcpkg_dir_info / (pgh.fullstem() + ".list");
}
bool vcpkg_paths::is_valid_triplet(const triplet& t) const
bool vcpkg_paths::is_valid_triplet(const Triplet& t) const
{
auto it = fs::directory_iterator(this->triplets);
for (; it != fs::directory_iterator(); ++it)