FindCURL: add a CURL_USE_STATIC_LIBS hint

The effect of that hint is to set a CURL_STATICLIB compile definition,
and to auxiliary system windows libraries for MSVC builds.

GDAL-Issue: https://github.com/OSGeo/gdal/issues/7955
This commit is contained in:
Even Rouault
2023-06-19 16:58:37 +02:00
committed by Brad King
parent af9489a4f2
commit 97d0f76453
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
FindCURL-static
---------------
* The :module:`FindCURL` module gained a ``CURL_USE_STATIC_LIBS`` hint
to select static libraries.

View File

@@ -58,6 +58,18 @@ returns its results with no further action.
Set ``CURL_NO_CURL_CMAKE`` to ``ON`` to disable this search.
Hints
^^^^^
``CURL_USE_STATIC_LIBS``
.. versionadded:: 3.28
Set to ``TRUE`` to use static libraries.
This is meaningful only when CURL is not found via its
CMake Package Configuration file.
#]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
@@ -193,6 +205,11 @@ if(CURL_FOUND)
set_target_properties(CURL::libcurl PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}")
if(CURL_USE_STATIC_LIBS)
set_property(TARGET CURL::libcurl APPEND PROPERTY
INTERFACE_COMPILE_DEFINITIONS "CURL_STATICLIB")
endif()
if(EXISTS "${CURL_LIBRARY}")
set_target_properties(CURL::libcurl PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
@@ -212,5 +229,11 @@ if(CURL_FOUND)
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION_DEBUG "${CURL_LIBRARY_DEBUG}")
endif()
if(CURL_USE_STATIC_LIBS AND MSVC)
set_target_properties(CURL::libcurl PROPERTIES
INTERFACE_LINK_LIBRARIES "normaliz.lib;ws2_32.lib;wldap32.lib")
endif()
endif()
endif()