| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | #############################################################################  Library:   CTK# #  Copyright (c) 2010  Kitware Inc.##  Licensed under the Apache License, Version 2.0 (the "License");#  you may not use this file except in compliance with the License.#  You may obtain a copy of the License at##      http://www.commontk.org/LICENSE##  Unless required by applicable law or agreed to in writing, software#  distributed under the License is distributed on an "AS IS" BASIS,#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.#  See the License for the specific language governing permissions and#  limitations under the License.# ############################################################################# Same as EXECUTE_PROCESS command except it can accept the extra parameter: PATH_LIST## According to the platform, either PATH, LD_LIBRARY_PATH or DYLD_LIBRARY_PATH# will be updated using the paths specified using PATH_LIST##FUNCTION(ctkFunctionExecuteProcess)  CtkMacroParseArguments(MY    "COMMAND;PATH_LIST;WORKING_DIRECTORY;TIMEOUT;RESULT_VARIABLE;OUTPUT_VARIABLE;ERROR_VARIABLE;INPUT_FILE;OUTPUT_FILE;ERROR_FILE"    "OUTPUT_QUIET;ERROR_QUIET;OUTPUT_STRIP_TRAILING_WHITESPACE;ERROR_STRIP_TRAILING_WHITESPACE"    ${ARGN}    )  # Sanity checks  IF(NOT DEFINED MY_COMMAND)    MESSAGE(SEND_ERROR "COMMAND is mandatory")  ENDIF()  # Extract executable  LIST(LENGTH MY_COMMAND command_length)  LIST(GET MY_COMMAND 0 MY_EXECUTABLE)  GET_FILENAME_COMPONENT(EXECUTABLE_NAME ${MY_EXECUTABLE} NAME_WE)  #MESSAGE("EXECUTABLE_NAME:${EXECUTABLE_NAME}")    IF(NOT EXISTS ${MY_EXECUTABLE})    MESSAGE(FATAL_ERROR "Exectuable ${MY_EXECUTABLE} doesn't exist !")  ENDIF()    # Command  SET(CONFIG_COMMAND COMMAND)  FOREACH(command_part ${MY_COMMAND})    SET(CONFIG_COMMAND "${CONFIG_COMMAND} \"${command_part}\"")  ENDFOREACH()  #MESSAGE(STATUS CONFIG_COMMAND:"${CONFIG_COMMAND}")  # Arguments list  SET(arg_names WORKING_DIRECTORY TIMEOUT RESULT_VARIABLE OUTPUT_VARIABLE ERROR_VARIABLE INPUT_FILE OUTPUT_FILE ERROR_FILE)  FOREACH(arg_name ${arg_names})    IF(DEFINED MY_${arg_name})      SET(CONFIG_${arg_name} "${arg_name} \"${MY_${arg_name}}\"")    ENDIF()  ENDFOREACH()  # Options list  SET(option_names OUTPUT_QUIET ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE)  FOREACH(option_name ${option_names})    IF(${MY_${option_name}})      SET(CONFIG_${option_name} ${option_name})    ENDIF()  ENDFOREACH()  SET(CONFIG_PATH_LIST ${MY_PATH_LIST})  SET(VARNAME_RESULT_VARIABLE ${MY_RESULT_VARIABLE})  SET(VARNAME_OUTPUT_VARIABLE ${MY_OUTPUT_VARIABLE})  SET(VARNAME_ERROR_VARIABLE ${MY_ERROR_VARIABLE})  SET(cmd ${CMAKE_CURRENT_BINARY_DIR}/CMake/ctkExecuteProcess-${EXECUTABLE_NAME}.cmake)  CONFIGURE_FILE(    ${CMAKE_CURRENT_SOURCE_DIR}/CMake/ctkExecuteProcess.cmake.in    ${cmd}    @ONLY)  # Execute process  EXECUTE_PROCESS(    COMMAND ${CMAKE_COMMAND} -P "${cmd}"    RESULT_VARIABLE error_code    )  IF(error_code)    MESSAGE(FATAL_ERROR "Failed to execute ${cmd}")  ENDIF()    SET(output_file "${CMAKE_CURRENT_BINARY_DIR}/CMake/ctkExecuteProcess-${EXECUTABLE_NAME}-output.cmake")  IF(NOT EXISTS ${output_file})    MESSAGE(FATAL_ERROR "Output file doesn't exist - Problem executing: ${cmd}")  ENDIF()  INCLUDE(${output_file})  ENDFUNCTION()
 |