aboutsummaryrefslogtreecommitdiff
path: root/scripts/cmake/vcpkg_execute_required_process.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cmake/vcpkg_execute_required_process.cmake')
-rw-r--r--scripts/cmake/vcpkg_execute_required_process.cmake15
1 files changed, 13 insertions, 2 deletions
diff --git a/scripts/cmake/vcpkg_execute_required_process.cmake b/scripts/cmake/vcpkg_execute_required_process.cmake
index f25a5b55e..af5ab1e9e 100644
--- a/scripts/cmake/vcpkg_execute_required_process.cmake
+++ b/scripts/cmake/vcpkg_execute_required_process.cmake
@@ -8,6 +8,7 @@
## COMMAND <${PERL}> [<arguments>...]
## WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg>
## LOGNAME <build-${TARGET_TRIPLET}-dbg>
+## [TIMEOUT <seconds>]
## )
## ```
## ## Parameters
@@ -24,6 +25,9 @@
## ### LOGNAME
## The prefix to use for the log files.
##
+## ### TIMEOUT
+## Optional timeout after which to terminate the command.
+##
## This should be a unique name for different triplets so that the logs don't conflict when building multiple at once.
##
## ## Examples
@@ -34,10 +38,16 @@
## * [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 "ALLOW_IN_DOWNLOAD_MODE" "WORKING_DIRECTORY;LOGNAME" "COMMAND" ${ARGN})
+ cmake_parse_arguments(vcpkg_execute_required_process "ALLOW_IN_DOWNLOAD_MODE" "WORKING_DIRECTORY;LOGNAME;TIMEOUT" "COMMAND" ${ARGN})
set(LOG_OUT "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-out.log")
set(LOG_ERR "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-err.log")
+ if(vcpkg_execute_required_process_TIMEOUT)
+ set(TIMEOUT_PARAM "TIMEOUT;${vcpkg_execute_required_process_TIMEOUT}")
+ else()
+ set(TIMEOUT_PARAM "")
+ endif()
+
set(execute_process_function execute_process)
if (DEFINED VCPKG_DOWNLOAD_MODE AND NOT vcpkg_execute_required_process_ALLOW_IN_DOWNLOAD_MODE)
message(FATAL_ERROR
@@ -52,7 +62,8 @@ Halting portfile execution.
OUTPUT_FILE ${LOG_OUT}
ERROR_FILE ${LOG_ERR}
RESULT_VARIABLE error_code
- WORKING_DIRECTORY ${vcpkg_execute_required_process_WORKING_DIRECTORY})
+ WORKING_DIRECTORY ${vcpkg_execute_required_process_WORKING_DIRECTORY}
+ ${TIMEOUT_PARAM})
if(error_code)
set(LOGS)
file(READ "${LOG_OUT}" out_contents)