From 34a2197c1aab497274ef716c88e893ac0cea664a Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Wed, 1 Feb 2023 15:38:06 -0800 Subject: [PATCH 01/12] add warning for default triplet --- include/vcpkg/base/messages.h | 4 ++++ include/vcpkg/triplet.h | 2 +- src/vcpkg.cpp | 2 +- src/vcpkg/base/messages.cpp | 1 + src/vcpkg/triplet.cpp | 24 ++++++++++++++++++++++-- 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/include/vcpkg/base/messages.h b/include/vcpkg/base/messages.h index ce80a3dcfc..d06fc4f1ec 100644 --- a/include/vcpkg/base/messages.h +++ b/include/vcpkg/base/messages.h @@ -1043,6 +1043,10 @@ namespace vcpkg "", "Based on your system settings, the default path to store binaries is \"{path}\". This consults " "%LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms."); + DECLARE_MESSAGE(DefaultTriplet, + (), + "", + "Starting with the September 2023 release, the default vcpkg triplet for builds will change from x86-windows to x64-windows."); DECLARE_MESSAGE(DeleteVcpkgConfigFromManifest, (msg::path), "", diff --git a/include/vcpkg/triplet.h b/include/vcpkg/triplet.h index c05349ce3a..55e2c5cf89 100644 --- a/include/vcpkg/triplet.h +++ b/include/vcpkg/triplet.h @@ -41,7 +41,7 @@ namespace vcpkg inline bool operator!=(Triplet left, Triplet right) { return !(left == right); } - Triplet default_triplet(const VcpkgCmdArguments& args); + Triplet default_triplet(const VcpkgCmdArguments& args, bool manifest_mode_enabled); Triplet default_host_triplet(const VcpkgCmdArguments& args); } diff --git a/src/vcpkg.cpp b/src/vcpkg.cpp index 95e355df10..ef17560c4d 100644 --- a/src/vcpkg.cpp +++ b/src/vcpkg.cpp @@ -132,7 +132,7 @@ namespace return command_function->function->perform_and_exit(args, paths); } - Triplet default_triplet = vcpkg::default_triplet(args); + Triplet default_triplet = vcpkg::default_triplet(args, paths.manifest_mode_enabled()); check_triplet(default_triplet, paths); Triplet host_triplet = vcpkg::default_host_triplet(args); check_triplet(host_triplet, paths); diff --git a/src/vcpkg/base/messages.cpp b/src/vcpkg/base/messages.cpp index 59f6419e81..bba68c0ea7 100644 --- a/src/vcpkg/base/messages.cpp +++ b/src/vcpkg/base/messages.cpp @@ -543,6 +543,7 @@ namespace vcpkg REGISTER_MESSAGE(DefaultBrowserLaunched); REGISTER_MESSAGE(DefaultFlag); REGISTER_MESSAGE(DefaultPathToBinaries); + REGISTER_MESSAGE(DefaultTriplet); REGISTER_MESSAGE(DeleteVcpkgConfigFromManifest); REGISTER_MESSAGE(DeprecatedPrefabDebugOption); REGISTER_MESSAGE(DetectCompilerHash); diff --git a/src/vcpkg/triplet.cpp b/src/vcpkg/triplet.cpp index 411ec2f476..64686cc2d2 100644 --- a/src/vcpkg/triplet.cpp +++ b/src/vcpkg/triplet.cpp @@ -1,5 +1,5 @@ #include - +#include #include #include @@ -83,13 +83,33 @@ namespace vcpkg return Triplet::from_canonical_name(std::move(canonical_name)); } - Triplet default_triplet(const VcpkgCmdArguments& args) + Triplet default_triplet(const VcpkgCmdArguments& args, bool is_manifest_mode) { if (auto triplet = args.triplet.get()) { + // The triplet is set by --triplet or VCPKG_DEFAULT_TRIPLET. return Triplet::from_canonical_name(*triplet); } #if defined(_WIN32) + // The triplet is not specified or is part of a string qualifier i.e. zlib:x64-windows + if (is_manifest_mode) + { + msg::println_warning(msgDefaultTriplet); + } + else + { + bool used_default_triplet = false; + for (auto&& arg : args.command_arguments) + { + const std::string as_lowercase = Strings::ascii_to_lowercase(std::string{arg}); + auto maybe_qpkg = parse_qualified_specifier(as_lowercase); + if (maybe_qpkg.has_value() && !maybe_qpkg.get()->triplet.has_value()) + { + msg::println_warning(msgDefaultTriplet); + break; + } + } + } return Triplet::from_canonical_name("x86-windows"); #else return system_triplet(); From d07d2d68be8f9940e6295b828969f6b063e6302a Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Wed, 1 Feb 2023 16:31:25 -0800 Subject: [PATCH 02/12] fix --- src/vcpkg/triplet.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vcpkg/triplet.cpp b/src/vcpkg/triplet.cpp index 64686cc2d2..259962292b 100644 --- a/src/vcpkg/triplet.cpp +++ b/src/vcpkg/triplet.cpp @@ -1,4 +1,5 @@ #include + #include #include #include @@ -85,6 +86,7 @@ namespace vcpkg Triplet default_triplet(const VcpkgCmdArguments& args, bool is_manifest_mode) { + (void)is_manifest_mode; if (auto triplet = args.triplet.get()) { // The triplet is set by --triplet or VCPKG_DEFAULT_TRIPLET. @@ -98,7 +100,6 @@ namespace vcpkg } else { - bool used_default_triplet = false; for (auto&& arg : args.command_arguments) { const std::string as_lowercase = Strings::ascii_to_lowercase(std::string{arg}); From e713f243e4d0e1baa4634e4fa7565b54d706231f Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 1 Feb 2023 17:02:51 -0800 Subject: [PATCH 03/12] Format --- include/vcpkg/base/messages.h | 3 ++- locales/messages.json | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/vcpkg/base/messages.h b/include/vcpkg/base/messages.h index d06fc4f1ec..7d708523e3 100644 --- a/include/vcpkg/base/messages.h +++ b/include/vcpkg/base/messages.h @@ -1046,7 +1046,8 @@ namespace vcpkg DECLARE_MESSAGE(DefaultTriplet, (), "", - "Starting with the September 2023 release, the default vcpkg triplet for builds will change from x86-windows to x64-windows."); + "Starting with the September 2023 release, the default vcpkg triplet for builds will change from " + "x86-windows to x64-windows."); DECLARE_MESSAGE(DeleteVcpkgConfigFromManifest, (msg::path), "", diff --git a/locales/messages.json b/locales/messages.json index 8700a8a90a..837d95b0c8 100644 --- a/locales/messages.json +++ b/locales/messages.json @@ -324,6 +324,7 @@ "_DefaultFlag.comment": "An example of {option} is editable.", "DefaultPathToBinaries": "Based on your system settings, the default path to store binaries is \"{path}\". This consults %LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms.", "_DefaultPathToBinaries.comment": "An example of {path} is /foo/bar.", + "DefaultTriplet": "Starting with the September 2023 release, the default vcpkg triplet for builds will change from x86-windows to x64-windows.", "DeleteVcpkgConfigFromManifest": "-- Or remove \"vcpkg-configuration\" from the manifest file {path}.", "_DeleteVcpkgConfigFromManifest.comment": "An example of {path} is /foo/bar.", "DeprecatedPrefabDebugOption": "--prefab-debug is now deprecated.", From cfd4d2ceaf25a819b3ec7df7c2e34f315e779a61 Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Tue, 7 Feb 2023 15:58:58 -0800 Subject: [PATCH 04/12] fix --- include/vcpkg/base/messages.h | 6 +++--- locales/messages.json | 2 +- src/vcpkg/triplet.cpp | 29 +++++++++++++++++------------ 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/include/vcpkg/base/messages.h b/include/vcpkg/base/messages.h index 7d708523e3..a2f2f21adb 100644 --- a/include/vcpkg/base/messages.h +++ b/include/vcpkg/base/messages.h @@ -1044,10 +1044,10 @@ namespace vcpkg "Based on your system settings, the default path to store binaries is \"{path}\". This consults " "%LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms."); DECLARE_MESSAGE(DefaultTriplet, - (), + (msg::triplet), "", - "Starting with the September 2023 release, the default vcpkg triplet for builds will change from " - "x86-windows to x64-windows."); + "Starting with the September 2023 release, the default triplet for builds will change from " + "x86-windows to the detected host triplet ({triplet})."); DECLARE_MESSAGE(DeleteVcpkgConfigFromManifest, (msg::path), "", diff --git a/locales/messages.json b/locales/messages.json index 837d95b0c8..069d26e083 100644 --- a/locales/messages.json +++ b/locales/messages.json @@ -324,7 +324,7 @@ "_DefaultFlag.comment": "An example of {option} is editable.", "DefaultPathToBinaries": "Based on your system settings, the default path to store binaries is \"{path}\". This consults %LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms.", "_DefaultPathToBinaries.comment": "An example of {path} is /foo/bar.", - "DefaultTriplet": "Starting with the September 2023 release, the default vcpkg triplet for builds will change from x86-windows to x64-windows.", + "DefaultTriplet": "Starting with the September 2023 release, the default vcpkg triplet for builds will change from x86-windows to the detected host triplet ({triplet}).", "DeleteVcpkgConfigFromManifest": "-- Or remove \"vcpkg-configuration\" from the manifest file {path}.", "_DeleteVcpkgConfigFromManifest.comment": "An example of {path} is /foo/bar.", "DeprecatedPrefabDebugOption": "--prefab-debug is now deprecated.", diff --git a/src/vcpkg/triplet.cpp b/src/vcpkg/triplet.cpp index 259962292b..7540f49997 100644 --- a/src/vcpkg/triplet.cpp +++ b/src/vcpkg/triplet.cpp @@ -93,21 +93,26 @@ namespace vcpkg return Triplet::from_canonical_name(*triplet); } #if defined(_WIN32) - // The triplet is not specified or is part of a string qualifier i.e. zlib:x64-windows - if (is_manifest_mode) + // Skip warning message on JSON output + if (!Strings::case_insensitive_ascii_equals(args.command, "z-print-config")) { - msg::println_warning(msgDefaultTriplet); - } - else - { - for (auto&& arg : args.command_arguments) + // The triplet is not specified or is part of a string qualifier i.e. zlib:x64-windows + auto host_triplet = system_triplet().canonical_name(); + if (is_manifest_mode) + { + msg::println_warning(msgDefaultTriplet, msg::triplet = host_triplet); + } + else { - const std::string as_lowercase = Strings::ascii_to_lowercase(std::string{arg}); - auto maybe_qpkg = parse_qualified_specifier(as_lowercase); - if (maybe_qpkg.has_value() && !maybe_qpkg.get()->triplet.has_value()) + for (auto&& arg : args.command_arguments) { - msg::println_warning(msgDefaultTriplet); - break; + const std::string as_lowercase = Strings::ascii_to_lowercase(std::string{arg}); + auto maybe_qpkg = parse_qualified_specifier(as_lowercase); + if (maybe_qpkg.has_value() && !maybe_qpkg.get()->triplet.has_value()) + { + msg::println_warning(msgDefaultTriplet, msg::triplet = host_triplet); + break; + } } } } From e5d105e487af3f28b00e32886177235db8d586ea Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Fri, 10 Feb 2023 19:17:59 -0800 Subject: [PATCH 05/12] fix --- include/vcpkg/base/messages.h | 5 ++- include/vcpkg/triplet.h | 3 +- locales/messages.json | 2 +- src/vcpkg.cpp | 2 +- src/vcpkg/build.cpp | 1 + src/vcpkg/commands.check-support.cpp | 1 + src/vcpkg/commands.ci.cpp | 2 + src/vcpkg/commands.dependinfo.cpp | 1 + src/vcpkg/commands.env.cpp | 1 + src/vcpkg/commands.setinstalled.cpp | 1 + src/vcpkg/commands.upgrade.cpp | 1 + src/vcpkg/export.cpp | 1 + src/vcpkg/install.cpp | 2 + src/vcpkg/remove.cpp | 1 + src/vcpkg/triplet.cpp | 56 +++++++++++++++------------- 15 files changed, 49 insertions(+), 31 deletions(-) diff --git a/include/vcpkg/base/messages.h b/include/vcpkg/base/messages.h index a2f2f21adb..ed5e18e71b 100644 --- a/include/vcpkg/base/messages.h +++ b/include/vcpkg/base/messages.h @@ -1044,10 +1044,11 @@ namespace vcpkg "Based on your system settings, the default path to store binaries is \"{path}\". This consults " "%LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms."); DECLARE_MESSAGE(DefaultTriplet, - (msg::triplet), + (msg::triplet, msg::value), "", "Starting with the September 2023 release, the default triplet for builds will change from " - "x86-windows to the detected host triplet ({triplet})."); + "x86-windows to the detected host triplet ({triplet}). To resolve this message, add --triplet " + "{triplet} for the new value, or --triplet {value} to keep the same behavior after the change."); DECLARE_MESSAGE(DeleteVcpkgConfigFromManifest, (msg::path), "", diff --git a/include/vcpkg/triplet.h b/include/vcpkg/triplet.h index 55e2c5cf89..17a7d85a77 100644 --- a/include/vcpkg/triplet.h +++ b/include/vcpkg/triplet.h @@ -41,8 +41,9 @@ namespace vcpkg inline bool operator!=(Triplet left, Triplet right) { return !(left == right); } - Triplet default_triplet(const VcpkgCmdArguments& args, bool manifest_mode_enabled); + Triplet default_triplet(const VcpkgCmdArguments& args); Triplet default_host_triplet(const VcpkgCmdArguments& args); + void print_default_triplet_warning(const VcpkgCmdArguments& args, const std::vector& qualified_deps); } VCPKG_FORMAT_AS(vcpkg::Triplet, vcpkg::StringView); diff --git a/locales/messages.json b/locales/messages.json index 069d26e083..5b3fd614fb 100644 --- a/locales/messages.json +++ b/locales/messages.json @@ -324,7 +324,7 @@ "_DefaultFlag.comment": "An example of {option} is editable.", "DefaultPathToBinaries": "Based on your system settings, the default path to store binaries is \"{path}\". This consults %LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms.", "_DefaultPathToBinaries.comment": "An example of {path} is /foo/bar.", - "DefaultTriplet": "Starting with the September 2023 release, the default vcpkg triplet for builds will change from x86-windows to the detected host triplet ({triplet}).", + "DefaultTriplet": "Starting with the September 2023 release, the default triplet for builds will change from x86-windows to the detected host triplet ({triplet}). To resolve this message, add --triplet {triplet} for the new value, or --triplet {value} to keep the same behavior after the change.", "DeleteVcpkgConfigFromManifest": "-- Or remove \"vcpkg-configuration\" from the manifest file {path}.", "_DeleteVcpkgConfigFromManifest.comment": "An example of {path} is /foo/bar.", "DeprecatedPrefabDebugOption": "--prefab-debug is now deprecated.", diff --git a/src/vcpkg.cpp b/src/vcpkg.cpp index ef17560c4d..95e355df10 100644 --- a/src/vcpkg.cpp +++ b/src/vcpkg.cpp @@ -132,7 +132,7 @@ namespace return command_function->function->perform_and_exit(args, paths); } - Triplet default_triplet = vcpkg::default_triplet(args, paths.manifest_mode_enabled()); + Triplet default_triplet = vcpkg::default_triplet(args); check_triplet(default_triplet, paths); Triplet host_triplet = vcpkg::default_host_triplet(args); check_triplet(host_triplet, paths); diff --git a/src/vcpkg/build.cpp b/src/vcpkg/build.cpp index a921833b86..15a6ec09d8 100644 --- a/src/vcpkg/build.cpp +++ b/src/vcpkg/build.cpp @@ -188,6 +188,7 @@ namespace vcpkg::Build BinaryCache binary_cache{args, paths}; const FullPackageSpec spec = check_and_get_full_package_spec( std::move(first_arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); + print_default_triplet_warning(args, {args.command_arguments[0]}); auto& fs = paths.get_filesystem(); auto registry_set = paths.make_registry_set(); diff --git a/src/vcpkg/commands.check-support.cpp b/src/vcpkg/commands.check-support.cpp index d0193060e3..123c08f759 100644 --- a/src/vcpkg/commands.check-support.cpp +++ b/src/vcpkg/commands.check-support.cpp @@ -113,6 +113,7 @@ namespace vcpkg::Commands return check_and_get_full_package_spec( std::string(arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); }); + print_default_triplet_warning(args, args.command_arguments); auto& fs = paths.get_filesystem(); auto registry_set = paths.make_registry_set(); diff --git a/src/vcpkg/commands.ci.cpp b/src/vcpkg/commands.ci.cpp index 15b1935373..747efa648a 100644 --- a/src/vcpkg/commands.ci.cpp +++ b/src/vcpkg/commands.ci.cpp @@ -335,6 +335,8 @@ namespace vcpkg::Commands::CI { msg::println_warning(msgInternalCICommand); + print_default_triplet_warning(args, {}); + const ParsedArguments options = args.parse_arguments(COMMAND_STRUCTURE); const auto& settings = options.settings; diff --git a/src/vcpkg/commands.dependinfo.cpp b/src/vcpkg/commands.dependinfo.cpp index 3572480f90..b98e1e7468 100644 --- a/src/vcpkg/commands.dependinfo.cpp +++ b/src/vcpkg/commands.dependinfo.cpp @@ -305,6 +305,7 @@ namespace vcpkg::Commands::DependInfo return check_and_get_full_package_spec( std::string{arg}, default_triplet, COMMAND_STRUCTURE.example_text, paths); }); + print_default_triplet_warning(args, args.command_arguments); auto& fs = paths.get_filesystem(); auto registry_set = paths.make_registry_set(); diff --git a/src/vcpkg/commands.env.cpp b/src/vcpkg/commands.env.cpp index 5072f5d57a..471885bcef 100644 --- a/src/vcpkg/commands.env.cpp +++ b/src/vcpkg/commands.env.cpp @@ -54,6 +54,7 @@ namespace vcpkg::Commands::Env auto& var_provider = *var_provider_storage; var_provider.load_generic_triplet_vars(triplet); + print_default_triplet_warning(args, {}); const PreBuildInfo pre_build_info( paths, triplet, var_provider.get_generic_triplet_vars(triplet).value_or_exit(VCPKG_LINE_INFO)); diff --git a/src/vcpkg/commands.setinstalled.cpp b/src/vcpkg/commands.setinstalled.cpp index e0a977be75..09c630cec5 100644 --- a/src/vcpkg/commands.setinstalled.cpp +++ b/src/vcpkg/commands.setinstalled.cpp @@ -160,6 +160,7 @@ namespace vcpkg::Commands::SetInstalled return check_and_get_full_package_spec( std::string(arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); }); + print_default_triplet_warning(args, args.command_arguments); BinaryCache binary_cache{args, paths}; diff --git a/src/vcpkg/commands.upgrade.cpp b/src/vcpkg/commands.upgrade.cpp index f1a6be9996..e7049e3fde 100644 --- a/src/vcpkg/commands.upgrade.cpp +++ b/src/vcpkg/commands.upgrade.cpp @@ -96,6 +96,7 @@ namespace vcpkg::Commands::Upgrade const std::vector specs = Util::fmap(args.command_arguments, [&](auto&& arg) { return check_and_get_package_spec(std::string(arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); }); + print_default_triplet_warning(args, args.command_arguments); ActionPlan action_plan; if (specs.empty()) diff --git a/src/vcpkg/export.cpp b/src/vcpkg/export.cpp index 31471bbe13..c5a246026b 100644 --- a/src/vcpkg/export.cpp +++ b/src/vcpkg/export.cpp @@ -419,6 +419,7 @@ namespace vcpkg::Export return check_and_get_package_spec( std::string(arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); }); + print_default_triplet_warning(args, args.command_arguments); } if (!ret.raw && !ret.nuget && !ret.ifw && !ret.zip && !ret.seven_zip && !ret.dry_run && !ret.chocolatey && diff --git a/src/vcpkg/install.cpp b/src/vcpkg/install.cpp index fc3cc58289..dfd1dd8a27 100644 --- a/src/vcpkg/install.cpp +++ b/src/vcpkg/install.cpp @@ -1018,6 +1018,7 @@ namespace vcpkg print_usage(COMMAND_STRUCTURE); Checks::exit_fail(VCPKG_LINE_INFO); } + print_default_triplet_warning(args, {}); } BinaryCache binary_cache; @@ -1194,6 +1195,7 @@ namespace vcpkg return check_and_get_full_package_spec( std::string(arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); }); + print_default_triplet_warning(args, args.command_arguments); // create the plan msg::println(msgComputingInstallPlan); diff --git a/src/vcpkg/remove.cpp b/src/vcpkg/remove.cpp index 0ab59e8378..d1d5203fd6 100644 --- a/src/vcpkg/remove.cpp +++ b/src/vcpkg/remove.cpp @@ -231,6 +231,7 @@ namespace vcpkg::Remove return check_and_get_package_spec( std::string(arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); }); + print_default_triplet_warning(args, args.command_arguments); } const bool no_purge = Util::Sets::contains(options.switches, OPTION_NO_PURGE); diff --git a/src/vcpkg/triplet.cpp b/src/vcpkg/triplet.cpp index 7540f49997..edfc4b0f55 100644 --- a/src/vcpkg/triplet.cpp +++ b/src/vcpkg/triplet.cpp @@ -84,38 +84,13 @@ namespace vcpkg return Triplet::from_canonical_name(std::move(canonical_name)); } - Triplet default_triplet(const VcpkgCmdArguments& args, bool is_manifest_mode) + Triplet default_triplet(const VcpkgCmdArguments& args) { - (void)is_manifest_mode; if (auto triplet = args.triplet.get()) { - // The triplet is set by --triplet or VCPKG_DEFAULT_TRIPLET. return Triplet::from_canonical_name(*triplet); } #if defined(_WIN32) - // Skip warning message on JSON output - if (!Strings::case_insensitive_ascii_equals(args.command, "z-print-config")) - { - // The triplet is not specified or is part of a string qualifier i.e. zlib:x64-windows - auto host_triplet = system_triplet().canonical_name(); - if (is_manifest_mode) - { - msg::println_warning(msgDefaultTriplet, msg::triplet = host_triplet); - } - else - { - for (auto&& arg : args.command_arguments) - { - const std::string as_lowercase = Strings::ascii_to_lowercase(std::string{arg}); - auto maybe_qpkg = parse_qualified_specifier(as_lowercase); - if (maybe_qpkg.has_value() && !maybe_qpkg.get()->triplet.has_value()) - { - msg::println_warning(msgDefaultTriplet, msg::triplet = host_triplet); - break; - } - } - } - } return Triplet::from_canonical_name("x86-windows"); #else return system_triplet(); @@ -130,4 +105,33 @@ namespace vcpkg } return system_triplet(); } + + void print_default_triplet_warning(const VcpkgCmdArguments& args, const std::vector& qualified_deps) + { + (void)args; + (void)qualified_deps; +#if defined(_WIN32) + // The triplet is not set by --triplet or VCPKG_DEFAULT_TRIPLET + if (!args.triplet.has_value()) + { + if (qualified_deps.size() == 0) + { + msg::println_warning( + msgDefaultTriplet, msg::triplet = default_host_triplet(args), msg::value = "x86-windows"); + return; + } + for (auto&& arg : qualified_deps) + { + const std::string as_lowercase = Strings::ascii_to_lowercase(std::string{arg}); + auto maybe_qpkg = parse_qualified_specifier(as_lowercase); + if (maybe_qpkg.has_value() && !maybe_qpkg.get()->triplet.has_value()) + { + msg::println_warning( + msgDefaultTriplet, msg::triplet = default_host_triplet(args), msg::value = "x86-windows"); + return; + } + } + } +#endif + } } From 98878752c2088968f802ef553443e7aa4f594375 Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Sat, 11 Feb 2023 14:15:13 -0800 Subject: [PATCH 06/12] fix --- include/vcpkg/base/messages.h | 8 ++++---- locales/messages.json | 2 +- src/vcpkg/build.cpp | 2 +- src/vcpkg/triplet.cpp | 6 ++---- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/include/vcpkg/base/messages.h b/include/vcpkg/base/messages.h index ed5e18e71b..2f5997a9c0 100644 --- a/include/vcpkg/base/messages.h +++ b/include/vcpkg/base/messages.h @@ -1044,11 +1044,11 @@ namespace vcpkg "Based on your system settings, the default path to store binaries is \"{path}\". This consults " "%LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms."); DECLARE_MESSAGE(DefaultTriplet, - (msg::triplet, msg::value), + (msg::triplet), "", - "Starting with the September 2023 release, the default triplet for builds will change from " - "x86-windows to the detected host triplet ({triplet}). To resolve this message, add --triplet " - "{triplet} for the new value, or --triplet {value} to keep the same behavior after the change."); + "Starting with the September 2023 release, the default triplet for vcpkg libraries will change " + "from x86-windows to the detected host triplet ({triplet}). To resolve this message, add --triplet " + "x86-windows to keep the same behavior."); DECLARE_MESSAGE(DeleteVcpkgConfigFromManifest, (msg::path), "", diff --git a/locales/messages.json b/locales/messages.json index 5b3fd614fb..900ab88959 100644 --- a/locales/messages.json +++ b/locales/messages.json @@ -324,7 +324,7 @@ "_DefaultFlag.comment": "An example of {option} is editable.", "DefaultPathToBinaries": "Based on your system settings, the default path to store binaries is \"{path}\". This consults %LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms.", "_DefaultPathToBinaries.comment": "An example of {path} is /foo/bar.", - "DefaultTriplet": "Starting with the September 2023 release, the default triplet for builds will change from x86-windows to the detected host triplet ({triplet}). To resolve this message, add --triplet {triplet} for the new value, or --triplet {value} to keep the same behavior after the change.", + "DefaultTriplet": "Starting with the September 2023 release, the default triplet for vcpkg libraries will change from x86-windows to the detected host triplet ({triplet}). To resolve this message, add --triplet x86-windows to keep the same behavior.", "DeleteVcpkgConfigFromManifest": "-- Or remove \"vcpkg-configuration\" from the manifest file {path}.", "_DeleteVcpkgConfigFromManifest.comment": "An example of {path} is /foo/bar.", "DeprecatedPrefabDebugOption": "--prefab-debug is now deprecated.", diff --git a/src/vcpkg/build.cpp b/src/vcpkg/build.cpp index 15a6ec09d8..c6dc90622e 100644 --- a/src/vcpkg/build.cpp +++ b/src/vcpkg/build.cpp @@ -188,7 +188,7 @@ namespace vcpkg::Build BinaryCache binary_cache{args, paths}; const FullPackageSpec spec = check_and_get_full_package_spec( std::move(first_arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); - print_default_triplet_warning(args, {args.command_arguments[0]}); + print_default_triplet_warning(args, std::vector{args.command_arguments[0]}); auto& fs = paths.get_filesystem(); auto registry_set = paths.make_registry_set(); diff --git a/src/vcpkg/triplet.cpp b/src/vcpkg/triplet.cpp index edfc4b0f55..9ec9c5a045 100644 --- a/src/vcpkg/triplet.cpp +++ b/src/vcpkg/triplet.cpp @@ -116,8 +116,7 @@ namespace vcpkg { if (qualified_deps.size() == 0) { - msg::println_warning( - msgDefaultTriplet, msg::triplet = default_host_triplet(args), msg::value = "x86-windows"); + msg::println_warning(msgDefaultTriplet, msg::triplet = default_host_triplet(args)); return; } for (auto&& arg : qualified_deps) @@ -126,8 +125,7 @@ namespace vcpkg auto maybe_qpkg = parse_qualified_specifier(as_lowercase); if (maybe_qpkg.has_value() && !maybe_qpkg.get()->triplet.has_value()) { - msg::println_warning( - msgDefaultTriplet, msg::triplet = default_host_triplet(args), msg::value = "x86-windows"); + msg::println_warning(msgDefaultTriplet, msg::triplet = default_host_triplet(args)); return; } } From d251b0e3007e5714489a284c08341cb4a65410d8 Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Sat, 11 Feb 2023 15:03:18 -0800 Subject: [PATCH 07/12] fix --- src/vcpkg/install.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vcpkg/install.cpp b/src/vcpkg/install.cpp index dfd1dd8a27..09f6b4e98f 100644 --- a/src/vcpkg/install.cpp +++ b/src/vcpkg/install.cpp @@ -993,6 +993,7 @@ namespace vcpkg print_usage(MANIFEST_COMMAND_STRUCTURE); Checks::exit_fail(VCPKG_LINE_INFO); } + print_default_triplet_warning(args, {}); } else { @@ -1018,7 +1019,6 @@ namespace vcpkg print_usage(COMMAND_STRUCTURE); Checks::exit_fail(VCPKG_LINE_INFO); } - print_default_triplet_warning(args, {}); } BinaryCache binary_cache; From 6eb889042c8ee454cda8dc2e31d322ded3d08d6f Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Sun, 12 Feb 2023 20:38:02 -0800 Subject: [PATCH 08/12] fix --- src/vcpkg/commands.env.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/vcpkg/commands.env.cpp b/src/vcpkg/commands.env.cpp index 471885bcef..5072f5d57a 100644 --- a/src/vcpkg/commands.env.cpp +++ b/src/vcpkg/commands.env.cpp @@ -54,7 +54,6 @@ namespace vcpkg::Commands::Env auto& var_provider = *var_provider_storage; var_provider.load_generic_triplet_vars(triplet); - print_default_triplet_warning(args, {}); const PreBuildInfo pre_build_info( paths, triplet, var_provider.get_generic_triplet_vars(triplet).value_or_exit(VCPKG_LINE_INFO)); From c8396889f482d1c8aa66ca419f3f2902c3c31833 Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Mon, 13 Feb 2023 10:56:04 -0800 Subject: [PATCH 09/12] fix --- include/vcpkg/triplet.h | 2 +- src/vcpkg/build.cpp | 2 +- src/vcpkg/commands.upgrade.cpp | 1 - src/vcpkg/triplet.cpp | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/include/vcpkg/triplet.h b/include/vcpkg/triplet.h index 17a7d85a77..b40ecfa9c9 100644 --- a/include/vcpkg/triplet.h +++ b/include/vcpkg/triplet.h @@ -43,7 +43,7 @@ namespace vcpkg Triplet default_triplet(const VcpkgCmdArguments& args); Triplet default_host_triplet(const VcpkgCmdArguments& args); - void print_default_triplet_warning(const VcpkgCmdArguments& args, const std::vector& qualified_deps); + void print_default_triplet_warning(const VcpkgCmdArguments& args, View qualified_deps); } VCPKG_FORMAT_AS(vcpkg::Triplet, vcpkg::StringView); diff --git a/src/vcpkg/build.cpp b/src/vcpkg/build.cpp index c6dc90622e..ec788eae4a 100644 --- a/src/vcpkg/build.cpp +++ b/src/vcpkg/build.cpp @@ -188,7 +188,7 @@ namespace vcpkg::Build BinaryCache binary_cache{args, paths}; const FullPackageSpec spec = check_and_get_full_package_spec( std::move(first_arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); - print_default_triplet_warning(args, std::vector{args.command_arguments[0]}); + print_default_triplet_warning(args, {&args.command_arguments[0], 1}); auto& fs = paths.get_filesystem(); auto registry_set = paths.make_registry_set(); diff --git a/src/vcpkg/commands.upgrade.cpp b/src/vcpkg/commands.upgrade.cpp index e7049e3fde..f1a6be9996 100644 --- a/src/vcpkg/commands.upgrade.cpp +++ b/src/vcpkg/commands.upgrade.cpp @@ -96,7 +96,6 @@ namespace vcpkg::Commands::Upgrade const std::vector specs = Util::fmap(args.command_arguments, [&](auto&& arg) { return check_and_get_package_spec(std::string(arg), default_triplet, COMMAND_STRUCTURE.example_text, paths); }); - print_default_triplet_warning(args, args.command_arguments); ActionPlan action_plan; if (specs.empty()) diff --git a/src/vcpkg/triplet.cpp b/src/vcpkg/triplet.cpp index 9ec9c5a045..061c4cc3ad 100644 --- a/src/vcpkg/triplet.cpp +++ b/src/vcpkg/triplet.cpp @@ -106,7 +106,7 @@ namespace vcpkg return system_triplet(); } - void print_default_triplet_warning(const VcpkgCmdArguments& args, const std::vector& qualified_deps) + void print_default_triplet_warning(const VcpkgCmdArguments& args, View qualified_deps) { (void)args; (void)qualified_deps; From bda99c8f6478aa57c9591c91406161f737acd77a Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Mon, 13 Feb 2023 11:58:39 -0800 Subject: [PATCH 10/12] fix --- include/vcpkg/triplet.h | 2 +- src/vcpkg/triplet.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/vcpkg/triplet.h b/include/vcpkg/triplet.h index b40ecfa9c9..6e6c8dfe97 100644 --- a/include/vcpkg/triplet.h +++ b/include/vcpkg/triplet.h @@ -43,7 +43,7 @@ namespace vcpkg Triplet default_triplet(const VcpkgCmdArguments& args); Triplet default_host_triplet(const VcpkgCmdArguments& args); - void print_default_triplet_warning(const VcpkgCmdArguments& args, View qualified_deps); + void print_default_triplet_warning(const VcpkgCmdArguments& args, View specs); } VCPKG_FORMAT_AS(vcpkg::Triplet, vcpkg::StringView); diff --git a/src/vcpkg/triplet.cpp b/src/vcpkg/triplet.cpp index 061c4cc3ad..26bb4c5dc9 100644 --- a/src/vcpkg/triplet.cpp +++ b/src/vcpkg/triplet.cpp @@ -106,20 +106,20 @@ namespace vcpkg return system_triplet(); } - void print_default_triplet_warning(const VcpkgCmdArguments& args, View qualified_deps) + void print_default_triplet_warning(const VcpkgCmdArguments& args, View specs) { (void)args; - (void)qualified_deps; + (void)specs; #if defined(_WIN32) // The triplet is not set by --triplet or VCPKG_DEFAULT_TRIPLET if (!args.triplet.has_value()) { - if (qualified_deps.size() == 0) + if (specs.size() == 0) { msg::println_warning(msgDefaultTriplet, msg::triplet = default_host_triplet(args)); return; } - for (auto&& arg : qualified_deps) + for (auto&& arg : specs) { const std::string as_lowercase = Strings::ascii_to_lowercase(std::string{arg}); auto maybe_qpkg = parse_qualified_specifier(as_lowercase); From 40c178f13ecdd90699a767c5cb67a7697cfe262b Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Mon, 13 Feb 2023 14:04:03 -0800 Subject: [PATCH 11/12] format --- locales/messages.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/messages.json b/locales/messages.json index a826d10c68..502c276110 100644 --- a/locales/messages.json +++ b/locales/messages.json @@ -325,6 +325,7 @@ "DefaultPathToBinaries": "Based on your system settings, the default path to store binaries is \"{path}\". This consults %LOCALAPPDATA%/%APPDATA% on Windows and $XDG_CACHE_HOME or $HOME on other platforms.", "_DefaultPathToBinaries.comment": "An example of {path} is /foo/bar.", "DefaultTriplet": "Starting with the September 2023 release, the default triplet for vcpkg libraries will change from x86-windows to the detected host triplet ({triplet}). To resolve this message, add --triplet x86-windows to keep the same behavior.", + "_DefaultTriplet.comment": "An example of {triplet} is x64-windows.", "DeleteVcpkgConfigFromManifest": "-- Or remove \"vcpkg-configuration\" from the manifest file {path}.", "_DeleteVcpkgConfigFromManifest.comment": "An example of {path} is /foo/bar.", "DeprecatedPrefabDebugOption": "--prefab-debug is now deprecated.", @@ -389,8 +390,8 @@ "EndOfStringInCodeUnit": "found end of string in middle of code point", "EnvInvalidMaxConcurrency": "{env_var} is {value}, must be > 0", "_EnvInvalidMaxConcurrency.comment": "{value} is the invalid value of an environment variable An example of {env_var} is VCPKG_DEFAULT_TRIPLET.", - "EnvStrFailedToExtract": "could not expand the environment string:", "EnvPlatformNotSupported": "Build environment commands are not supported on this platform", + "EnvStrFailedToExtract": "could not expand the environment string:", "ErrorDetectingCompilerInfo": "while detecting compiler information:\nThe log file content at \"{path}\" is:", "_ErrorDetectingCompilerInfo.comment": "An example of {path} is /foo/bar.", "ErrorIndividualPackagesUnsupported": "In manifest mode, `vcpkg install` does not support individual package arguments.\nTo install additional packages, edit vcpkg.json and then run `vcpkg install` without any package arguments.", From e624b00d7d2a080cfc5ed1d2f8dc89d5a80293b8 Mon Sep 17 00:00:00 2001 From: dan-shaw <51385773+dan-shaw@users.noreply.github.com> Date: Mon, 13 Feb 2023 15:15:02 -0800 Subject: [PATCH 12/12] fix --- src/vcpkg/commands.upgrade.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vcpkg/commands.upgrade.cpp b/src/vcpkg/commands.upgrade.cpp index f559622ec9..1ede4b5e38 100644 --- a/src/vcpkg/commands.upgrade.cpp +++ b/src/vcpkg/commands.upgrade.cpp @@ -118,6 +118,8 @@ namespace vcpkg::Commands::Upgrade } else { + print_default_triplet_warning(args, args.command_arguments); + std::vector not_installed; std::vector no_control_file; std::vector to_upgrade;