mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 09:21:50 -05:00
cmake: make CURL_ZLIB a tri-state variable
By differentiating between ON and AUTO it can make a missing zlib library a hard error when CURL_ZLIB=ON is used. Reviewed-by: Jakub Zakrzewski Closes #6221 Fixes #6173
This commit is contained in:
parent
73b63876b1
commit
f21cc62832
@ -107,3 +107,14 @@ macro(curl_nroff_check)
|
||||
message(WARNING "Found no *nroff program")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(optional_dependency DEPENDENCY)
|
||||
set(CURL_${DEPENDENCY} AUTO CACHE STRING "Build curl with ${DEPENDENCY} support (AUTO, ON or OFF)")
|
||||
set_property(CACHE CURL_${DEPENDENCY} PROPERTY STRINGS AUTO ON OFF)
|
||||
|
||||
if(CURL_${DEPENDENCY} STREQUAL AUTO)
|
||||
find_package(${DEPENDENCY})
|
||||
elseif(CURL_${DEPENDENCY})
|
||||
find_package(${DEPENDENCY} REQUIRED)
|
||||
endif()
|
||||
endmacro()
|
||||
|
@ -623,28 +623,25 @@ check_library_exists_concat("idn2" idn2_lookup_ul HAVE_LIBIDN2)
|
||||
# Check for symbol dlopen (same as HAVE_LIBDL)
|
||||
check_library_exists("${CURL_LIBS}" dlopen "" HAVE_DLOPEN)
|
||||
|
||||
option(CURL_ZLIB "Set to ON to enable building curl with zlib support." ON)
|
||||
set(HAVE_LIBZ OFF)
|
||||
set(HAVE_ZLIB_H OFF)
|
||||
set(USE_ZLIB OFF)
|
||||
if(CURL_ZLIB)
|
||||
find_package(ZLIB QUIET)
|
||||
if(ZLIB_FOUND)
|
||||
set(HAVE_ZLIB_H ON)
|
||||
set(HAVE_LIBZ ON)
|
||||
set(USE_ZLIB ON)
|
||||
optional_dependency(ZLIB)
|
||||
if(ZLIB_FOUND)
|
||||
set(HAVE_ZLIB_H ON)
|
||||
set(HAVE_LIBZ ON)
|
||||
set(USE_ZLIB ON)
|
||||
|
||||
# Depend on ZLIB via imported targets if supported by the running
|
||||
# version of CMake. This allows our dependents to get our dependencies
|
||||
# transitively.
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.4)
|
||||
list(APPEND CURL_LIBS ZLIB::ZLIB)
|
||||
else()
|
||||
list(APPEND CURL_LIBS ${ZLIB_LIBRARIES})
|
||||
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||
endif()
|
||||
list(APPEND CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIRS})
|
||||
# Depend on ZLIB via imported targets if supported by the running
|
||||
# version of CMake. This allows our dependents to get our dependencies
|
||||
# transitively.
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.4)
|
||||
list(APPEND CURL_LIBS ZLIB::ZLIB)
|
||||
else()
|
||||
list(APPEND CURL_LIBS ${ZLIB_LIBRARIES})
|
||||
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||
endif()
|
||||
list(APPEND CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
option(CURL_BROTLI "Set to ON to enable building curl with brotli support." OFF)
|
||||
|
@ -129,9 +129,8 @@ problems may have been fixed or changed somewhat since this was written!
|
||||
15.6 uses -lpthread instead of Threads::Threads
|
||||
15.7 generated .pc file contains strange entries
|
||||
15.8 libcurl.pc uses absolute library paths
|
||||
15.9 doesn't fail if zlib support is requested but not found
|
||||
15.10 cert paths autodetected when cross-compiling
|
||||
15.11 libspsl is not supported
|
||||
15.9 cert paths autodetected when cross-compiling
|
||||
15.10 libspsl is not supported
|
||||
|
||||
==============================================================================
|
||||
|
||||
@ -887,17 +886,13 @@ problems may have been fixed or changed somewhat since this was written!
|
||||
|
||||
See https://github.com/curl/curl/issues/6169
|
||||
|
||||
15.9 doesn't fail if zlib support is requested but not found
|
||||
|
||||
See https://github.com/curl/curl/issues/6173
|
||||
|
||||
15.10 cert paths autodetected when cross-compiling
|
||||
15.9 cert paths autodetected when cross-compiling
|
||||
|
||||
The autotools build disables the ca_path/ca_bundle detection when
|
||||
cross-compiling. The cmake build keeps doing the detection.
|
||||
|
||||
See https://github.com/curl/curl/issues/6178
|
||||
|
||||
15.11 libspsl is not supported
|
||||
15.10 libspsl is not supported
|
||||
|
||||
See https://github.com/curl/curl/issues/6214
|
||||
|
Loading…
x
Reference in New Issue
Block a user