mirror of
https://github.com/curl/curl.git
synced 2026-01-18 17:21:26 +01:00
cmake: adjust defaults for target platforms not supporting shared libs
If CMake reports the target platform not supporting shared libs, turn `BUILD_SHARED_LIBS` off by default. CMake 3.30+ fails with an error when trying to create a `SHARED` target for such platforms. Earlier versions used a workaround that may or may not have worked in practice. Ref: https://cmake.org/cmake/help/v3.30/policy/CMP0164.html Seen this with a build setting `-DCMAKE_SYSTEM_NAME=Generic`, e.g. AmigaOS. Note this may introduce incompatibility for "Generic" targets, which support shared libs. If that's the case, set `BUILD_SHARED_LIBS=ON` manually. Also drop AmigaOS-specific logic handled automatically after this patch. Ref: https://cmake.org/cmake/help/v3.7/command/get_property.html Ref: https://cmake.org/cmake/help/v3.7/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.html Closes #19420
This commit is contained in:
@@ -204,7 +204,8 @@ endif()
|
||||
option(CURL_WERROR "Turn compiler warnings into errors" OFF)
|
||||
option(PICKY_COMPILER "Enable picky compiler options" ON)
|
||||
option(BUILD_CURL_EXE "Build curl executable" ON)
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
||||
get_property(_has_shared GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS)
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries" ${_has_shared})
|
||||
option(BUILD_STATIC_LIBS "Build static libraries" OFF)
|
||||
option(BUILD_STATIC_CURL "Build curl executable with static libcurl" OFF)
|
||||
option(ENABLE_ARES "Enable c-ares support" OFF)
|
||||
@@ -260,7 +261,7 @@ if(WIN32)
|
||||
endif()
|
||||
unset(MINGW64_VERSION CACHE) # Avoid storing in CMake cache
|
||||
endif()
|
||||
elseif(DOS OR AMIGA)
|
||||
elseif(DOS)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
set(BUILD_STATIC_LIBS ON)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user