Author: brane
Date: Thu Jun  5 06:14:39 2025
New Revision: 1926147

URL: http://svn.apache.org/viewvc?rev=1926147&view=rev
Log:
On the user-defined-authn branch: Sync with trunk r1926146.

Added:
    serf/branches/user-defined-authn/build/SerfElfGenMap.cmake
      - copied unchanged from r1926146, serf/trunk/build/SerfElfGenMap.cmake
    serf/branches/user-defined-authn/build/SerfFindExports.cmake
      - copied unchanged from r1926146, serf/trunk/build/SerfFindExports.cmake
    serf/branches/user-defined-authn/build/SerfMachGenExp.cmake
      - copied unchanged from r1926146, serf/trunk/build/SerfMachGenExp.cmake
Removed:
    serf/branches/user-defined-authn/build/SerfWindowsToolkit.cmake
Modified:
    serf/branches/user-defined-authn/   (props changed)
    serf/branches/user-defined-authn/CMakeLists.txt
    serf/branches/user-defined-authn/build/FindBrotli.cmake   (props changed)
    serf/branches/user-defined-authn/build/FindGSSAPI.cmake   (props changed)
    serf/branches/user-defined-authn/build/SerfGenClangd.cmake   (props changed)
    serf/branches/user-defined-authn/build/SerfMacOS.cmake   (props changed)
    serf/branches/user-defined-authn/build/SerfPlatform.cmake
    serf/branches/user-defined-authn/build/SerfWindowsGenDef.cmake
    serf/branches/user-defined-authn/build/gen_def.py

Propchange: serf/branches/user-defined-authn/
------------------------------------------------------------------------------
  Merged /serf/trunk:r1926137-1926146

Modified: serf/branches/user-defined-authn/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/serf/branches/user-defined-authn/CMakeLists.txt?rev=1926147&r1=1926146&r2=1926147&view=diff
==============================================================================
--- serf/branches/user-defined-authn/CMakeLists.txt (original)
+++ serf/branches/user-defined-authn/CMakeLists.txt Thu Jun  5 06:14:39 2025
@@ -92,7 +92,6 @@ endif()
 
 include(GNUInstallDirs)
 include(SerfPlatform)
-include(SerfWindowsToolkit)
 
 # On the Mac: Use dependencies from Homebrew or MacPorts
 if(USE_HOMEBREW OR USE_MACPORTS)
@@ -133,6 +132,7 @@ list(APPEND EXPORTS_BLACKLIST
      "serf_http_protocol_create"
      "serf_https_protocol_create"
      "serf_http_request_queue"
+     "serf_authn_unregister_scheme"
 )
 
 # Serf library source files
@@ -189,15 +189,15 @@ list(APPEND SOURCES
 
 if(SERF_WINDOWS)
   # Generate the .def file for the Windows DLL import library.
-  set(SERF_DEF_FILE "${CMAKE_CURRENT_BINARY_DIR}/serf.def")
+  set(SERF_DEF_FILE 
"${CMAKE_CURRENT_BINARY_DIR}/libserf-${SERF_MAJOR_VERSION}.def")
   add_custom_command(
     OUTPUT "${SERF_DEF_FILE}"
     DEPENDS ${HEADERS}
     COMMAND ${CMAKE_COMMAND}
             -DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}"
             -DCMAKE_MODULE_PATH="${CMAKE_MODULE_PATH}"
-            -DSERF_DEF_BLACKLIST="${EXPORTS_BLACKLIST}"
-            -DSERF_DEF_HEADERS="${HEADERS}"
+            -DSERF_EXPORT_BLACKLIST="${EXPORTS_BLACKLIST}"
+            -DSERF_EXPORT_HEADERS="${HEADERS}"
             -DSERF_DEF_FILE="${SERF_DEF_FILE}"
             -P "build/SerfWindowsGenDef.cmake"
     WORKING_DIRECTORY "${SERF_SOURCE_DIR}"
@@ -217,6 +217,40 @@ if(SERF_WINDOWS)
   add_compile_definitions("SERF_HAVE_SSPI")
 endif(SERF_WINDOWS)
 
+if(SERF_DARWIN)
+  set(SERF_EXP_FILE 
"${CMAKE_CURRENT_BINARY_DIR}/libserf-${SERF_MAJOR_VERSION}.exp")
+  add_custom_command(
+    OUTPUT "${SERF_EXP_FILE}"
+    DEPENDS ${HEADERS}
+    COMMAND ${CMAKE_COMMAND}
+            -DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}"
+            -DCMAKE_MODULE_PATH="${CMAKE_MODULE_PATH}"
+            -DSERF_EXPORT_BLACKLIST="${EXPORTS_BLACKLIST}"
+            -DSERF_EXPORT_HEADERS="${HEADERS}"
+            -DSERF_EXP_FILE="${SERF_EXP_FILE}"
+            -P "build/SerfMachGenExp.cmake"
+    WORKING_DIRECTORY "${SERF_SOURCE_DIR}"
+  )
+  set(SHARED_SOURCES "${SERF_EXP_FILE}")
+endif(SERF_DARWIN)
+
+if(SERF_ELF_TARGET)
+  set(SERF_MAP_FILE 
"${CMAKE_CURRENT_BINARY_DIR}/libserf-${SERF_MAJOR_VERSION}.map")
+  add_custom_command(
+    OUTPUT "${SERF_MAP_FILE}"
+    DEPENDS ${HEADERS}
+    COMMAND ${CMAKE_COMMAND}
+            -DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}"
+            -DCMAKE_MODULE_PATH="${CMAKE_MODULE_PATH}"
+            -DSERF_EXPORT_BLACKLIST="${EXPORTS_BLACKLIST}"
+            -DSERF_EXPORT_HEADERS="${HEADERS}"
+            -DSERF_MAP_FILE="${SERF_MAP_FILE}"
+            -P "build/SerfElfGenMap.cmake"
+    WORKING_DIRECTORY "${SERF_SOURCE_DIR}"
+  )
+  set(SHARED_SOURCES "${SERF_MAP_FILE}")
+endif(SERF_ELF_TARGET)
+
 # Process build options for dependency search
 if(SERF_WINDOWS)
   if(EXPAT)
