color -> Color

This commit is contained in:
Alexander Karatarakis 2017-04-03 16:31:00 -07:00
parent 898edccbdc
commit e401799aca
15 changed files with 97 additions and 97 deletions

View File

@ -23,7 +23,7 @@ namespace vcpkg::System
std::wstring create_powershell_script_cmd(const fs::path& script_path, const CWStringView args = L""); std::wstring create_powershell_script_cmd(const fs::path& script_path, const CWStringView args = L"");
enum class color enum class Color
{ {
success = 10, success = 10,
error = 12, error = 12,
@ -32,8 +32,8 @@ namespace vcpkg::System
void print(const CStringView message); void print(const CStringView message);
void println(const CStringView message); void println(const CStringView message);
void print(const color c, const CStringView message); void print(const Color c, const CStringView message);
void println(const color c, const CStringView message); void println(const Color c, const CStringView message);
template <class Arg1, class...Args> template <class Arg1, class...Args>
void print(const char* messageTemplate, const Arg1& messageArg1, const Args&... messageArgs) void print(const char* messageTemplate, const Arg1& messageArg1, const Args&... messageArgs)
@ -42,7 +42,7 @@ namespace vcpkg::System
} }
template <class Arg1, class...Args> template <class Arg1, class...Args>
void print(const color c, const char* messageTemplate, const Arg1& messageArg1, const Args&... messageArgs) void print(const Color c, const char* messageTemplate, const Arg1& messageArg1, const Args&... messageArgs)
{ {
return print(c, Strings::format(messageTemplate, messageArg1, messageArgs...)); return print(c, Strings::format(messageTemplate, messageArg1, messageArgs...));
} }
@ -54,7 +54,7 @@ namespace vcpkg::System
} }
template <class Arg1, class...Args> template <class Arg1, class...Args>
void println(const color c, const char* messageTemplate, const Arg1& messageArg1, const Args&... messageArgs) void println(const Color c, const char* messageTemplate, const Arg1& messageArg1, const Args&... messageArgs)
{ {
return println(c, Strings::format(messageTemplate, messageArg1, messageArgs...)); return println(c, Strings::format(messageTemplate, messageArg1, messageArgs...));
} }

View File

