From f61c0cb5dfa2bbc8a3fb069de5ef07ea60768af4 Mon Sep 17 00:00:00 2001 From: Alasonga Date: Sun, 2 Aug 2026 17:00:55 -0300 Subject: [PATCH] cmake: fix Windows/MSVC build issues with zlib path and wolfSSL TLS1.3 --- 3rdparty/wolfssl/CMakeLists.txt | 2 +- buildfiles/cmake/FindZLIB.cmake | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/3rdparty/wolfssl/CMakeLists.txt b/3rdparty/wolfssl/CMakeLists.txt index 2c19c37d2..7d1fbd1ff 100644 --- a/3rdparty/wolfssl/CMakeLists.txt +++ b/3rdparty/wolfssl/CMakeLists.txt @@ -4,7 +4,7 @@ if(USE_SYSTEM_WOLFSSL) add_library(wolfssl INTERFACE) target_link_libraries(wolfssl INTERFACE PkgConfig::WolfSSL) else() - set(WOLFSSL_TLS13 OFF CACHE INTERNAL "") + set(WOLFSSL_TLS13 ON CACHE INTERNAL "" FORCE) set(WOLFSSL_SHA3 ON CACHE INTERNAL "") set(WOLFSSL_SHAKE256 ON CACHE INTERNAL "") set(WOLFSSL_BASE64_ENCODE OFF CACHE INTERNAL "") diff --git a/buildfiles/cmake/FindZLIB.cmake b/buildfiles/cmake/FindZLIB.cmake index ff5869a5f..ef511d307 100644 --- a/buildfiles/cmake/FindZLIB.cmake +++ b/buildfiles/cmake/FindZLIB.cmake @@ -3,9 +3,22 @@ if(USE_SYSTEM_ZLIB) find_package(ZLIB) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) else() - add_library(ZLIB::ZLIB STATIC IMPORTED) - set_target_properties(ZLIB::ZLIB PROPERTIES - IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib/libzlibstatic.a" - INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/zlib/zlib;${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib") + if(NOT TARGET ZLIB::ZLIB) + add_library(ZLIB::ZLIB STATIC IMPORTED GLOBAL) + if(MSVC) + # On MSVC, zlib builds as zs.lib (Release) / zsd.lib (Debug) in per-config subdirectories + set_target_properties(ZLIB::ZLIB PROPERTIES + IMPORTED_LOCATION_RELEASE "${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib/Release/zs.lib" + IMPORTED_LOCATION_DEBUG "${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib/Debug/zsd.lib" + IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib/RelWithDebInfo/zs.lib" + IMPORTED_LOCATION_MINSIZEREL "${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib/MinSizeRel/zs.lib") + else() + # On non-MSVC, zlib OUTPUT_NAME is "z" → libz.a + set_target_properties(ZLIB::ZLIB PROPERTIES + IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib/libz.a") + endif() + set_target_properties(ZLIB::ZLIB PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/zlib/zlib;${CMAKE_BINARY_DIR}/3rdparty/zlib/zlib") + endif() set(ZLIB_FOUND TRUE) endif()