summaryrefslogtreecommitdiffstats
path: root/Source/CTest/Curl/CMakeLists.txt
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2004-10-07 21:32:49 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2004-10-07 21:32:49 (GMT)
commite46b0a9290808c5680cf817e96064bd2a0000556 (patch)
treed5d9ed3ba342e0fafdf78809f1bb3f7c6d4f9bdb /Source/CTest/Curl/CMakeLists.txt
parent387ffe941959ab8fa849e5afbe654b15fa9447fe (diff)
downloadCMake-e46b0a9290808c5680cf817e96064bd2a0000556.zip
CMake-e46b0a9290808c5680cf817e96064bd2a0000556.tar.gz
CMake-e46b0a9290808c5680cf817e96064bd2a0000556.tar.bz2
ENH: Properly detect strerror_r for glibc or posix"
Diffstat (limited to 'Source/CTest/Curl/CMakeLists.txt')
-rw-r--r--Source/CTest/Curl/CMakeLists.txt46
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