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