diff options
Diffstat (limited to 'Modules/CheckCSourceRuns.cmake')
-rw-r--r-- | Modules/CheckCSourceRuns.cmake | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/Modules/CheckCSourceRuns.cmake b/Modules/CheckCSourceRuns.cmake index 045fa7e..c54070a 100644 --- a/Modules/CheckCSourceRuns.cmake +++ b/Modules/CheckCSourceRuns.cmake @@ -32,7 +32,7 @@ MACRO(CHECK_C_SOURCE_RUNS SOURCE VAR) "${SOURCE}\n") MESSAGE(STATUS "Performing Test ${VAR}") - TRY_RUN(${VAR} ${VAR}_COMPILED + TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} @@ -42,25 +42,32 @@ MACRO(CHECK_C_SOURCE_RUNS SOURCE VAR) COMPILE_OUTPUT_VARIABLE OUTPUT) # if it did not compile make the return value fail code of 1 IF(NOT ${VAR}_COMPILED) - SET(${VAR} 1) + SET(${VAR}_EXITCODE 1) ENDIF(NOT ${VAR}_COMPILED) # if the return value was 0 then it worked - SET(result_var ${${VAR}}) - IF("${result_var}" EQUAL 0) + IF("${${VAR}_EXITCODE}" EQUAL 0) + SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}") MESSAGE(STATUS "Performing Test ${VAR} - Success") FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log "Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n" "${OUTPUT}\n" "Return value: ${${VAR}}\n" "Source file was:\n${SOURCE}\n") - ELSE("${result_var}" EQUAL 0) + ELSE("${${VAR}_EXITCODE}" EQUAL 0) + IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + SET(${VAR} "${${VAR}_EXITCODE}") + ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + SET(${VAR} "" CACHE INTERNAL "Test ${VAR}") + ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN") + MESSAGE(STATUS "Performing Test ${VAR} - Failed") FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log "Performing C SOURCE FILE Test ${VAR} failed with the following output:\n" "${OUTPUT}\n" - "Return value: ${result_var}\n" + "Return value: ${${VAR}_EXITCODE}\n" "Source file was:\n${SOURCE}\n") - ENDIF("${result_var}" EQUAL 0) + + ENDIF("${${VAR}_EXITCODE}" EQUAL 0) ENDIF("${VAR}" MATCHES "^${VAR}$") ENDMACRO(CHECK_C_SOURCE_RUNS) |