diff options
-rw-r--r-- | Modules/CheckCSourceRuns.cmake | 21 | ||||
-rw-r--r-- | Modules/CheckCXXSourceRuns.cmake | 20 | ||||
-rw-r--r-- | Modules/FindThreads.cmake | 3 |
3 files changed, 28 insertions, 16 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) diff --git a/Modules/CheckCXXSourceRuns.cmake b/Modules/CheckCXXSourceRuns.cmake index 920a554..01d4c64 100644 --- a/Modules/CheckCXXSourceRuns.cmake +++ b/Modules/CheckCXXSourceRuns.cmake @@ -32,7 +32,7 @@ MACRO(CHECK_CXX_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.cxx COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} @@ -43,25 +43,31 @@ MACRO(CHECK_CXX_SOURCE_RUNS SOURCE VAR) # 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: ${${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_CXX_SOURCE_RUNS) diff --git a/Modules/FindThreads.cmake b/Modules/FindThreads.cmake index f09fd5c..ea4f576 100644 --- a/Modules/FindThreads.cmake +++ b/Modules/FindThreads.cmake @@ -6,7 +6,6 @@ # CMAKE_USE_PTHREADS_INIT - are we using pthreads # CMAKE_HP_PTHREADS_INIT - are we using hp pthreads -INCLUDE (CheckIncludeFile) INCLUDE (CheckIncludeFiles) INCLUDE (CheckLibraryExists) @@ -20,7 +19,7 @@ IF(CMAKE_HAVE_SPROC_H) SET(CMAKE_USE_SPROC_INIT 1) ELSE(CMAKE_HAVE_SPROC_H) # Do we have pthreads? - CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H) + CHECK_INCLUDE_FILES("pthread.h" CMAKE_HAVE_PTHREAD_H) IF(CMAKE_HAVE_PTHREAD_H) # We have pthread.h # Let's check for the library now. |