| # 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() |