@ -74,7 +74,7 @@ namespace vcpkg::PostBuildLint
const fs::path include_dir = package_dir / "include"; const fs::path include_dir = package_dir / "include";
if (!fs::exists(include_dir) || fs::is_empty(include_dir)) if (!fs::exists(include_dir) || fs::is_empty(include_dir))
{ {
System::println(System::color::warning, "The folder /include is empty. This indicates the library was not correctly installed."); System::println(System::Color::warning, "The folder /include is empty. This indicates the library was not correctly installed.");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -93,7 +93,7 @@ namespace vcpkg::PostBuildLint
if (!files_found.empty()) if (!files_found.empty())
{ {
System::println(System::color::warning, "Include files should not be duplicated into the /debug/include directory. If this cannot be disabled in the project cmake, use\n" System::println(System::Color::warning, "Include files should not be duplicated into the /debug/include directory. If this cannot be disabled in the project cmake, use\n"
" file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)" " file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)"
); );
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
@ -108,7 +108,7 @@ namespace vcpkg::PostBuildLint
if (fs::exists(debug_share) && !fs::is_empty(debug_share)) if (fs::exists(debug_share) && !fs::is_empty(debug_share))
{ {
System::println(System::color::warning, "/debug/share should not exist. Please reorganize any important files, then use\n" System::println(System::Color::warning, "/debug/share should not exist. Please reorganize any important files, then use\n"
" file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)"); " file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -121,7 +121,7 @@ namespace vcpkg::PostBuildLint
const fs::path lib_cmake = package_dir / "lib" / "cmake"; const fs::path lib_cmake = package_dir / "lib" / "cmake";
if (fs::exists(lib_cmake)) if (fs::exists(lib_cmake))
{ {
System::println(System::color::warning, "The /lib/cmake folder should be moved to /share/%s/cmake.", spec.name()); System::println(System::Color::warning, "The /lib/cmake folder should be moved to /share/%s/cmake.", spec.name());
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -138,7 +138,7 @@ namespace vcpkg::PostBuildLint
if (!misplaced_cmake_files.empty()) if (!misplaced_cmake_files.empty())
{ {
System::println(System::color::warning, "The following cmake files were found outside /share/%s. Please place cmake files in /share/%s.", spec.name(), spec.name()); System::println(System::Color::warning, "The following cmake files were found outside /share/%s. Please place cmake files in /share/%s.", spec.name(), spec.name());
Files::print_paths(misplaced_cmake_files); Files::print_paths(misplaced_cmake_files);
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -151,7 +151,7 @@ namespace vcpkg::PostBuildLint
const fs::path lib_cmake_debug = package_dir / "debug" / "lib" / "cmake"; const fs::path lib_cmake_debug = package_dir / "debug" / "lib" / "cmake";
if (fs::exists(lib_cmake_debug)) if (fs::exists(lib_cmake_debug))
{ {
System::println(System::color::warning, "The /debug/lib/cmake folder should be moved to just /debug/cmake"); System::println(System::Color::warning, "The /debug/lib/cmake folder should be moved to just /debug/cmake");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -166,7 +166,7 @@ namespace vcpkg::PostBuildLint
if (!dlls.empty()) if (!dlls.empty())
{ {
System::println(System::color::warning, "\nThe following dlls were found in /lib and /debug/lib. Please move them to /bin or /debug/bin, respectively."); System::println(System::Color::warning, "\nThe following dlls were found in /lib and /debug/lib. Please move them to /bin or /debug/bin, respectively.");
Files::print_paths(dlls); Files::print_paths(dlls);
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -201,7 +201,7 @@ namespace vcpkg::PostBuildLint
} }
} }
System::println(System::color::warning, "The software license must be available at ${CURRENT_PACKAGES_DIR}/share/%s/copyright .", spec.name()); System::println(System::Color::warning, "The software license must be available at ${CURRENT_PACKAGES_DIR}/share/%s/copyright .", spec.name());
if (potential_copyright_files.size() == 1) // if there is only one candidate, provide the cmake lines needed to place it in the proper location if (potential_copyright_files.size() == 1) // if there is only one candidate, provide the cmake lines needed to place it in the proper location
{ {
const fs::path found_file = potential_copyright_files[0]; const fs::path found_file = potential_copyright_files[0];
@ -214,7 +214,7 @@ namespace vcpkg::PostBuildLint
if (potential_copyright_files.size() > 1) if (potential_copyright_files.size() > 1)
{ {
System::println(System::color::warning, "The following files are potential copyright files:"); System::println(System::Color::warning, "The following files are potential copyright files:");
Files::print_paths(potential_copyright_files); Files::print_paths(potential_copyright_files);
} }
@ -230,7 +230,7 @@ namespace vcpkg::PostBuildLint
if (!exes.empty()) if (!exes.empty())
{ {
System::println(System::color::warning, "The following EXEs were found in /bin and /debug/bin. EXEs are not valid distribution targets."); System::println(System::Color::warning, "The following EXEs were found in /bin and /debug/bin. EXEs are not valid distribution targets.");
Files::print_paths(exes); Files::print_paths(exes);
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -255,9 +255,9 @@ namespace vcpkg::PostBuildLint
if (!dlls_with_no_exports.empty()) if (!dlls_with_no_exports.empty())
{ {
System::println(System::color::warning, "The following DLLs have no exports:"); System::println(System::Color::warning, "The following DLLs have no exports:");
Files::print_paths(dlls_with_no_exports); Files::print_paths(dlls_with_no_exports);
System::println(System::color::warning, "DLLs without any exports are likely a bug in the build script."); System::println(System::Color::warning, "DLLs without any exports are likely a bug in the build script.");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -286,9 +286,9 @@ namespace vcpkg::PostBuildLint
if (!dlls_with_improper_uwp_bit.empty()) if (!dlls_with_improper_uwp_bit.empty())
{ {
System::println(System::color::warning, "The following DLLs do not have the App Container bit set:"); System::println(System::Color::warning, "The following DLLs do not have the App Container bit set:");
Files::print_paths(dlls_with_improper_uwp_bit); Files::print_paths(dlls_with_improper_uwp_bit);
System::println(System::color::warning, "This bit is required for Windows Store apps."); System::println(System::Color::warning, "This bit is required for Windows Store apps.");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -320,7 +320,7 @@ namespace vcpkg::PostBuildLint
static void print_invalid_architecture_files(const std::string& expected_architecture, std::vector<file_and_arch> binaries_with_invalid_architecture) static void print_invalid_architecture_files(const std::string& expected_architecture, std::vector<file_and_arch> binaries_with_invalid_architecture)
{ {
System::println(System::color::warning, "The following files were built for an incorrect architecture:"); System::println(System::Color::warning, "The following files were built for an incorrect architecture:");
System::println(""); System::println("");
for (const file_and_arch& b : binaries_with_invalid_architecture) for (const file_and_arch& b : binaries_with_invalid_architecture)
{ {
@ -388,7 +388,7 @@ namespace vcpkg::PostBuildLint
return lint_status::SUCCESS; return lint_status::SUCCESS;
} }
System::println(System::color::warning, "DLLs should not be present in a static build, but the following DLLs were found:"); System::println(System::Color::warning, "DLLs should not be present in a static build, but the following DLLs were found:");
Files::print_paths(dlls); Files::print_paths(dlls);
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -402,7 +402,7 @@ namespace vcpkg::PostBuildLint
return lint_status::SUCCESS; return lint_status::SUCCESS;
} }
System::println(System::color::warning, "Mismatching number of debug and release binaries. Found %d for debug but %d for release.", debug_count, release_count); System::println(System::Color::warning, "Mismatching number of debug and release binaries. Found %d for debug but %d for release.", debug_count, release_count);
System::println("Debug binaries"); System::println("Debug binaries");
Files::print_paths(debug_binaries); Files::print_paths(debug_binaries);
@ -411,11 +411,11 @@ namespace vcpkg::PostBuildLint
if (debug_count == 0) if (debug_count == 0)
{ {
System::println(System::color::warning, "Debug binaries were not found"); System::println(System::Color::warning, "Debug binaries were not found");
} }
if (release_count == 0) if (release_count == 0)
{ {
System::println(System::color::warning, "Release binaries were not found"); System::println(System::Color::warning, "Release binaries were not found");
} }
System::println(""); System::println("");
@ -433,8 +433,8 @@ namespace vcpkg::PostBuildLint
if (lib_count == 0 && dll_count != 0) if (lib_count == 0 && dll_count != 0)
{ {
System::println(System::color::warning, "Import libs were not present in %s", lib_dir.generic_string()); System::println(System::Color::warning, "Import libs were not present in %s", lib_dir.generic_string());
System::println(System::color::warning, System::println(System::Color::warning,
"If this is intended, add the following line in the portfile:\n" "If this is intended, add the following line in the portfile:\n"
" SET(%s enabled)", BuildPolicies::DLLS_WITHOUT_LIBS.cmake_variable()); " SET(%s enabled)", BuildPolicies::DLLS_WITHOUT_LIBS.cmake_variable());
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
@ -455,15 +455,15 @@ namespace vcpkg::PostBuildLint
if (fs::exists(bin)) if (fs::exists(bin))
{ {
System::println(System::color::warning, R"(There should be no bin\ directory in a static build, but %s is present.)", bin.generic_string()); System::println(System::Color::warning, R"(There should be no bin\ directory in a static build, but %s is present.)", bin.generic_string());
} }
if (fs::exists(debug_bin)) if (fs::exists(debug_bin))
{ {
System::println(System::color::warning, R"(There should be no debug\bin\ directory in a static build, but %s is present.)", debug_bin.generic_string()); System::println(System::Color::warning, R"(There should be no debug\bin\ directory in a static build, but %s is present.)", debug_bin.generic_string());
} }
System::println(System::color::warning, R"(If the creation of bin\ and/or debug\bin\ cannot be disabled, use this in the portfile to remove them)" "\n" System::println(System::Color::warning, R"(If the creation of bin\ and/or debug\bin\ cannot be disabled, use this in the portfile to remove them)" "\n"
"\n" "\n"
R"###( if(VCPKG_LIBRARY_LINKAGE STREQUAL static))###""\n" R"###( if(VCPKG_LIBRARY_LINKAGE STREQUAL static))###""\n"
R"###( file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin))###""\n" R"###( file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin))###""\n"
@ -483,10 +483,10 @@ namespace vcpkg::PostBuildLint
if (!empty_directories.empty()) if (!empty_directories.empty())
{ {
System::println(System::color::warning, "There should be no empty directories in %s", dir.generic_string()); System::println(System::Color::warning, "There should be no empty directories in %s", dir.generic_string());
System::println("The following empty directories were found: "); System::println("The following empty directories were found: ");
Files::print_paths(empty_directories); Files::print_paths(empty_directories);
System::println(System::color::warning, "If a directory should be populated but is not, this might indicate an error in the portfile.\n" System::println(System::Color::warning, "If a directory should be populated but is not, this might indicate an error in the portfile.\n"
"If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them:\n" "If the directories are not needed and their creation cannot be disabled, use something like this in the portfile to remove them:\n"
"\n" "\n"
R"###( file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/a/dir ${CURRENT_PACKAGES_DIR}/some/other/dir))###""\n" R"###( file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/a/dir ${CURRENT_PACKAGES_DIR}/some/other/dir))###""\n"
@ -528,7 +528,7 @@ namespace vcpkg::PostBuildLint
if (!libs_with_invalid_crt.empty()) if (!libs_with_invalid_crt.empty())
{ {
System::println(System::color::warning, "Expected %s crt linkage, but the following libs had invalid crt linkage:", expected_build_type.toString()); System::println(System::Color::warning, "Expected %s crt linkage, but the following libs had invalid crt linkage:", expected_build_type.toString());
System::println(""); System::println("");
for (const BuildType_and_file btf : libs_with_invalid_crt) for (const BuildType_and_file btf : libs_with_invalid_crt)
{ {
@ -536,7 +536,7 @@ namespace vcpkg::PostBuildLint
} }
System::println(""); System::println("");
System::println(System::color::warning, "To inspect the lib files, use:\n dumpbin.exe /directives mylibfile.lib"); System::println(System::Color::warning, "To inspect the lib files, use:\n dumpbin.exe /directives mylibfile.lib");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -575,7 +575,7 @@ namespace vcpkg::PostBuildLint
if (!dlls_with_outdated_crt.empty()) if (!dlls_with_outdated_crt.empty())
{ {
System::println(System::color::warning, "Detected outdated dynamic CRT in the following files:"); System::println(System::Color::warning, "Detected outdated dynamic CRT in the following files:");
System::println(""); System::println("");
for (const OutdatedDynamicCrt_and_file btf : dlls_with_outdated_crt) for (const OutdatedDynamicCrt_and_file btf : dlls_with_outdated_crt)
{ {
@ -583,7 +583,7 @@ namespace vcpkg::PostBuildLint
} }
System::println(""); System::println("");
System::println(System::color::warning, "To inspect the dll files, use:\n dumpbin.exe /dependents mydllfile.dll"); System::println(System::Color::warning, "To inspect the dll files, use:\n dumpbin.exe /dependents mydllfile.dll");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -605,9 +605,9 @@ namespace vcpkg::PostBuildLint
if (!misplaced_files.empty()) if (!misplaced_files.empty())
{ {
System::println(System::color::warning, "The following files are placed in\n%s and\n%s: ", package_dir.generic_string(), debug_dir.generic_string()); System::println(System::Color::warning, "The following files are placed in\n%s and\n%s: ", package_dir.generic_string(), debug_dir.generic_string());
Files::print_paths(misplaced_files); Files::print_paths(misplaced_files);
System::println(System::color::warning, "Files cannot be present in those directories.\n"); System::println(System::Color::warning, "Files cannot be present in those directories.\n");
return lint_status::ERROR_DETECTED; return lint_status::ERROR_DETECTED;
} }
@ -717,7 +717,7 @@ namespace vcpkg::PostBuildLint
if (error_count != 0) if (error_count != 0)
{ {
const fs::path portfile = paths.ports / spec.name() / "portfile.cmake"; const fs::path portfile = paths.ports / spec.name() / "portfile.cmake";
System::println(System::color::error, "Found %u error(s). Please correct the portfile:\n %s", error_count, portfile.string()); System::println(System::Color::error, "Found %u error(s). Please correct the portfile:\n %s", error_count, portfile.string());
} }
System::println("-- Performing post-build validation done"); System::println("-- Performing post-build validation done");

View File

@ -57,7 +57,7 @@ namespace vcpkg
const std::string remaining_fields_as_string = Strings::join("\n ", remaining_fields); const std::string remaining_fields_as_string = Strings::join("\n ", remaining_fields);
const std::string valid_fields_as_string = Strings::join("\n ", valid_fields); const std::string valid_fields_as_string = Strings::join("\n ", valid_fields);
System::println(System::color::error, "Error: There are invalid fields in the Source Paragraph of %s", this->name); System::println(System::Color::error, "Error: There are invalid fields in the Source Paragraph of %s", this->name);
System::println("The following fields were not expected:\n\n %s\n\n", remaining_fields_as_string); System::println("The following fields were not expected:\n\n %s\n\n", remaining_fields_as_string);
System::println("This is the list of valid fields (case-sensitive): \n\n %s\n", valid_fields_as_string); System::println("This is the list of valid fields (case-sensitive): \n\n %s\n", valid_fields_as_string);
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);

View File

@ -14,7 +14,7 @@ namespace vcpkg
{ {
if (arg_begin == arg_end) if (arg_begin == arg_end)
{ {
System::println(System::color::error, "Error: expected value after %s", option_name); System::println(System::Color::error, "Error: expected value after %s", option_name);
Metrics::track_property("error", "error option name"); Metrics::track_property("error", "error option name");
Commands::Help::print_usage(); Commands::Help::print_usage();
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
@ -22,7 +22,7 @@ namespace vcpkg
if (option_field != nullptr) if (option_field != nullptr)
{ {
System::println(System::color::error, "Error: %s specified multiple times", option_name); System::println(System::Color::error, "Error: %s specified multiple times", option_name);
Metrics::track_property("error", "error option specified multiple times"); Metrics::track_property("error", "error option specified multiple times");
Commands::Help::print_usage(); Commands::Help::print_usage();
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
@ -38,7 +38,7 @@ namespace vcpkg
{ {
if (option_field != OptBoolT::UNSPECIFIED && option_field != new_setting) if (option_field != OptBoolT::UNSPECIFIED && option_field != new_setting)
{ {
System::println(System::color::error, "Error: conflicting values specified for --%s", option_name); System::println(System::Color::error, "Error: conflicting values specified for --%s", option_name);
Metrics::track_property("error", "error conflicting switches"); Metrics::track_property("error", "error conflicting switches");
Commands::Help::print_usage(); Commands::Help::print_usage();
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
@ -150,7 +150,7 @@ namespace vcpkg
if (!options_copy.empty()) if (!options_copy.empty())
{ {
System::println(System::color::error, "Unknown option(s) for command '%s':", this->command); System::println(System::Color::error, "Unknown option(s) for command '%s':", this->command);
for (const std::string& option : options_copy) for (const std::string& option : options_copy)
{ {
System::println(option); System::println(option);
@ -181,7 +181,7 @@ namespace vcpkg
const size_t actual_arg_count = command_arguments.size(); const size_t actual_arg_count = command_arguments.size();
if (actual_arg_count > expected_arg_count) if (actual_arg_count > expected_arg_count)
{ {
System::println(System::color::error, "Error: `%s` requires at most %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count); System::println(System::Color::error, "Error: `%s` requires at most %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count);
System::print(example_text); System::print(example_text);
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
@ -192,7 +192,7 @@ namespace vcpkg
const size_t actual_arg_count = command_arguments.size(); const size_t actual_arg_count = command_arguments.size();
if (actual_arg_count < expected_arg_count) if (actual_arg_count < expected_arg_count)
{ {
System::println(System::color::error, "Error: `%s` requires at least %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count); System::println(System::Color::error, "Error: `%s` requires at least %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count);
System::print(example_text); System::print(example_text);
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
@ -203,7 +203,7 @@ namespace vcpkg
const size_t actual_arg_count = command_arguments.size(); const size_t actual_arg_count = command_arguments.size();
if (actual_arg_count != expected_arg_count) if (actual_arg_count != expected_arg_count)
{ {
System::println(System::color::error, "Error: `%s` requires %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count); System::println(System::Color::error, "Error: `%s` requires %u arguments, but %u were provided", this->command, expected_arg_count, actual_arg_count);
System::print(example_text); System::print(example_text);
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }

View File

@ -73,7 +73,7 @@ namespace vcpkg
System::ExitCodeAndOutput rc = System::cmd_execute_and_capture_output(install_cmd); System::ExitCodeAndOutput rc = System::cmd_execute_and_capture_output(install_cmd);
if (rc.exit_code) if (rc.exit_code)
{ {
System::println(System::color::error, "Launching powershell failed or was denied"); System::println(System::Color::error, "Launching powershell failed or was denied");
Metrics::track_property("error", "powershell install failed"); Metrics::track_property("error", "powershell install failed");
Metrics::track_property("installcmd", install_cmd); Metrics::track_property("installcmd", install_cmd);
Checks::exit_with_code(VCPKG_LINE_INFO, rc.exit_code); Checks::exit_with_code(VCPKG_LINE_INFO, rc.exit_code);
@ -322,7 +322,7 @@ namespace vcpkg
} }
} }
System::println(System::color::error, "Could not locate a complete toolset."); System::println(System::Color::error, "Could not locate a complete toolset.");
System::println("The following paths were examined:"); System::println("The following paths were examined:");
for (const fs::path& path : paths_examined) for (const fs::path& path : paths_examined)
{ {

View File

@ -153,7 +153,7 @@ namespace vcpkg::Commands::Build
unmet_dependencies.end()); unmet_dependencies.end());
Checks::check_exit(VCPKG_LINE_INFO, !unmet_dependencies.empty()); Checks::check_exit(VCPKG_LINE_INFO, !unmet_dependencies.empty());
System::println(System::color::error, "The build command requires all dependencies to be already installed."); System::println(System::Color::error, "The build command requires all dependencies to be already installed.");
System::println("The following dependencies are missing:"); System::println("The following dependencies are missing:");
System::println(""); System::println("");
for (const PackageSpecWithInstallPlan& p : unmet_dependencies) for (const PackageSpecWithInstallPlan& p : unmet_dependencies)
@ -166,7 +166,7 @@ namespace vcpkg::Commands::Build
if (result != BuildResult::SUCCEEDED) if (result != BuildResult::SUCCEEDED)
{ {
System::println(System::color::error, Build::create_error_message(result, spec)); System::println(System::Color::error, Build::create_error_message(result, spec));
System::println(Build::create_user_troubleshooting_message(spec)); System::println(Build::create_user_troubleshooting_message(spec));
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }

View File

@ -58,7 +58,7 @@ namespace vcpkg::Commands::CI
if (action.plan.plan_type == InstallPlanType::ALREADY_INSTALLED) if (action.plan.plan_type == InstallPlanType::ALREADY_INSTALLED)
{ {
results.back() = BuildResult::SUCCEEDED; results.back() = BuildResult::SUCCEEDED;
System::println(System::color::success, "Package %s is already installed", action.spec); System::println(System::Color::success, "Package %s is already installed", action.spec);
} }
else if (action.plan.plan_type == InstallPlanType::BUILD_AND_INSTALL) else if (action.plan.plan_type == InstallPlanType::BUILD_AND_INSTALL)
{ {
@ -71,25 +71,25 @@ namespace vcpkg::Commands::CI
results.back() = result; results.back() = result;
if (result != BuildResult::SUCCEEDED) if (result != BuildResult::SUCCEEDED)
{ {
System::println(System::color::error, Build::create_error_message(result, action.spec)); System::println(System::Color::error, Build::create_error_message(result, action.spec));
continue; continue;
} }
const BinaryParagraph bpgh = Paragraphs::try_load_cached_package(paths, action.spec).value_or_exit(VCPKG_LINE_INFO); const BinaryParagraph bpgh = Paragraphs::try_load_cached_package(paths, action.spec).value_or_exit(VCPKG_LINE_INFO);
Install::install_package(paths, bpgh, &status_db); Install::install_package(paths, bpgh, &status_db);
System::println(System::color::success, "Package %s is installed", action.spec); System::println(System::Color::success, "Package %s is installed", action.spec);
} }
else if (action.plan.plan_type == InstallPlanType::INSTALL) else if (action.plan.plan_type == InstallPlanType::INSTALL)
{ {
results.back() = BuildResult::SUCCEEDED; results.back() = BuildResult::SUCCEEDED;
Install::install_package(paths, action.plan.binary_pgh.value_or_exit(VCPKG_LINE_INFO), &status_db); Install::install_package(paths, action.plan.binary_pgh.value_or_exit(VCPKG_LINE_INFO), &status_db);
System::println(System::color::success, "Package %s is installed from cache", action.spec); System::println(System::Color::success, "Package %s is installed from cache", action.spec);
} }
else else
Checks::unreachable(VCPKG_LINE_INFO); Checks::unreachable(VCPKG_LINE_INFO);
} }
catch (const std::exception& e) catch (const std::exception& e)
{ {
System::println(System::color::error, "Error: Could not install package %s: %s", action.spec, e.what()); System::println(System::Color::error, "Error: Could not install package %s: %s", action.spec, e.what());
results.back() = BuildResult::NULLVALUE; results.back() = BuildResult::NULLVALUE;
} }
System::println("Elapsed time for package %s: %s", action.spec, build_timer.to_string()); System::println("Elapsed time for package %s: %s", action.spec, build_timer.to_string());

View File

@ -81,7 +81,7 @@ namespace vcpkg::Commands::Help
} }
else else
{ {
System::println(System::color::error, "Error: unknown topic %s", topic); System::println(System::Color::error, "Error: unknown topic %s", topic);
print_usage(); print_usage();
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }

View File

@ -42,7 +42,7 @@ namespace vcpkg::Commands::Install
auto status = it->status(ec); auto status = it->status(ec);
if (ec) if (ec)
{ {
System::println(System::color::error, "failed: %s: %s", it->path().u8string(), ec.message()); System::println(System::Color::error, "failed: %s: %s", it->path().u8string(), ec.message());
continue; continue;
} }
@ -51,7 +51,7 @@ namespace vcpkg::Commands::Install
fs::create_directory(target, ec); fs::create_directory(target, ec);
if (ec) if (ec)
{ {
System::println(System::color::error, "failed: %s: %s", target.u8string(), ec.message()); System::println(System::Color::error, "failed: %s: %s", target.u8string(), ec.message());
} }
// Trailing backslash for directories // Trailing backslash for directories
@ -63,12 +63,12 @@ namespace vcpkg::Commands::Install
{ {
if (fs::exists(target)) if (fs::exists(target))
{ {
System::println(System::color::warning, "File %s was already present and will be overwritten", target.u8string(), ec.message()); System::println(System::Color::warning, "File %s was already present and will be overwritten", target.u8string(), ec.message());
} }
fs::copy_file(*it, target, fs::copy_options::overwrite_existing, ec); fs::copy_file(*it, target, fs::copy_options::overwrite_existing, ec);
if (ec) if (ec)
{ {
System::println(System::color::error, "failed: %s: %s", target.u8string(), ec.message()); System::println(System::Color::error, "failed: %s: %s", target.u8string(), ec.message());
} }
output.push_back(Strings::format(R"(%s/%s)", target_triplet_as_string, suffix)); output.push_back(Strings::format(R"(%s/%s)", target_triplet_as_string, suffix));
continue; continue;
@ -76,11 +76,11 @@ namespace vcpkg::Commands::Install
if (!fs::status_known(status)) if (!fs::status_known(status))
{ {
System::println(System::color::error, "failed: %s: unknown status", it->path().u8string()); System::println(System::Color::error, "failed: %s: unknown status", it->path().u8string());
continue; continue;
} }
System::println(System::color::error, "failed: %s: cannot handle file type", it->path().u8string()); System::println(System::Color::error, "failed: %s: cannot handle file type", it->path().u8string());
} }
std::sort(output.begin(), output.end()); std::sort(output.begin(), output.end());
@ -153,7 +153,7 @@ namespace vcpkg::Commands::Install
if (!intersection.empty()) if (!intersection.empty())
{ {
const fs::path triplet_install_path = paths.installed / triplet.canonical_name(); const fs::path triplet_install_path = paths.installed / triplet.canonical_name();
System::println(System::color::error, "The following files are already installed in %s and are in conflict with %s", System::println(System::Color::error, "The following files are already installed in %s and are in conflict with %s",
triplet_install_path.generic_string(), triplet_install_path.generic_string(),
binary_paragraph.spec); binary_paragraph.spec);
System::print("\n "); System::print("\n ");
@ -221,7 +221,7 @@ namespace vcpkg::Commands::Install
{ {
if (std::find(specs.begin(), specs.end(), action.spec) != specs.end()) if (std::find(specs.begin(), specs.end(), action.spec) != specs.end())
{ {
System::println(System::color::success, "Package %s is already installed", action.spec); System::println(System::Color::success, "Package %s is already installed", action.spec);
} }
} }
else if (action.plan.plan_type == InstallPlanType::BUILD_AND_INSTALL) else if (action.plan.plan_type == InstallPlanType::BUILD_AND_INSTALL)
@ -233,25 +233,25 @@ namespace vcpkg::Commands::Install
status_db); status_db);
if (result != Build::BuildResult::SUCCEEDED) if (result != Build::BuildResult::SUCCEEDED)
{ {
System::println(System::color::error, Build::create_error_message(result, action.spec)); System::println(System::Color::error, Build::create_error_message(result, action.spec));
System::println(Build::create_user_troubleshooting_message(action.spec)); System::println(Build::create_user_troubleshooting_message(action.spec));
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
const BinaryParagraph bpgh = Paragraphs::try_load_cached_package(paths, action.spec).value_or_exit(VCPKG_LINE_INFO); const BinaryParagraph bpgh = Paragraphs::try_load_cached_package(paths, action.spec).value_or_exit(VCPKG_LINE_INFO);
install_package(paths, bpgh, &status_db); install_package(paths, bpgh, &status_db);
System::println(System::color::success, "Package %s is installed", action.spec); System::println(System::Color::success, "Package %s is installed", action.spec);
} }
else if (action.plan.plan_type == InstallPlanType::INSTALL) else if (action.plan.plan_type == InstallPlanType::INSTALL)
{ {
install_package(paths, action.plan.binary_pgh.value_or_exit(VCPKG_LINE_INFO), &status_db); install_package(paths, action.plan.binary_pgh.value_or_exit(VCPKG_LINE_INFO), &status_db);
System::println(System::color::success, "Package %s is installed", action.spec); System::println(System::Color::success, "Package %s is installed", action.spec);
} }
else else
Checks::unreachable(VCPKG_LINE_INFO); Checks::unreachable(VCPKG_LINE_INFO);
} }
catch (const std::exception& e) catch (const std::exception& e)
{ {
System::println(System::color::error, "Error: Could not install package %s: %s", action.spec, e.what()); System::println(System::Color::error, "Error: Could not install package %s: %s", action.spec, e.what());
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
} }

View File

@ -153,7 +153,7 @@ namespace vcpkg::Commands::Integrate
case elevation_prompt_user_choice::yes: case elevation_prompt_user_choice::yes:
break; break;
case elevation_prompt_user_choice::no: case elevation_prompt_user_choice::no:
System::println(System::color::warning, "Warning: Previous integration file was not removed"); System::println(System::Color::warning, "Warning: Previous integration file was not removed");
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
default: default:
Checks::unreachable(VCPKG_LINE_INFO); Checks::unreachable(VCPKG_LINE_INFO);
@ -192,7 +192,7 @@ namespace vcpkg::Commands::Integrate
case elevation_prompt_user_choice::yes: case elevation_prompt_user_choice::yes:
break; break;
case elevation_prompt_user_choice::no: case elevation_prompt_user_choice::no:
System::println(System::color::warning, "Warning: integration was not applied"); System::println(System::Color::warning, "Warning: integration was not applied");
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
default: default:
Checks::unreachable(VCPKG_LINE_INFO); Checks::unreachable(VCPKG_LINE_INFO);
@ -207,10 +207,10 @@ namespace vcpkg::Commands::Integrate
if (!fs::copy_file(appdata_src_path, appdata_dst_path, fs::copy_options::overwrite_existing)) if (!fs::copy_file(appdata_src_path, appdata_dst_path, fs::copy_options::overwrite_existing))
{ {
System::println(System::color::error, "Error: Failed to copy file: %s -> %s", appdata_src_path.string(), appdata_dst_path.string()); System::println(System::Color::error, "Error: Failed to copy file: %s -> %s", appdata_src_path.string(), appdata_dst_path.string());
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
System::println(System::color::success, "Applied user-wide integration for this vcpkg root."); System::println(System::Color::success, "Applied user-wide integration for this vcpkg root.");
const fs::path cmake_toolchain = paths.buildsystems / "vcpkg.cmake"; const fs::path cmake_toolchain = paths.buildsystems / "vcpkg.cmake";
System::println("\n" System::println("\n"
"All MSBuild C++ projects can now #include any installed libraries.\n" "All MSBuild C++ projects can now #include any installed libraries.\n"
@ -233,11 +233,11 @@ namespace vcpkg::Commands::Integrate
if (was_deleted) if (was_deleted)
{ {
System::println(System::color::success, "User-wide integration was removed"); System::println(System::Color::success, "User-wide integration was removed");
} }
else else
{ {
System::println(System::color::success, "User-wide integration is not installed"); System::println(System::Color::success, "User-wide integration is not installed");
} }
Checks::exit_success(VCPKG_LINE_INFO); Checks::exit_success(VCPKG_LINE_INFO);
@ -269,7 +269,7 @@ namespace vcpkg::Commands::Integrate
const fs::path nuget_package = buildsystems_dir / Strings::format("%s.%s.nupkg", nuget_id, nupkg_version); const fs::path nuget_package = buildsystems_dir / Strings::format("%s.%s.nupkg", nuget_id, nupkg_version);
Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0 && fs::exists(nuget_package), "Error: NuGet package creation failed"); Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0 && fs::exists(nuget_package), "Error: NuGet package creation failed");
System::println(System::color::success, "Created nupkg: %s", nuget_package.string()); System::println(System::Color::success, "Created nupkg: %s", nuget_package.string());
System::println(R"( System::println(R"(
With a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste: With a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste:

View File

@ -19,11 +19,11 @@ namespace vcpkg::Commands::Remove
fs::remove_all(directory, ec); fs::remove_all(directory, ec);
if (!ec) if (!ec)
{ {
System::println(System::color::success, "Cleaned up %s", directory.string()); System::println(System::Color::success, "Cleaned up %s", directory.string());
} }
if (fs::exists(directory)) if (fs::exists(directory))
{ {
System::println(System::color::warning, "Some files in %s were unable to be removed. Close any editors operating in this directory and retry.", directory.string()); System::println(System::Color::warning, "Some files in %s were unable to be removed. Close any editors operating in this directory and retry.", directory.string());
} }
} }
@ -52,7 +52,7 @@ namespace vcpkg::Commands::Remove
auto status = fs::status(target, ec); auto status = fs::status(target, ec);
if (ec) if (ec)
{ {
System::println(System::color::error, "failed: %s", ec.message()); System::println(System::Color::error, "failed: %s", ec.message());
continue; continue;
} }
@ -65,16 +65,16 @@ namespace vcpkg::Commands::Remove
fs::remove(target, ec); fs::remove(target, ec);
if (ec) if (ec)
{ {
System::println(System::color::error, "failed: %s: %s", target.u8string(), ec.message()); System::println(System::Color::error, "failed: %s: %s", target.u8string(), ec.message());
} }
} }
else if (!fs::status_known(status)) else if (!fs::status_known(status))
{ {
System::println(System::color::warning, "Warning: unknown status: %s", target.u8string()); System::println(System::Color::warning, "Warning: unknown status: %s", target.u8string());
} }
else else
{ {
System::println(System::color::warning, "Warning: %s: cannot handle file type", target.u8string()); System::println(System::Color::warning, "Warning: %s: cannot handle file type", target.u8string());
} }
} }
@ -88,7 +88,7 @@ namespace vcpkg::Commands::Remove
fs::remove(*b, ec); fs::remove(*b, ec);
if (ec) if (ec)
{ {
System::println(System::color::error, "failed: %s", ec.message()); System::println(System::Color::error, "failed: %s", ec.message());
} }
} }
} }
@ -191,7 +191,7 @@ namespace vcpkg::Commands::Remove
if (options.find(OPTION_PURGE) != options.end() && !alsoRemoveFolderFromPackages) if (options.find(OPTION_PURGE) != options.end() && !alsoRemoveFolderFromPackages)
{ {
// User specified --purge and --no-purge // User specified --purge and --no-purge
System::println(System::color::error, "Error: cannot specify both --no-purge and --purge."); System::println(System::Color::error, "Error: cannot specify both --no-purge and --purge.");
System::print(example); System::print(example);
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
@ -210,11 +210,11 @@ namespace vcpkg::Commands::Remove
if (has_non_user_requested_packages) if (has_non_user_requested_packages)
{ {
System::println(System::color::warning, "Additional packages (*) need to be removed to complete this operation."); System::println(System::Color::warning, "Additional packages (*) need to be removed to complete this operation.");
if (!isRecursive) if (!isRecursive)
{ {
System::println(System::color::warning, "If you are sure you want to remove them, run the command with the --recurse option"); System::println(System::Color::warning, "If you are sure you want to remove them, run the command with the --recurse option");
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
} }
@ -231,12 +231,12 @@ namespace vcpkg::Commands::Remove
switch (action.plan.plan_type) switch (action.plan.plan_type)
{ {
case RemovePlanType::NOT_INSTALLED: case RemovePlanType::NOT_INSTALLED:
System::println(System::color::success, "Package %s is not installed", display_name); System::println(System::Color::success, "Package %s is not installed", display_name);
break; break;
case RemovePlanType::REMOVE: case RemovePlanType::REMOVE:
System::println("Removing package %s... ", display_name); System::println("Removing package %s... ", display_name);
remove_package(paths, action.spec, &status_db); remove_package(paths, action.spec, &status_db);
System::println(System::color::success, "Removing package %s... done", display_name); System::println(System::Color::success, "Removing package %s... done", display_name);
break; break;
case RemovePlanType::UNKNOWN: case RemovePlanType::UNKNOWN:
default: default:
@ -247,7 +247,7 @@ namespace vcpkg::Commands::Remove
{ {
System::println("Purging package %s... ", display_name); System::println("Purging package %s... ", display_name);
delete_directory(paths.packages / action.spec.dir()); delete_directory(paths.packages / action.spec.dir());
System::println(System::color::success, "Purging package %s... done", display_name); System::println(System::Color::success, "Purging package %s... done", display_name);
} }
} }

View File

@ -19,7 +19,7 @@ using namespace vcpkg;
void invalid_command(const std::string& cmd) void invalid_command(const std::string& cmd)
{ {
System::println(System::color::error, "invalid command: %s", cmd); System::println(System::Color::error, "invalid command: %s", cmd);
Commands::Help::print_usage(); Commands::Help::print_usage();
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }

View File

@ -8,8 +8,8 @@ namespace vcpkg::Checks
[[noreturn]] [[noreturn]]
void unreachable(const LineInfo& line_info) void unreachable(const LineInfo& line_info)
{ {
System::println(System::color::error, "Error: Unreachable code was reached"); System::println(System::Color::error, "Error: Unreachable code was reached");
System::println(System::color::error, line_info.toString()); // Always print line_info here System::println(System::Color::error, line_info.toString()); // Always print line_info here
#ifndef NDEBUG #ifndef NDEBUG
std::abort(); std::abort();
#else #else
@ -22,7 +22,7 @@ namespace vcpkg::Checks
{ {
if (g_debugging) if (g_debugging)
{ {
System::println(System::color::error, line_info.toString()); System::println(System::Color::error, line_info.toString());
} }
::exit(exit_code); ::exit(exit_code);
@ -31,7 +31,7 @@ namespace vcpkg::Checks
[[noreturn]] [[noreturn]]
void exit_with_message(const LineInfo& line_info, const CStringView errorMessage) void exit_with_message(const LineInfo& line_info, const CStringView errorMessage)
{ {
System::println(System::color::error, errorMessage); System::println(System::Color::error, errorMessage);
exit_fail(line_info); exit_fail(line_info);
} }

View File

@ -16,7 +16,7 @@ namespace vcpkg::Input
} }
// Intentionally show the lowercased string // Intentionally show the lowercased string
System::println(System::color::error, "Error: %s: %s", expected_spec.error_code().message(), as_lowercase); System::println(System::Color::error, "Error: %s: %s", expected_spec.error_code().message(), as_lowercase);
System::print(example_text); System::print(example_text);
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);
} }
@ -25,7 +25,7 @@ namespace vcpkg::Input
{ {
if (!paths.is_valid_triplet(t)) if (!paths.is_valid_triplet(t))
{ {
System::println(System::color::error, "Error: invalid triplet: %s", t.canonical_name()); System::println(System::Color::error, "Error: invalid triplet: %s", t.canonical_name());
Metrics::track_property("error", "invalid triplet: " + t.canonical_name()); Metrics::track_property("error", "invalid triplet: " + t.canonical_name());
Commands::Help::help_topic_valid_triplet(paths); Commands::Help::help_topic_valid_triplet(paths);
Checks::exit_fail(VCPKG_LINE_INFO); Checks::exit_fail(VCPKG_LINE_INFO);

View File

@ -142,7 +142,7 @@ namespace vcpkg::System
putchar('\n'); putchar('\n');
} }
void print(const color c, const CStringView message) void print(const Color c, const CStringView message)
{ {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
@ -155,7 +155,7 @@ namespace vcpkg::System
SetConsoleTextAttribute(hConsole, original_color); SetConsoleTextAttribute(hConsole, original_color);
} }
void println(const color c, const CStringView message) void println(const Color c, const CStringView message)
{ {
print(c, message); print(c, message);
putchar('\n'); putchar('\n');