Skip to content

Commit e1017af

Browse files
Tor Didriksenbjornmu
authored andcommitted
Bug#35897778: Upgrade to CURL 8.4.0 [patches]
The cmake option -DWITH_CURL=bundled is now supported on all platforms. Set the default value of WITH_CURL to "bundled" rather than "none" on Windows. Update CURL_VERSION_DIR Set options in extra/curl/CMakeLists.txt - PICKY_COMPILER OFF - BUILD_SHARED_LIBS OFF - BUILD_STATIC_LIBS OFF - SHARE_LIB_OBJECT OFF Disable in curl cmake files: - CMAKE_DEBUG_POSTFIX - find_package(OpenSSL) - Do not add "/MP" for clang on Windows - install(...) Enable in curl cmake files: - Keep the FILE protocol for HTTP_ONLY Add comments about 'libcurl' and 'libcurl_static' Remove obsolete INCLUDE_DIRECTORIES and LINK_DIRECTORIES from extra/curl/CMakeLists. Change-Id: I3abe7bf8da5720df4705109def7b637fbf7e5923
1 parent af0bb78 commit e1017af

File tree

5 files changed

+34
-19
lines changed

5 files changed

+34
-19
lines changed

CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -976,9 +976,12 @@ OPTION(WITH_AUTHENTICATION_CLIENT_PLUGINS
976976
"Build client-side authentication plugins, even if server-side are disabled"
977977
${WITH_AUTHENTICATION_CLIENT_PLUGINS_DEFAULT})
978978

979-
# On windows we need a non-standard package for CURL.
980-
IF(WITH_INTERNAL AND UNIX)
981-
SET(WITH_CURL_DEFAULT "system")
979+
IF(WITH_INTERNAL)
980+
IF(UNIX)
981+
SET(WITH_CURL_DEFAULT "system")
982+
ELSE()
983+
SET(WITH_CURL_DEFAULT "bundled")
984+
ENDIF()
982985
ELSE()
983986
SET(WITH_CURL_DEFAULT "none")
984987
ENDIF()

cmake/curl.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,12 @@ FUNCTION(FIND_SYSTEM_CURL ARG_CURL_INCLUDE_DIR)
124124
ENDIF()
125125
ENDFUNCTION(FIND_SYSTEM_CURL)
126126

127-
SET(CURL_VERSION_DIR "curl-8.2.1")
127+
SET(CURL_VERSION_DIR "curl-8.4.0")
128128
FUNCTION(MYSQL_USE_BUNDLED_CURL CURL_INCLUDE_DIR)
129129
SET(WITH_CURL "bundled" CACHE STRING "Bundled curl library")
130130
ADD_SUBDIRECTORY(extra/curl)
131131
SET(CURL_FOUND ON CACHE INTERNAL "")
132-
SET(CURL_LIBRARY libcurl)
132+
SET(CURL_LIBRARY libcurl) # libcurl is an alias for libcurl_static
133133
SET(CURL_INCLUDE_DIR
134134
${CMAKE_SOURCE_DIR}/extra/curl/${CURL_VERSION_DIR}/include)
135135
SET(CURL_INCLUDE_DIR ${CURL_INCLUDE_DIR} PARENT_SCOPE)

extra/curl/CMakeLists.txt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,20 @@
2020
# along with this program; if not, write to the Free Software
2121
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2222

23-
24-
INCLUDE_DIRECTORIES(BEFORE SYSTEM ${ZSTD_INCLUDE_DIR})
25-
LINK_DIRECTORIES(BEFORE ${OPENSSL_LIB_DIR})
26-
2723
SET(BUILD_CURL_EXE OFF)
2824
SET(BUILD_CURL_EXE OFF CACHE INTERNAL "" FORCE)
2925

26+
SET(PICKY_COMPILER OFF)
27+
SET(PICKY_COMPILER OFF CACHE INTERNAL "" FORCE)
28+
3029
SET(BUILD_SHARED_LIBS OFF)
30+
SET(BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE)
31+
32+
SET(BUILD_STATIC_LIBS ON)
33+
SET(BUILD_STATIC_LIBS ON CACHE INTERNAL "" FORCE)
34+
35+
SET(SHARE_LIB_OBJECT OFF)
36+
SET(SHARE_LIB_OBJECT OFF CACHE INTERNAL "" FORCE)
3137

3238
SET(BUILD_TESTING OFF)
3339
SET(BUILD_TESTING OFF CACHE INTERNAL "" FORCE)
@@ -57,6 +63,11 @@ IF(UNIX)
5763
STRING_APPEND(CMAKE_CXX_FLAGS " -fvisibility=hidden")
5864
ENDIF()
5965

66+
MY_CHECK_CXX_COMPILER_WARNING("format-overflow" HAS_WARN_FLAG)
67+
IF(HAS_WARN_FLAG)
68+
STRING_APPEND(CMAKE_C_FLAGS " ${HAS_WARN_FLAG}")
69+
ENDIF()
70+
6071
# Xcode >= 14 makes noise about sprintf.
6172
IF(APPLE)
6273
STRING_APPEND(CMAKE_C_FLAGS " -Wno-deprecated-declarations")

