diff --git a/cmake/FindCURL.cmake b/cmake/FindCURL.cmake new file mode 100644 index 0000000000000000000000000000000000000000..098544ab20ce04bb2848829e0b4e19413caec7fa --- /dev/null +++ b/cmake/FindCURL.cmake @@ -0,0 +1,71 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#.rst: +# FindCURL +# -------- +# +# Find curl +# +# Find the native CURL headers and libraries. +# +# :: +# +# CURL_INCLUDE_DIRS - where to find curl/curl.h, etc. +# CURL_LIBRARIES - List of libraries when using curl. +# CURL_FOUND - True if curl found. +# CURL_VERSION_STRING - the version of curl found (since CMake 2.8.8) + +if(DEFINED CURL_ROOT) + set(CURL_FIND_OPTS NO_CMAKE NO_CMAKE_SYSTEM_PATH) + set(CURL_FIND_LIBRARY_HINTS "${CURL_ROOT}/lib") + set(CURL_FIND_PATH_HINTS "${CURL_ROOT}/include") +else() + set(CURL_FIND_OPTS) + set(CURL_FIND_LIBRARY_HINTS) + set(CURL_FIND_PATH_HINTS) +endif() + +# Look for the header file. +find_path(CURL_INCLUDE_DIR NAMES + curl/curl.h + HINTS ${CURL_FIND_PATH_HINTS} + ${CURL_FIND_OPTS} +) +mark_as_advanced(CURL_INCLUDE_DIR) + +# Look for the library (sorted from most current/relevant entry to least). +find_library(CURL_LIBRARY NAMES + curl + # Windows MSVC prebuilts: + curllib + libcurl_imp + curllib_static + # Windows older "Win32 - MSVC" prebuilts (libcurl.lib, e.g. libcurl-7.15.5-win32-msvc.zip): + libcurl + HINTS ${CURL_FIND_LIBRARY_HINTS} + ${CURL_FIND_OPTS} +) +mark_as_advanced(CURL_LIBRARY) + +if(CURL_INCLUDE_DIR) + foreach(_curl_version_header curlver.h curl.h) + if(EXISTS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}") + file(STRINGS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}" curl_version_str REGEX "^#define[\t ]+LIBCURL_VERSION[\t ]+\".*\"") + + string(REGEX REPLACE "^#define[\t ]+LIBCURL_VERSION[\t ]+\"([^\"]*)\".*" "\\1" CURL_VERSION_STRING "${curl_version_str}") + unset(curl_version_str) + break() + endif() + endforeach() +endif() + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL + REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR + VERSION_VAR CURL_VERSION_STRING) + +if(CURL_FOUND) + set(CURL_LIBRARIES ${CURL_LIBRARY}) + set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) +endif() diff --git a/cmake/os.cmake b/cmake/os.cmake index 5a58041efb4a753a0abf3a0666d207ea8d938160..786523768d9be1c335a70e4d35cfedeea4e4c0f0 100644 --- a/cmake/os.cmake +++ b/cmake/os.cmake @@ -93,6 +93,21 @@ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") message(WARNING "Homebrew's OpenSSL isn't installed. Work isn't " "guarenteed if built with system OpenSSL") endif() + + # Detecting CURL + execute_process(COMMAND ${HOMEBREW_EXECUTABLE} --prefix curl + OUTPUT_VARIABLE HOMEBREW_CURL + OUTPUT_STRIP_TRAILING_WHITESPACE) + if (DEFINED HOMEBREW_CURL) + if (NOT DEFINED CURL_ROOT_DIR) + message(STATUS "Setting CURL root to ${HOMEBREW_CURL}") + set(CURL_ROOT ${HOMEBREW_CURL}) + endif() + elseif(NOT DEFINED CURL_ROOT_DIR) + message(WARNING "Homebrew's CURL isn't installed. Work isn't " + "guarenteed if built with system CURL") + endif() + endif() else() message (FATAL_ERROR "Unsupported platform -- ${CMAKE_SYSTEM_NAME}")