summaryrefslogtreecommitdiffstats
path: root/CMake
diff options
context:
space:
mode:
authorCurl Upstream <curl-library@lists.haxx.se>2024-07-24 06:20:43 (GMT)
committerBrad King <brad.king@kitware.com>2024-07-25 15:03:51 (GMT)
commit8defd39611e68f5afe612e9351c6f6b8a19eb5ff (patch)
treecac58917b75a6b0799545422467c440482dce82e /CMake
parent9f46cdb65da8f66c9894ff55ab59ebe8a4058538 (diff)
downloadCMake-8defd39611e68f5afe612e9351c6f6b8a19eb5ff.zip
CMake-8defd39611e68f5afe612e9351c6f6b8a19eb5ff.tar.gz
CMake-8defd39611e68f5afe612e9351c6f6b8a19eb5ff.tar.bz2
curl 2024-07-24 (5040f7e9)
Code extracted from: https://github.com/curl/curl.git at commit 5040f7e94cd01decbe7ba8fdacbf489182d503dc (curl-8_9_0).
Diffstat (limited to 'CMake')
-rw-r--r--CMake/CurlSymbolHiding.cmake7
-rw-r--r--CMake/CurlTests.c2
-rw-r--r--CMake/FindBearSSL.cmake2
-rw-r--r--CMake/FindBrotli.cmake18
-rw-r--r--CMake/FindCARES.cmake2
-rw-r--r--CMake/FindGSS.cmake112
-rw-r--r--CMake/FindLibPSL.cmake4
-rw-r--r--CMake/FindLibSSH2.cmake4
-rw-r--r--CMake/FindMbedTLS.cmake2
-rw-r--r--CMake/FindNGHTTP2.cmake10
-rw-r--r--CMake/FindWolfSSL.cmake36
-rw-r--r--CMake/OtherTests.cmake4
-rw-r--r--CMake/PickyWarnings.cmake10
-rw-r--r--CMake/Platforms/WindowsCache.cmake3
-rw-r--r--CMake/curl-config.cmake.in4
15 files changed, 130 insertions, 90 deletions
diff --git a/CMake/CurlSymbolHiding.cmake b/CMake/CurlSymbolHiding.cmake
index 8289b49..07f4fc0 100644
--- a/CMake/CurlSymbolHiding.cmake
+++ b/CMake/CurlSymbolHiding.cmake
@@ -26,9 +26,10 @@ include(CheckCSourceCompiles)
option(CURL_HIDDEN_SYMBOLS "Set to ON to hide libcurl internal symbols (=hide all symbols that aren't officially external)." ON)
mark_as_advanced(CURL_HIDDEN_SYMBOLS)
-if(WIN32 AND ENABLE_CURLDEBUG)
- # We need to export internal debug functions (e.g. curl_dbg_*), so disable
- # symbol hiding for debug builds.
+if(WIN32 AND (ENABLE_DEBUG OR ENABLE_CURLDEBUG))
+ # We need to export internal debug functions,
+ # e.g. curl_easy_perform_ev() or curl_dbg_*(),
+ # so disable symbol hiding for debug builds and for memory tracking.
set(CURL_HIDDEN_SYMBOLS OFF)
endif()
diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c
index 483b9a2..f04abd7 100644
--- a/CMake/CurlTests.c
+++ b/CMake/CurlTests.c
@@ -380,7 +380,7 @@ int main(void)
#ifdef HAVE_BUILTIN_AVAILABLE
int main(void)
{
- if(__builtin_available(macOS 10.12, *)) {}
+ if(__builtin_available(macOS 10.12, iOS 5.0, *)) {}
return 0;
}
#endif
diff --git a/CMake/FindBearSSL.cmake b/CMake/FindBearSSL.cmake
index 56a064e..653ca9d 100644
--- a/CMake/FindBearSSL.cmake
+++ b/CMake/FindBearSSL.cmake
@@ -27,6 +27,6 @@ find_library(BEARSSL_LIBRARY bearssl)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(BEARSSL DEFAULT_MSG
- BEARSSL_INCLUDE_DIRS BEARSSL_LIBRARY)
+ BEARSSL_INCLUDE_DIRS BEARSSL_LIBRARY)
mark_as_advanced(BEARSSL_INCLUDE_DIRS BEARSSL_LIBRARY)
diff --git a/CMake/FindBrotli.cmake b/CMake/FindBrotli.cmake
index 11ab7f8..7f316aa 100644
--- a/CMake/FindBrotli.cmake
+++ b/CMake/FindBrotli.cmake
@@ -29,15 +29,15 @@ find_library(BROTLICOMMON_LIBRARY NAMES brotlicommon)
find_library(BROTLIDEC_LIBRARY NAMES brotlidec)
find_package_handle_standard_args(Brotli
- FOUND_VAR
- BROTLI_FOUND
- REQUIRED_VARS
- BROTLIDEC_LIBRARY
- BROTLICOMMON_LIBRARY
- BROTLI_INCLUDE_DIR
- FAIL_MESSAGE
- "Could NOT find Brotli"
+ FOUND_VAR
+ BROTLI_FOUND
+ REQUIRED_VARS
+ BROTLIDEC_LIBRARY
+ BROTLICOMMON_LIBRARY
+ BROTLI_INCLUDE_DIR
+ FAIL_MESSAGE
+ "Could NOT find Brotli"
)
set(BROTLI_INCLUDE_DIRS ${BROTLI_INCLUDE_DIR})
-set(BROTLI_LIBRARIES ${BROTLICOMMON_LIBRARY} ${BROTLIDEC_LIBRARY})
+set(BROTLI_LIBRARIES ${BROTLIDEC_LIBRARY} ${BROTLICOMMON_LIBRARY})
diff --git a/CMake/FindCARES.cmake b/CMake/FindCARES.cmake
index fa75891..e82b1de 100644
--- a/CMake/FindCARES.cmake
+++ b/CMake/FindCARES.cmake
@@ -39,7 +39,7 @@ find_library(CARES_LIBRARY
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CARES
- REQUIRED_VARS CARES_LIBRARY CARES_INCLUDE_DIR)
+ REQUIRED_VARS CARES_LIBRARY CARES_INCLUDE_DIR)
mark_as_advanced(
CARES_LIBRARY
diff --git a/CMake/FindGSS.cmake b/CMake/FindGSS.cmake
index b244e61..9061e6c 100644
--- a/CMake/FindGSS.cmake
+++ b/CMake/FindGSS.cmake
@@ -45,8 +45,8 @@ include(CheckIncludeFiles)
include(CheckTypeSize)
set(_GSS_ROOT_HINTS
- "${GSS_ROOT_DIR}"
- "$ENV{GSS_ROOT_DIR}"
+ "${GSS_ROOT_DIR}"
+ "$ENV{GSS_ROOT_DIR}"
)
# try to find library using system pkg-config if user didn't specify root dir
@@ -62,30 +62,30 @@ endif()
if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approach.
find_file(_GSS_CONFIGURE_SCRIPT
- NAMES
- "krb5-config"
- HINTS
- ${_GSS_ROOT_HINTS}
- PATH_SUFFIXES
- bin
- NO_CMAKE_PATH
- NO_CMAKE_ENVIRONMENT_PATH
+ NAMES
+ "krb5-config"
+ HINTS
+ ${_GSS_ROOT_HINTS}
+ PATH_SUFFIXES
+ bin
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
)
# if not found in user-supplied directories, maybe system knows better
find_file(_GSS_CONFIGURE_SCRIPT
- NAMES
- "krb5-config"
- PATH_SUFFIXES
- bin
+ NAMES
+ "krb5-config"
+ PATH_SUFFIXES
+ bin
)
if(_GSS_CONFIGURE_SCRIPT)
execute_process(
- COMMAND ${_GSS_CONFIGURE_SCRIPT} "--cflags" "gssapi"
- OUTPUT_VARIABLE _GSS_CFLAGS
- RESULT_VARIABLE _GSS_CONFIGURE_FAILED
- OUTPUT_STRIP_TRAILING_WHITESPACE
+ COMMAND ${_GSS_CONFIGURE_SCRIPT} "--cflags" "gssapi"
+ OUTPUT_VARIABLE _GSS_CFLAGS
+ RESULT_VARIABLE _GSS_CONFIGURE_FAILED
+ OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "CFLAGS: ${_GSS_CFLAGS}")
if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
@@ -105,10 +105,10 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
endif()
execute_process(
- COMMAND ${_GSS_CONFIGURE_SCRIPT} "--libs" "gssapi"
- OUTPUT_VARIABLE _GSS_LIB_FLAGS
- RESULT_VARIABLE _GSS_CONFIGURE_FAILED
- OUTPUT_STRIP_TRAILING_WHITESPACE
+ COMMAND ${_GSS_CONFIGURE_SCRIPT} "--libs" "gssapi"
+ OUTPUT_VARIABLE _GSS_LIB_FLAGS
+ RESULT_VARIABLE _GSS_CONFIGURE_FAILED
+ OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "LDFLAGS: ${_GSS_LIB_FLAGS}")
@@ -132,10 +132,10 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
endif()
execute_process(
- COMMAND ${_GSS_CONFIGURE_SCRIPT} "--version"
- OUTPUT_VARIABLE _GSS_VERSION
- RESULT_VARIABLE _GSS_CONFIGURE_FAILED
- OUTPUT_STRIP_TRAILING_WHITESPACE
+ COMMAND ${_GSS_CONFIGURE_SCRIPT} "--version"
+ OUTPUT_VARIABLE _GSS_VERSION
+ RESULT_VARIABLE _GSS_CONFIGURE_FAILED
+ OUTPUT_STRIP_TRAILING_WHITESPACE
)
# older versions may not have the "--version" parameter. In this case we just don't care.
@@ -144,10 +144,10 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
endif()
execute_process(
- COMMAND ${_GSS_CONFIGURE_SCRIPT} "--vendor"
- OUTPUT_VARIABLE _GSS_VENDOR
- RESULT_VARIABLE _GSS_CONFIGURE_FAILED
- OUTPUT_STRIP_TRAILING_WHITESPACE
+ COMMAND ${_GSS_CONFIGURE_SCRIPT} "--vendor"
+ OUTPUT_VARIABLE _GSS_VENDOR
+ RESULT_VARIABLE _GSS_CONFIGURE_FAILED
+ OUTPUT_STRIP_TRAILING_WHITESPACE
)
# older versions may not have the "--vendor" parameter. In this case we just don't care.
@@ -164,13 +164,13 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
else() # either there is no config script or we are on a platform that doesn't provide one (Windows?)
find_path(_GSS_INCLUDE_DIR
- NAMES
- "gssapi/gssapi.h"
- HINTS
- ${_GSS_ROOT_HINTS}
- PATH_SUFFIXES
- include
- inc
+ NAMES
+ "gssapi/gssapi.h"
+ HINTS
+ ${_GSS_ROOT_HINTS}
+ PATH_SUFFIXES
+ include
+ inc
)
if(_GSS_INCLUDE_DIR) #jay, we've found something
@@ -193,13 +193,13 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
else()
# I'm not convinced if this is the right way but this is what autotools do at the moment
find_path(_GSS_INCLUDE_DIR
- NAMES
- "gssapi.h"
- HINTS
- ${_GSS_ROOT_HINTS}
- PATH_SUFFIXES
- include
- inc
+ NAMES
+ "gssapi.h"
+ HINTS
+ ${_GSS_ROOT_HINTS}
+ PATH_SUFFIXES
+ include
+ inc
)
if(_GSS_INCLUDE_DIR)
@@ -240,12 +240,12 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
endif()
find_library(_GSS_LIBRARIES
- NAMES
- ${_GSS_LIBNAME}
- HINTS
- ${_GSS_LIBDIR_HINTS}
- PATH_SUFFIXES
- ${_GSS_LIBDIR_SUFFIXES}
+ NAMES
+ ${_GSS_LIBNAME}
+ HINTS
+ ${_GSS_LIBDIR_HINTS}
+ PATH_SUFFIXES
+ ${_GSS_LIBDIR_SUFFIXES}
)
endif()
@@ -301,12 +301,12 @@ include(FindPackageHandleStandardArgs)
set(_GSS_REQUIRED_VARS GSS_LIBRARIES GSS_FLAVOUR)
find_package_handle_standard_args(GSS
- REQUIRED_VARS
- ${_GSS_REQUIRED_VARS}
- VERSION_VAR
- GSS_VERSION
- FAIL_MESSAGE
- "Could NOT find GSS, try to set the path to GSS root folder in the system variable GSS_ROOT_DIR"
+ REQUIRED_VARS
+ ${_GSS_REQUIRED_VARS}
+ VERSION_VAR
+ GSS_VERSION
+ FAIL_MESSAGE
+ "Could NOT find GSS, try to set the path to GSS root folder in the system variable GSS_ROOT_DIR"
)
mark_as_advanced(GSS_INCLUDE_DIR GSS_LIBRARIES)
diff --git a/CMake/FindLibPSL.cmake b/CMake/FindLibPSL.cmake
index e3bd68d..9ad4bc6 100644
--- a/CMake/FindLibPSL.cmake
+++ b/CMake/FindLibPSL.cmake
@@ -39,7 +39,7 @@ endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibPSL
- REQUIRED_VARS LIBPSL_LIBRARY LIBPSL_INCLUDE_DIR
- VERSION_VAR LIBPSL_VERSION)
+ REQUIRED_VARS LIBPSL_LIBRARY LIBPSL_INCLUDE_DIR
+ VERSION_VAR LIBPSL_VERSION)
mark_as_advanced(LIBPSL_INCLUDE_DIR LIBPSL_LIBRARY)
diff --git a/CMake/FindLibSSH2.cmake b/CMake/FindLibSSH2.cmake
index a0c251a..3466b6b 100644
--- a/CMake/FindLibSSH2.cmake
+++ b/CMake/FindLibSSH2.cmake
@@ -39,7 +39,7 @@ endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibSSH2
- REQUIRED_VARS LIBSSH2_LIBRARY LIBSSH2_INCLUDE_DIR
- VERSION_VAR LIBSSH2_VERSION)
+ REQUIRED_VARS LIBSSH2_LIBRARY LIBSSH2_INCLUDE_DIR
+ VERSION_VAR LIBSSH2_VERSION)
mark_as_advanced(LIBSSH2_INCLUDE_DIR LIBSSH2_LIBRARY)
diff --git a/CMake/FindMbedTLS.cmake b/CMake/FindMbedTLS.cmake
index 814bd97..7692a25 100644
--- a/CMake/FindMbedTLS.cmake
+++ b/CMake/FindMbedTLS.cmake
@@ -31,6 +31,6 @@ set(MBEDTLS_LIBRARIES "${MBEDTLS_LIBRARY}" "${MBEDX509_LIBRARY}" "${MBEDCRYPTO_L
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MbedTLS DEFAULT_MSG
- MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
+ MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
mark_as_advanced(MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
diff --git a/CMake/FindNGHTTP2.cmake b/CMake/FindNGHTTP2.cmake
index d3528cb..88ac037 100644
--- a/CMake/FindNGHTTP2.cmake
+++ b/CMake/FindNGHTTP2.cmake
@@ -28,11 +28,11 @@ find_path(NGHTTP2_INCLUDE_DIR "nghttp2/nghttp2.h")
find_library(NGHTTP2_LIBRARY NAMES nghttp2 nghttp2_static)
find_package_handle_standard_args(NGHTTP2
- FOUND_VAR
- NGHTTP2_FOUND
- REQUIRED_VARS
- NGHTTP2_LIBRARY
- NGHTTP2_INCLUDE_DIR
+ FOUND_VAR
+ NGHTTP2_FOUND
+ REQUIRED_VARS
+ NGHTTP2_LIBRARY
+ NGHTTP2_INCLUDE_DIR
)
set(NGHTTP2_INCLUDE_DIRS ${NGHTTP2_INCLUDE_DIR})
diff --git a/CMake/FindWolfSSL.cmake b/CMake/FindWolfSSL.cmake
index d67c0eb..7336c8f 100644
--- a/CMake/FindWolfSSL.cmake
+++ b/CMake/FindWolfSSL.cmake
@@ -21,16 +21,40 @@
# SPDX-License-Identifier: curl
#
###########################################################################
-find_path(WolfSSL_INCLUDE_DIR NAMES wolfssl/ssl.h)
-find_library(WolfSSL_LIBRARY NAMES wolfssl)
-mark_as_advanced(WolfSSL_INCLUDE_DIR WolfSSL_LIBRARY)
+
+find_package(PkgConfig QUIET)
+pkg_check_modules(PC_WOLFSSL QUIET "wolfssl")
+
+find_path(WolfSSL_INCLUDE_DIR
+ NAMES "wolfssl/ssl.h"
+ HINTS ${PC_WOLFSSL_INCLUDE_DIRS}
+)
+
+find_library(WolfSSL_LIBRARY
+ NAMES "wolfssl"
+ HINTS ${PC_WOLFSSL_LIBRARY_DIRS}
+)
+
+if(WolfSSL_INCLUDE_DIR)
+ set(_version_regex "^#define[ \t]+LIBWOLFSSL_VERSION_STRING[ \t]+\"([^\"]+)\".*")
+ file(STRINGS "${WolfSSL_INCLUDE_DIR}/wolfssl/version.h"
+ WolfSSL_VERSION REGEX "${_version_regex}")
+ string(REGEX REPLACE "${_version_regex}" "\\1"
+ WolfSSL_VERSION "${WolfSSL_VERSION}")
+ unset(_version_regex)
+endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(WolfSSL
- REQUIRED_VARS WolfSSL_INCLUDE_DIR WolfSSL_LIBRARY
- )
+ REQUIRED_VARS
+ WolfSSL_INCLUDE_DIR
+ WolfSSL_LIBRARY
+ VERSION_VAR WolfSSL_VERSION
+)
if(WolfSSL_FOUND)
set(WolfSSL_INCLUDE_DIRS ${WolfSSL_INCLUDE_DIR})
- set(WolfSSL_LIBRARIES ${WolfSSL_LIBRARY})
+ set(WolfSSL_LIBRARIES ${WolfSSL_LIBRARY})
endif()
+
+mark_as_advanced(WolfSSL_INCLUDE_DIR WolfSSL_LIBRARY)
diff --git a/CMake/OtherTests.cmake b/CMake/OtherTests.cmake
index 7701c0e..2fddb86 100644
--- a/CMake/OtherTests.cmake
+++ b/CMake/OtherTests.cmake
@@ -137,7 +137,7 @@ if(NOT DEFINED HAVE_GETADDRINFO_THREADSAFE)
#ifdef h_errno
return 0;
#else
- force compilation error
+ #error force compilation error
#endif
}" HAVE_H_ERRNO)
@@ -158,7 +158,7 @@ if(NOT DEFINED HAVE_GETADDRINFO_THREADSAFE)
#elif defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 700)
return 0;
#else
- force compilation error
+ #error force compilation error
#endif
}" HAVE_H_ERRNO_SBS_ISSUE_7)
endif()
diff --git a/CMake/PickyWarnings.cmake b/CMake/PickyWarnings.cmake
index d1183fe..96e45f0 100644
--- a/CMake/PickyWarnings.cmake
+++ b/CMake/PickyWarnings.cmake
@@ -33,6 +33,16 @@ if(CURL_WERROR AND
set(WPICKY "${WPICKY} -pedantic-errors")
endif()
+if(APPLE AND
+ (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6) OR
+ (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.3))
+ set(WPICKY "${WPICKY} -Werror=partial-availability") # clang 3.6 appleclang 6.3
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
+ set(WPICKY "${WPICKY} -Werror-implicit-function-declaration") # clang 1.0 gcc 2.95
+endif()
+
if(PICKY_COMPILER)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
diff --git a/CMake/Platforms/WindowsCache.cmake b/CMake/Platforms/WindowsCache.cmake
index 082154f..5346f59 100644
--- a/CMake/Platforms/WindowsCache.cmake
+++ b/CMake/Platforms/WindowsCache.cmake
@@ -88,6 +88,7 @@ set(HAVE_GETPWUID_R 0)
set(HAVE_STRERROR_R 0)
set(HAVE_SIGINTERRUPT 0)
set(HAVE_PIPE 0)
+set(HAVE_EVENTFD 0)
set(HAVE_IF_NAMETOINDEX 0)
set(HAVE_GETRLIMIT 0)
set(HAVE_SETRLIMIT 0)
@@ -121,6 +122,7 @@ set(HAVE_POLL_H 0)
set(HAVE_POLL_FINE 0)
set(HAVE_PWD_H 0)
set(HAVE_STRINGS_H 0) # mingw-w64 has it (wrapper to string.h)
+set(HAVE_SYS_EVENTFD_H 0)
set(HAVE_SYS_FILIO_H 0)
set(HAVE_SYS_WAIT_H 0)
set(HAVE_SYS_IOCTL_H 0)
@@ -171,7 +173,6 @@ set(HAVE_IOCTLSOCKET_FIONBIO 1)
set(HAVE_IOCTL_FIONBIO 0)
set(HAVE_SETSOCKOPT_SO_NONBLOCK 0)
set(HAVE_POSIX_STRERROR_R 0)
-set(HAVE_BUILTIN_AVAILABLE 0)
set(HAVE_MSG_NOSIGNAL 0)
set(HAVE_STRUCT_TIMEVAL 1)
set(HAVE_STRUCT_SOCKADDR_STORAGE 1)
diff --git a/CMake/curl-config.cmake.in b/CMake/curl-config.cmake.in
index 9adb96e..2ce8625 100644
--- a/CMake/curl-config.cmake.in
+++ b/CMake/curl-config.cmake.in
@@ -38,3 +38,7 @@ check_required_components("@PROJECT_NAME@")
if(NOT TARGET @PROJECT_NAME@::libcurl)
add_library(@PROJECT_NAME@::libcurl ALIAS @PROJECT_NAME@::@LIB_SELECTED@)
endif()
+
+# For compatibility with CMake's FindCURL.cmake
+set(CURL_LIBRARIES @PROJECT_NAME@::libcurl)
+set_and_check(CURL_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")