|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | # 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() |