diff options
Diffstat (limited to 'Source/CTest/Curl/CMakeLists.txt')
-rw-r--r-- | Source/CTest/Curl/CMakeLists.txt | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/Source/CTest/Curl/CMakeLists.txt b/Source/CTest/Curl/CMakeLists.txt index 3d2880c..3b252fd 100644 --- a/Source/CTest/Curl/CMakeLists.txt +++ b/Source/CTest/Curl/CMakeLists.txt @@ -360,12 +360,46 @@ MACRO(CURL_INTERNAL_TEST CURL_TEST) ELSE(${CURL_TEST}) MESSAGE(STATUS "Performing Curl Test ${CURL_TEST} - Failed") SET(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") - WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log "Performing Curl Test ${CURL_TEST} failed with the following output:\n" - "${OUTPUT}\n" APPEND) + "${OUTPUT}\n") ENDIF(${CURL_TEST}) ENDIF("${CURL_TEST}" MATCHES "^${CURL_TEST}$") ENDMACRO(CURL_INTERNAL_TEST) +MACRO(CURL_INTERNAL_TEST_RUN CURL_TEST) + IF("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") + SET(MACRO_CHECK_FUNCTION_DEFINITIONS + "-D${CURL_TEST} ${CMAKE_REQUIRED_FLAGS}") + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CURL_TEST_ADD_LIBRARIES + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ENDIF(CMAKE_REQUIRED_LIBRARIES) + + MESSAGE(STATUS "Performing Curl Test ${CURL_TEST}") + TRY_RUN(${CURL_TEST} ${CURL_TEST}_COMPILE + ${CMAKE_BINARY_DIR} + ${LIBCURL_SOURCE_DIR}/CMake/CurlTests.c + CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS} + "${CURL_TEST_ADD_LIBRARIES}" + OUTPUT_VARIABLE OUTPUT) + IF(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + SET(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}") + MESSAGE(STATUS "Performing Curl Test ${CURL_TEST} - Success") + ELSE(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + MESSAGE(STATUS "Performing Curl Test ${CURL_TEST} - Failed") + SET(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}") + FILE(APPEND "${CMAKE_BINARY_DIR}/CMakeError.log" + "Performing Curl Test ${CURL_TEST} failed with the following output:\n" + "${OUTPUT}") + IF(${CURL_TEST}_COMPILE) + FILE(APPEND "${CMAKE_BINARY_DIR}/CMakeError.log" + "There was a running problem of this test\n") + ENDIF(${CURL_TEST}_COMPILE) + FILE(APPEND "${CMAKE_BINARY_DIR}/CMakeError.log" + "\n\n") + ENDIF(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST}) + ENDIF("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$") +ENDMACRO(CURL_INTERNAL_TEST_RUN) # Do curl specific tests #OPTION(CURL_HAVE_DISABLED_NONBLOCKING "Disable non-blocking socket detection" OFF) @@ -376,6 +410,7 @@ IF(NOT CURL_HAVE_DISABLED_NONBLOCKING) HAVE_IOCTLSOCKET HAVE_IOCTLSOCKET_CASE HAVE_O_NONBLOCK + HAVE_SO_NONBLOCK ) ENDIF(NOT CURL_HAVE_DISABLED_NONBLOCKING) FOREACH(CURL_TEST @@ -408,6 +443,13 @@ IF(HAVE_FILE_OFFSET_BITS) SET(_FILE_OFFSET_BITS 64) ENDIF(HAVE_FILE_OFFSET_BITS) +FOREACH(CURL_TEST + HAVE_GLIBC_STRERROR_R + HAVE_POSIX_STRERROR_R + ) + CURL_INTERNAL_TEST_RUN(${CURL_TEST}) +ENDFOREACH(CURL_TEST) + # Check for reentrant FOREACH(CURL_TEST HAVE_GETHOSTBYADDR_R_5 |