@@ -380,6 +414,14 @@ if(NOT SKIP_SHARED)
     set_target_properties(serf_shared PROPERTIES
       INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${SERF_INSTALL_LIBRARIES}")
   endif()
+  if(SERF_DARWIN)
+    set_target_properties(serf_shared PROPERTIES
+      LINK_FLAGS "-Wl,-exported_symbols_list,${SERF_EXP_FILE}")
+  endif()
+  if(SERF_ELF_TARGET)
+    set_target_properties(serf_shared PROPERTIES
+      LINK_FLAGS "-Wl,--version-script,${SERF_MAP_FILE}")
+  endif()
   set(SERF_TARGETS "serf_shared")
 
   if(SERF_WINDOWS)

Propchange: serf/branches/user-defined-authn/build/FindBrotli.cmake
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: serf/branches/user-defined-authn/build/FindGSSAPI.cmake
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: serf/branches/user-defined-authn/build/SerfGenClangd.cmake
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: serf/branches/user-defined-authn/build/SerfMacOS.cmake
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: serf/branches/user-defined-authn/build/SerfPlatform.cmake
URL: 
http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/SerfPlatform.cmake?rev=1926147&r1=1926146&r2=1926147&view=diff
==============================================================================
--- serf/branches/user-defined-authn/build/SerfPlatform.cmake (original)
+++ serf/branches/user-defined-authn/build/SerfPlatform.cmake Thu Jun  5 
06:14:39 2025
@@ -29,6 +29,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES  "Darwin
   endif()
 elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
   set(SERF_LINUX TRUE)
+  set(SERF_ELF_TARGET TRUE)
   set(SERF_PLATFORM "Linux")
 elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
   set(SERF_WINDOWS TRUE)

Modified: serf/branches/user-defined-authn/build/SerfWindowsGenDef.cmake
URL: 
http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/SerfWindowsGenDef.cmake?rev=1926147&r1=1926146&r2=1926147&view=diff
==============================================================================
--- serf/branches/user-defined-authn/build/SerfWindowsGenDef.cmake (original)
+++ serf/branches/user-defined-authn/build/SerfWindowsGenDef.cmake Thu Jun  5 
06:14:39 2025
@@ -19,8 +19,13 @@
 
 # Generate Serf's .def file for Windows DLLs.
 
-include(SerfWindowsToolkit)
+include(SerfFindExports)
 
-string(REGEX REPLACE " +" ";" SERF_DEF_BLACKLIST "${SERF_DEF_BLACKLIST}")
-string(REGEX REPLACE " +" ";" SERF_DEF_HEADERS "${SERF_DEF_HEADERS}")
-SerfWindowsGenDef("${SERF_DEF_BLACKLIST}" "${SERF_DEF_FILE}" 
${SERF_DEF_HEADERS})
+separate_arguments(SERF_EXPORT_BLACKLIST)
+separate_arguments(SERF_EXPORT_HEADERS)
+
+SerfFindExports("${SERF_EXPORT_BLACKLIST}" exports_ ${SERF_EXPORT_HEADERS})
+file(WRITE "${SERF_DEF_FILE}" "EXPORTS\n")
+foreach(symbol_ ${exports_})
+  file(APPEND "${SERF_DEF_FILE}" "${symbol_}\n")
+endforeach()

Modified: serf/branches/user-defined-authn/build/gen_def.py
URL: 
http://svn.apache.org/viewvc/serf/branches/user-defined-authn/build/gen_def.py?rev=1926147&r1=1926146&r2=1926147&view=diff
==============================================================================
--- serf/branches/user-defined-authn/build/gen_def.py (original)
+++ serf/branches/user-defined-authn/build/gen_def.py Thu Jun  5 06:14:39 2025
@@ -10,9 +10,9 @@
 #   to you under the Apache License, Version 2.0 (the
 #   "License"); you may not use this file except in compliance
 #   with the License.  You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 #   Unless required by applicable law or agreed to in writing,
 #   software distributed under the License is distributed on an
 #   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -66,6 +66,7 @@ BLACKLIST = set(['serf_connection_switch
                  'serf_http_protocol_create',
                  'serf_https_protocol_create',
                  'serf_http_request_queue',
+                 "serf_authn_unregister_scheme",
                  ])
 
 


Reply via email to