Skip to content
Snippets Groups Projects
Commit 947b378d authored by Roman Tsisyk's avatar Roman Tsisyk Committed by Roman Tsisyk
Browse files

curl: prefer version from homebrew on macOS

Apple's version of libcurl is outdated and buggy.
Use libcurl from homebrew by default.

Closes #2772
parent 563fcafc
No related branches found
No related tags found
No related merge requests found
# 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()
......@@ -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}")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment