STYLE: don't use FIND_INCLUDE_FILE() but only FIND_INCLUDE_FILES() in
FindThreads.h BUG: improve CheckC(XX)SourceRuns.cmake so that it works with cross compiling, the return value has to go in the cache but shouldn't overwrite the actual return value, and it should go only in the cache if we have a result from try_run() otherwise we won't get here again if we have a result later on Alex
This commit is contained in:
parent
be1b19ada0
commit
7beee2df48
@ -32,7 +32,7 @@ MACRO(CHECK_C_SOURCE_RUNS SOURCE VAR)
|
|||||||
"${SOURCE}\n")
|
"${SOURCE}\n")
|
||||||
|
|
||||||
MESSAGE(STATUS "Performing Test ${VAR}")
|
MESSAGE(STATUS "Performing Test ${VAR}")
|
||||||
TRY_RUN(${VAR} ${VAR}_COMPILED
|
TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
|
||||||
${CMAKE_BINARY_DIR}
|
${CMAKE_BINARY_DIR}
|
||||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
|
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
|
||||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||||
@ -42,25 +42,32 @@ MACRO(CHECK_C_SOURCE_RUNS SOURCE VAR)
|
|||||||
COMPILE_OUTPUT_VARIABLE OUTPUT)
|
COMPILE_OUTPUT_VARIABLE OUTPUT)
|
||||||
# if it did not compile make the return value fail code of 1
|
# if it did not compile make the return value fail code of 1
|
||||||
IF(NOT ${VAR}_COMPILED)
|
IF(NOT ${VAR}_COMPILED)
|
||||||
SET(${VAR} 1)
|
SET(${VAR}_EXITCODE 1)
|
||||||
ENDIF(NOT ${VAR}_COMPILED)
|
ENDIF(NOT ${VAR}_COMPILED)
|
||||||
# if the return value was 0 then it worked
|
# if the return value was 0 then it worked
|
||||||
SET(result_var ${${VAR}})
|
IF("${${VAR}_EXITCODE}" EQUAL 0)
|
||||||
IF("${result_var}" EQUAL 0)
|
SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
|
||||||
MESSAGE(STATUS "Performing Test ${VAR} - Success")
|
MESSAGE(STATUS "Performing Test ${VAR} - Success")
|
||||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||||
"Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n"
|
"Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n"
|
||||||
"${OUTPUT}\n"
|
"${OUTPUT}\n"
|
||||||
"Return value: ${${VAR}}\n"
|
"Return value: ${${VAR}}\n"
|
||||||
"Source file was:\n${SOURCE}\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")
|
MESSAGE(STATUS "Performing Test ${VAR} - Failed")
|
||||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||||
"Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
|
"Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
|
||||||
"${OUTPUT}\n"
|
"${OUTPUT}\n"
|
||||||
"Return value: ${result_var}\n"
|
"Return value: ${${VAR}_EXITCODE}\n"
|
||||||
"Source file was:\n${SOURCE}\n")
|
"Source file was:\n${SOURCE}\n")
|
||||||
ENDIF("${result_var}" EQUAL 0)
|
|
||||||
|
ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
|
||||||
ENDIF("${VAR}" MATCHES "^${VAR}$")
|
ENDIF("${VAR}" MATCHES "^${VAR}$")
|
||||||
ENDMACRO(CHECK_C_SOURCE_RUNS)
|
ENDMACRO(CHECK_C_SOURCE_RUNS)
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ MACRO(CHECK_CXX_SOURCE_RUNS SOURCE VAR)
|
|||||||
"${SOURCE}\n")
|
"${SOURCE}\n")
|
||||||
|
|
||||||
MESSAGE(STATUS "Performing Test ${VAR}")
|
MESSAGE(STATUS "Performing Test ${VAR}")
|
||||||
TRY_RUN(${VAR} ${VAR}_COMPILED
|
TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
|
||||||
${CMAKE_BINARY_DIR}
|
${CMAKE_BINARY_DIR}
|
||||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
|
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
|
||||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
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 it did not compile make the return value fail code of 1
|
||||||
IF(NOT ${VAR}_COMPILED)
|
IF(NOT ${VAR}_COMPILED)
|
||||||
SET(${VAR} 1)
|
SET(${VAR}_EXITCODE 1)
|
||||||
ENDIF(NOT ${VAR}_COMPILED)
|
ENDIF(NOT ${VAR}_COMPILED)
|
||||||
# if the return value was 0 then it worked
|
# if the return value was 0 then it worked
|
||||||
SET(result_var ${${VAR}})
|
IF("${${VAR}_EXITCODE}" EQUAL 0)
|
||||||
IF("${result_var}" EQUAL 0)
|
SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
|
||||||
MESSAGE(STATUS "Performing Test ${VAR} - Success")
|
MESSAGE(STATUS "Performing Test ${VAR} - Success")
|
||||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||||
"Performing C++ SOURCE FILE Test ${VAR} succeded with the following output:\n"
|
"Performing C++ SOURCE FILE Test ${VAR} succeded with the following output:\n"
|
||||||
"${OUTPUT}\n"
|
"${OUTPUT}\n"
|
||||||
"Return value: ${${VAR}}\n"
|
"Return value: ${${VAR}}\n"
|
||||||
"Source file was:\n${SOURCE}\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")
|
MESSAGE(STATUS "Performing Test ${VAR} - Failed")
|
||||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||||
"Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
|
"Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
|
||||||
"${OUTPUT}\n"
|
"${OUTPUT}\n"
|
||||||
"Return value: ${${VAR}}\n"
|
"Return value: ${${VAR}_EXITCODE}\n"
|
||||||
"Source file was:\n${SOURCE}\n")
|
"Source file was:\n${SOURCE}\n")
|
||||||
ENDIF("${result_var}" EQUAL 0)
|
ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
|
||||||
ENDIF("${VAR}" MATCHES "^${VAR}$")
|
ENDIF("${VAR}" MATCHES "^${VAR}$")
|
||||||
ENDMACRO(CHECK_CXX_SOURCE_RUNS)
|
ENDMACRO(CHECK_CXX_SOURCE_RUNS)
|
||||||
|
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
# CMAKE_USE_PTHREADS_INIT - are we using pthreads
|
# CMAKE_USE_PTHREADS_INIT - are we using pthreads
|
||||||
# CMAKE_HP_PTHREADS_INIT - are we using hp pthreads
|
# CMAKE_HP_PTHREADS_INIT - are we using hp pthreads
|
||||||
|
|
||||||
INCLUDE (CheckIncludeFile)
|
|
||||||
INCLUDE (CheckIncludeFiles)
|
INCLUDE (CheckIncludeFiles)
|
||||||
INCLUDE (CheckLibraryExists)
|
INCLUDE (CheckLibraryExists)
|
||||||
|
|
||||||
@ -20,7 +19,7 @@ IF(CMAKE_HAVE_SPROC_H)
|
|||||||
SET(CMAKE_USE_SPROC_INIT 1)
|
SET(CMAKE_USE_SPROC_INIT 1)
|
||||||
ELSE(CMAKE_HAVE_SPROC_H)
|
ELSE(CMAKE_HAVE_SPROC_H)
|
||||||
# Do we have pthreads?
|
# 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)
|
IF(CMAKE_HAVE_PTHREAD_H)
|
||||||
# We have pthread.h
|
# We have pthread.h
|
||||||
# Let's check for the library now.
|
# Let's check for the library now.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user