extra/curl/curl-8.4.0/CMakeLists.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
# to ON or OFF), the symbol detection will be skipped. If the
6161
# variable is NOT DEFINED, the symbol detection will be performed.
6262

63-
cmake_minimum_required(VERSION 3.7...3.16 FATAL_ERROR)
63+
# cmake_minimum_required(VERSION 3.7...3.16 FATAL_ERROR)
6464

6565
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
6666
include(Utilities)
@@ -144,7 +144,7 @@ endif()
144144

145145
# For debug libs and exes, add "-d" postfix
146146
if(NOT DEFINED CMAKE_DEBUG_POSTFIX)
147-
set(CMAKE_DEBUG_POSTFIX "-d")
147+
# set(CMAKE_DEBUG_POSTFIX "-d")
148148
endif()
149149

150150
set(LIB_STATIC "libcurl_static")
@@ -273,7 +273,7 @@ mark_as_advanced(HTTP_ONLY)
273273

274274
if(HTTP_ONLY)
275275
set(CURL_DISABLE_DICT ON)
276-
set(CURL_DISABLE_FILE ON)
276+
# set(CURL_DISABLE_FILE ON) Keep the FILE protocol
277277
set(CURL_DISABLE_FTP ON)
278278
set(CURL_DISABLE_GOPHER ON)
279279
set(CURL_DISABLE_IMAP ON)
@@ -473,7 +473,7 @@ if(use_core_foundation_and_core_services)
473473
endif()
474474

475475
if(CURL_USE_OPENSSL)
476-
find_package(OpenSSL REQUIRED)
476+
# find_package(OpenSSL REQUIRED)
477477
set(SSL_ENABLED ON)
478478
set(USE_OPENSSL ON)
479479

@@ -1420,7 +1420,7 @@ if(MSVC)
14201420
endif()
14211421

14221422
# Use multithreaded compilation on VS 2008+
1423-
if(MSVC_VERSION GREATER_EQUAL 1500)
1423+
if(MSVC_VERSION GREATER_EQUAL 1500 AND NOT WIN32_CLANG)
14241424
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
14251425
endif()
14261426
endif()
@@ -1673,7 +1673,7 @@ set(VERSIONNUM "${CURL_VERSION_NUM}")
16731673
# * ENABLE_STATIC
16741674
configure_file("${CURL_SOURCE_DIR}/curl-config.in"
16751675
"${CURL_BINARY_DIR}/curl-config" @ONLY)
1676-
install(FILES "${CURL_BINARY_DIR}/curl-config"
1676+
do_not_install(FILES "${CURL_BINARY_DIR}/curl-config"
16771677
DESTINATION ${CMAKE_INSTALL_BINDIR}
16781678
PERMISSIONS
16791679
OWNER_READ OWNER_WRITE OWNER_EXECUTE
@@ -1683,11 +1683,11 @@ install(FILES "${CURL_BINARY_DIR}/curl-config"
16831683
# Finally generate a pkg-config file matching this config
16841684
configure_file("${CURL_SOURCE_DIR}/libcurl.pc.in"
16851685
"${CURL_BINARY_DIR}/libcurl.pc" @ONLY)
1686-
install(FILES "${CURL_BINARY_DIR}/libcurl.pc"
1686+
do_not_install(FILES "${CURL_BINARY_DIR}/libcurl.pc"
16871687
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
16881688

16891689
# install headers
1690-
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/curl"
1690+
do_not_install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/curl"
16911691
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
16921692
FILES_MATCHING PATTERN "*.h")
16931693

@@ -1716,14 +1716,14 @@ configure_package_config_file(CMake/curl-config.cmake.in
17161716
)
17171717

17181718
if(CURL_ENABLE_EXPORT_TARGET)
1719-
install(
1719+
do_not_install(
17201720
EXPORT "${TARGETS_EXPORT_NAME}"
17211721
NAMESPACE "${PROJECT_NAME}::"
17221722
DESTINATION ${CURL_INSTALL_CMAKE_DIR}
17231723
)
17241724
endif()
17251725

1726-
install(
1726+
do_not_install(
17271727
FILES ${version_config} ${project_config}
17281728
DESTINATION ${CURL_INSTALL_CMAKE_DIR}
17291729
)

extra/curl/curl-8.4.0/lib/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ if(BUILD_SHARED_LIBS)
207207
$<BUILD_INTERFACE:${CURL_SOURCE_DIR}/include>)
208208
endif()
209209

210+
# Here we do: add_library(libcurl ALIAS libcurl_static})
210211
add_library(${LIB_NAME} ALIAS ${LIB_SELECTED})
211212
add_library(${PROJECT_NAME}::${LIB_NAME} ALIAS ${LIB_SELECTED})
212213

0 commit comments

Comments
 (0)