Author: brane Date: Mon Jun 30 22:02:19 2025 New Revision: 1926875 URL: http://svn.apache.org/viewvc?rev=1926875&view=rev Log: In the CMake build, do not use deprecated OpenSSL API. This fixes the "static function not used" warnings in ssl_buckets.
* CMakeLists.txt: Define OPENSSL_NO_DEPRECATED and OPENSSL_NO_STDIO before running the feature checks. * build/SerfChecks.cmake: Use the current compile definitions to restrict the OpenSSL API in the checks. Currently this means no locking callbacks and no explicit library initialization with OpenSSL 3. * test/MockHTTPinC/CMakeLists.txt: MockHTTP needs the deprecated APIs. This is a bit of a hack, but works for now. Modified: serf/trunk/CMakeLists.txt serf/trunk/build/SerfChecks.cmake serf/trunk/test/MockHTTPinC/CMakeLists.txt Modified: serf/trunk/CMakeLists.txt URL: http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1926875&r1=1926874&r2=1926875&view=diff ============================================================================== --- serf/trunk/CMakeLists.txt (original) +++ serf/trunk/CMakeLists.txt Mon Jun 30 22:02:19 2025 @@ -241,6 +241,12 @@ find_package(ZLIB REQUIRED) find_package(APR REQUIRED) find_package(APRUtil REQUIRED) +# We do not want or need OpenSSL's compatibility macros. +add_compile_definitions("OPENSSL_NO_DEPRECATED") + +# Hide OpenSSL's _fp() API. +add_compile_definitions("OPENSSL_NO_STDIO") + # Find optional dependencies find_package(Brotli) if(NOT SERF_WINDOWS) @@ -344,9 +350,6 @@ if(ENABLE_SLOW_TESTS) add_compile_definitions("SERF_TEST_DEFLATE_4GBPLUS_BUCKETS") endif() -# Define OPENSSL_NO_STDIO to prevent using _fp() API. -add_compile_definitions("OPENSSL_NO_STDIO") - # Set common compiler flags if(NOT MSVC) if(CC_LIKE_GNUC) Modified: serf/trunk/build/SerfChecks.cmake URL: http://svn.apache.org/viewvc/serf/trunk/build/SerfChecks.cmake?rev=1926875&r1=1926874&r2=1926875&view=diff ============================================================================== --- serf/trunk/build/SerfChecks.cmake (original) +++ serf/trunk/build/SerfChecks.cmake Mon Jun 30 22:02:19 2025 @@ -21,7 +21,13 @@ include(CheckCSourceCompiles) include(CheckIncludeFile) include(CheckTypeSize) + +# CMake doesn't use current directory properties in the compile checks. +get_directory_property(cdef_ COMPILE_DEFINITIONS) +list(TRANSFORM cdef_ PREPEND "-D") + function(_CheckFunction var_ name_ args_ header_ includes_ libraries_) + set(CMAKE_REQUIRED_DEFINITIONS ${cdef_}) if(libraries_) set(CMAKE_REQUIRED_LIBRARIES "${libraries_}") else() @@ -61,6 +67,7 @@ function(_CheckFunction var_ name_ args_ unset(CMAKE_REQUIRED_INCLUDES) unset(CMAKE_REQUIRED_LIBRARIES) + unset(CMAKE_REQUIRED_DEFINITIONS) endfunction(_CheckFunction) macro(CheckFunction name_ args_ symbol_ header_ includes_) @@ -81,6 +88,7 @@ endmacro(CheckNotFunction) function(_CheckHeader var_ name_ includes_) + set(CMAKE_REQUIRED_DEFINITIONS ${cdef_}) if(includes_) set(CMAKE_REQUIRED_INCLUDES "${includes_}") else() @@ -94,6 +102,7 @@ function(_CheckHeader var_ name_ include set("${var_}" FALSE PARENT_SCOPE) endif() unset(CMAKE_REQUIRED_INCLUDES) + unset(CMAKE_REQUIRED_DEFINITIONS) endfunction(_CheckHeader) macro(CheckHeader name_ symbol_) @@ -105,6 +114,7 @@ endmacro(CheckHeader) function(_CheckType var_ name_ header_ includes_) + set(CMAKE_REQUIRED_DEFINITIONS ${cdef_}) if(includes_) set(CMAKE_REQUIRED_INCLUDES "${includes_}") else() @@ -125,6 +135,7 @@ function(_CheckType var_ name_ header_ i endif() unset(CMAKE_REQUIRED_INCLUDES) unset(CMAKE_EXTRA_INCLUDE_FILES) + unset(CMAKE_REQUIRED_DEFINITIONS) endfunction(_CheckType) macro(CheckType name_ header_ symbol_) Modified: serf/trunk/test/MockHTTPinC/CMakeLists.txt URL: http://svn.apache.org/viewvc/serf/trunk/test/MockHTTPinC/CMakeLists.txt?rev=1926875&r1=1926874&r2=1926875&view=diff ============================================================================== --- serf/trunk/test/MockHTTPinC/CMakeLists.txt (original) +++ serf/trunk/test/MockHTTPinC/CMakeLists.txt Mon Jun 30 22:02:19 2025 @@ -46,6 +46,11 @@ elseif(MSVC) endif() mark_as_advanced(SHOW_MockHTTPinC_WARNINGS) +# MockHTTP needs deprecated OpenSSL APIs +get_directory_property(_cdef COMPILE_DEFINITIONS) +list(REMOVE_ITEM _cdef "OPENSSL_NO_DEPRECATED") +set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "${_cdef}") + add_library(mockhttpinc STATIC ${MockHTTPinC_SOURCES}) target_compile_definitions(mockhttpinc PUBLIC "MOCKHTTP_OPENSSL") target_include_directories(mockhttpinc SYSTEM BEFORE