From b26cb1a041177ab113c723d89a4ef2af5614a9e5 Mon Sep 17 00:00:00 2001 From: Leonid Pospelov Date: Mon, 1 Jul 2019 22:30:24 +0200 Subject: [PATCH] [vcpkg] Use spaces instead of semicolons in the output (#7080) * Use spaces instead of semicolons in the output * Add prettify_command macro * Move pretty_command macro to a separate file --- scripts/cmake/vcpkg_common_functions.cmake | 1 + .../cmake/vcpkg_execute_build_process.cmake | 4 ++- .../vcpkg_execute_required_process.cmake | 4 ++- ...cpkg_execute_required_process_repeat.cmake | 4 ++- scripts/cmake/vcpkg_prettify_command.cmake | 26 +++++++++++++++++++ 5 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 scripts/cmake/vcpkg_prettify_command.cmake diff --git a/scripts/cmake/vcpkg_common_functions.cmake b/scripts/cmake/vcpkg_common_functions.cmake index 827d43abeee..515b2bafe46 100644 --- a/scripts/cmake/vcpkg_common_functions.cmake +++ b/scripts/cmake/vcpkg_common_functions.cmake @@ -32,3 +32,4 @@ include(vcpkg_get_windows_sdk) include(vcpkg_replace_string) include(vcpkg_from_git) include(vcpkg_test_cmake) +include(vcpkg_prettify_command) diff --git a/scripts/cmake/vcpkg_execute_build_process.cmake b/scripts/cmake/vcpkg_execute_build_process.cmake index d440ba2f6c9..9da6cec9f57 100644 --- a/scripts/cmake/vcpkg_execute_build_process.cmake +++ b/scripts/cmake/vcpkg_execute_build_process.cmake @@ -31,6 +31,7 @@ ## ## Examples ## ## * [icu](https://github.com/Microsoft/vcpkg/blob/master/ports/icu/portfile.cmake) +include(vcpkg_prettify_command) function(vcpkg_execute_build_process) cmake_parse_arguments(_ebp "" "WORKING_DIRECTORY;LOGNAME" "COMMAND;NO_PARALLEL_COMMAND" ${ARGN}) @@ -131,8 +132,9 @@ function(vcpkg_execute_build_process) file(TO_NATIVE_PATH "${LOG}" NATIVE_LOG) list(APPEND STRINGIFIED_LOGS " ${NATIVE_LOG}\n") endforeach() + vcpkg_prettify_command(_ebp_COMMAND _ebp_COMMAND_PRETTY) message(FATAL_ERROR - " Command failed: ${_ebp_COMMAND}\n" + " Command failed: ${_ebp_COMMAND_PRETTY}\n" " Working Directory: ${_ebp_WORKING_DIRECTORY}\n" " See logs for more information:\n" ${STRINGIFIED_LOGS}) diff --git a/scripts/cmake/vcpkg_execute_required_process.cmake b/scripts/cmake/vcpkg_execute_required_process.cmake index 2e9ba7058ee..e65d1970a42 100644 --- a/scripts/cmake/vcpkg_execute_required_process.cmake +++ b/scripts/cmake/vcpkg_execute_required_process.cmake @@ -28,6 +28,7 @@ ## * [openssl](https://github.com/Microsoft/vcpkg/blob/master/ports/openssl/portfile.cmake) ## * [boost](https://github.com/Microsoft/vcpkg/blob/master/ports/boost/portfile.cmake) ## * [qt5](https://github.com/Microsoft/vcpkg/blob/master/ports/qt5/portfile.cmake) +include(vcpkg_prettify_command) function(vcpkg_execute_required_process) cmake_parse_arguments(vcpkg_execute_required_process "" "WORKING_DIRECTORY;LOGNAME" "COMMAND" ${ARGN}) set(LOG_OUT "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-out.log") @@ -53,8 +54,9 @@ function(vcpkg_execute_required_process) file(TO_NATIVE_PATH "${LOG}" NATIVE_LOG) list(APPEND STRINGIFIED_LOGS " ${NATIVE_LOG}\n") endforeach() + vcpkg_prettify_command(vcpkg_execute_required_process_COMMAND vcpkg_execute_required_process_COMMAND_PRETTY) message(FATAL_ERROR - " Command failed: ${vcpkg_execute_required_process_COMMAND}\n" + " Command failed: ${vcpkg_execute_required_process_COMMAND_PRETTY}\n" " Working Directory: ${vcpkg_execute_required_process_WORKING_DIRECTORY}\n" " Error code: ${error_code}\n" " See logs for more information:\n" diff --git a/scripts/cmake/vcpkg_execute_required_process_repeat.cmake b/scripts/cmake/vcpkg_execute_required_process_repeat.cmake index 0c77c3913ba..ca11e8ea489 100644 --- a/scripts/cmake/vcpkg_execute_required_process_repeat.cmake +++ b/scripts/cmake/vcpkg_execute_required_process_repeat.cmake @@ -1,4 +1,5 @@ # Usage: vcpkg_execute_required_process_repeat(COUNT COMMAND [...] WORKING_DIRECTORY LOGNAME ) +include(vcpkg_prettify_command) function(vcpkg_execute_required_process_repeat) cmake_parse_arguments(vcpkg_execute_required_process_repeat "" "COUNT;WORKING_DIRECTORY;LOGNAME" "COMMAND" ${ARGN}) #debug_message("vcpkg_execute_required_process_repeat(${vcpkg_execute_required_process_repeat_COMMAND})") @@ -18,8 +19,9 @@ function(vcpkg_execute_required_process_repeat) endif() endforeach(loop_count) if (NOT SUCCESSFUL_EXECUTION) + vcpkg_prettify_command(vcpkg_execute_required_process_repeat_COMMAND vcpkg_execute_required_process_repeat_COMMAND_PRETTY) message(FATAL_ERROR - " Command failed: ${vcpkg_execute_required_process_repeat_COMMAND}\n" + " Command failed: ${vcpkg_execute_required_process_repeat_COMMAND_PRETTY}\n" " Working Directory: ${vcpkg_execute_required_process_repeat_WORKING_DIRECTORY}\n" " See logs for more information:\n" " ${NATIVE_BUILDTREES_DIR}\\${vcpkg_execute_required_process_repeat_LOGNAME}-out.log\n" diff --git a/scripts/cmake/vcpkg_prettify_command.cmake b/scripts/cmake/vcpkg_prettify_command.cmake new file mode 100644 index 00000000000..9d9a2b798c8 --- /dev/null +++ b/scripts/cmake/vcpkg_prettify_command.cmake @@ -0,0 +1,26 @@ +## # vcpkg_prettify_command +## +## Turns list of command arguments into a formatted string. +## +## ## Usage +## ```cmake +## vcpkg_prettify_command() +## ``` +## +## ## Examples +## +## * `scripts/cmake/vcpkg_execute_build_process.cmake` +## * `scripts/cmake/vcpkg_execute_required_process.cmake` +## * `scripts/cmake/vcpkg_execute_required_process_repeat.cmake` + +macro(vcpkg_prettify_command INPUT_VAR OUTPUT_VAR) + set(${OUTPUT_VAR} "") + foreach(v ${${INPUT_VAR}}) + if(${v} MATCHES "( )") + list(APPEND ${OUTPUT_VAR} \"${v}\") + else() + list(APPEND ${OUTPUT_VAR} ${v}) + endif() + endforeach() + list(JOIN ${OUTPUT_VAR} " " ${OUTPUT_VAR}) +endmacro()