summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2009-07-14 19:03:31 +0000
committerBill Hoffman <bill.hoffman@kitware.com>2009-07-14 19:03:31 +0000
commita8ea1e9ef4ec959cfe95193318a05688f4610841 (patch)
treec336fdf5cb277cad0bb61adda2e42ac61da551a9
parent6dade671adac2a02f1a5d68046e844967a4e639b (diff)
downloadcurl-a8ea1e9ef4ec959cfe95193318a05688f4610841.tar.gz
ENH: add optional support for c-ares
-rwxr-xr-xCMake/FindCARES.cmake42
-rw-r--r--CMakeLists.txt12
-rw-r--r--lib/CMakeLists.txt4
-rw-r--r--tests/libtest/CMakeLists.txt4
-rw-r--r--tests/server/CMakeLists.txt5
5 files changed, 63 insertions, 4 deletions
diff --git a/CMake/FindCARES.cmake b/CMake/FindCARES.cmake
new file mode 100755
index 000000000..7e92a8e7c
--- /dev/null
+++ b/CMake/FindCARES.cmake
@@ -0,0 +1,42 @@
+# - Find c-ares
+# Find the c-ares includes and library
+# This module defines
+# CARES_INCLUDE_DIR, where to find ares.h, etc.
+# CARES_LIBRARIES, the libraries needed to use c-ares.
+# CARES_FOUND, If false, do not try to use c-ares.
+# also defined, but not for general use are
+# CARES_LIBRARY, where to find the c-ares library.
+
+FIND_PATH(CARES_INCLUDE_DIR ares.h
+ /usr/local/include
+ /usr/include
+ )
+
+SET(CARES_NAMES ${CARES_NAMES} cares)
+FIND_LIBRARY(CARES_LIBRARY
+ NAMES ${CARES_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (CARES_LIBRARY AND CARES_INCLUDE_DIR)
+ SET(CARES_LIBRARIES ${CARES_LIBRARY})
+ SET(CARES_FOUND "YES")
+ELSE (CARES_LIBRARY AND CARES_INCLUDE_DIR)
+ SET(CARES_FOUND "NO")
+ENDIF (CARES_LIBRARY AND CARES_INCLUDE_DIR)
+
+
+IF (CARES_FOUND)
+ IF (NOT CARES_FIND_QUIETLY)
+ MESSAGE(STATUS "Found c-ares: ${CARES_LIBRARIES}")
+ ENDIF (NOT CARES_FIND_QUIETLY)
+ELSE (CARES_FOUND)
+ IF (CARES_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find c-ares library")
+ ENDIF (CARES_FIND_REQUIRED)
+ENDIF (CARES_FOUND)
+
+MARK_AS_ADVANCED(
+ CARES_LIBRARY
+ CARES_INCLUDE_DIR
+ )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3663e454f..51349657a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,6 +68,17 @@ endif()
option(BUILD_CURL_EXE "Set to ON to build cURL executable." ON)
option(BUILD_CURL_TESTS "Set to ON to build cURL tests." ON)
option(CURL_STATICLIB "Set to ON to build libcurl with static linking." OFF)
+option(CURL_USE_ARES "Set to ON to enable c-ares support" OFF)
+# initialize CURL_LIBS
+set(CURL_LIBS "")
+
+if(CURL_USE_ARES)
+ set(USE_ARES ${CURL_USE_ARES})
+ find_package(CARES REQUIRED)
+ list(APPEND CURL_LIBS ${CARES_LIBRARY} )
+ message("CURL_LIBS = ${CURL_LIBS}")
+ set(CURL_LIBS ${CURL_LIBS} ${CARES_LIBRARY})
+endif()
option(BUILD_DASHBOARD_REPORTS "Set to ON to activate reporting of cURL builds here http://www.cdash.org/CDashPublic/index.php?project=CURL" OFF)
if(BUILD_DASHBOARD_REPORTS)
@@ -188,7 +199,6 @@ endif(WIN32)
# This macro checks if the symbol exists in the library and if it
# does, it appends library to the list.
-set(CURL_LIBS "")
macro(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE)
check_library_exists("${LIBRARY};${CURL_LIBS}" ${SYMBOL} ""
${VARIABLE})
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 4a5b0888a..372c86995 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -5,7 +5,6 @@ configure_file(${CURL_SOURCE_DIR}/include/curl/curlbuild.h.cmake
configure_file(curl_config.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/curl_config.h)
-
transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
include(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake)
@@ -77,6 +76,9 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/..)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
+if(CURL_USE_ARES)
+ include_directories(${CARES_INCLUDE_DIR})
+endif()
if(CURL_STATICLIB)
# Static lib
diff --git a/tests/libtest/CMakeLists.txt b/tests/libtest/CMakeLists.txt
index 74d841e01..f0ee8cd2b 100644
--- a/tests/libtest/CMakeLists.txt
+++ b/tests/libtest/CMakeLists.txt
@@ -9,7 +9,9 @@ function(SETUP_TEST TEST_NAME) # ARGN are the files in the test
${CURL_BINARY_DIR}/lib # To be able to reach "curl_config.h"
${CURL_BINARY_DIR}/include # To be able to reach "curl/curlbuild.h"
)
-
+ if(CURL_USE_ARES)
+ include_directories(${CARES_INCLUDE_DIR})
+ endif()
setup_curl_dependencies(${TEST_NAME})
target_link_libraries( ${TEST_NAME} libcurl )
diff --git a/tests/server/CMakeLists.txt b/tests/server/CMakeLists.txt
index 01db82401..99ec3d897 100644
--- a/tests/server/CMakeLists.txt
+++ b/tests/server/CMakeLists.txt
@@ -9,7 +9,10 @@ function(SETUP_EXECUTABLE TEST_NAME) # ARGN are the files in the test
${CURL_BINARY_DIR}/lib # To be able to reach "curl_config.h"
${CURL_BINARY_DIR}/include # To be able to reach "curl/curlbuild.h"
)
-
+ if(CURL_USE_ARES)
+ include_directories(${CARES_INCLUDE_DIR})
+ endif()
+ # resolve test needs this
setup_curl_dependencies(${TEST_NAME})
#TARGET_LINK_LIBRARIES( ${TEST_NAME} libcurl )