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


Reply via email to