# Parameter names identical to the execute_process() CMake command, and | |
# "ARGS" for the process command-line arguments. | |
# Use set(ARGS ...) to build the ARGS list and then quote the list | |
# when invoking the COMMAND. Example: | |
# set(ARGS a b c) | |
# -DARGS="${ARGS}" | |
if(NOT DEFINED COMMAND) | |
message(FATAL_ERROR "No COMMAND argument supplied") | |
endif() | |
if(NOT DEFINED ARGS) | |
set(ARGS ) | |
else() | |
separate_arguments(ARGS) | |
endif() | |
if(DEFINED OUTPUT_FILE) | |
set(OF OUTPUT_FILE ${OUTPUT_FILE}) | |
endif() | |
if(DEFINED ERROR_FILE) | |
set(EF ERROR_FILE ${ERROR_FILE}) | |
endif() | |
if(DEFINED WORKING_DIRECTORY) | |
set(WD WORKING_DIRECTORY ${WORKING_DIRECTORY}) | |
endif() | |
execute_process( | |
COMMAND ${COMMAND} | |
${ARGS} | |
${OF} | |
${EF} | |
${WD} | |
RESULT_VARIABLE ret | |
) | |
if(NOT "${ret}" STREQUAL "0") | |
message(FATAL_ERROR "Process failed: '${ret}'") | |
endif() |