Author: rinrab
Date: Sun Oct  6 09:53:34 2024
New Revision: 1921145

URL: http://svn.apache.org/viewvc?rev=1921145&view=rev
Log:
cmake: Include ABI version number in library names.

This will build the following layout of the libraries and symlinks:

libsvn_client-1.so        -> libsvn_client-1.so
libsvn_client-1.so.1      -> libsvn_client-1.so.1.0.0
libsvn_client-1.so.1.0.0  (the library itself)

* build/generator/templates/targets.cmake.ezt
  (libs): Setup SOVERSION and VERSION properties. Then CMake will the
   required work automatically.
* CMakeLists.txt
  (options): Define SVN_SOVERSION option to make it customizable and to be
   specified once.
  (SVN_SOVERSION definition): Use SVN_SOVERSION, since it got factored out
   from here.

Modified:
    subversion/trunk/CMakeLists.txt
    subversion/trunk/build/generator/templates/targets.cmake.ezt

Modified: subversion/trunk/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/subversion/trunk/CMakeLists.txt?rev=1921145&r1=1921144&r2=1921145&view=diff
==============================================================================
--- subversion/trunk/CMakeLists.txt (original)
+++ subversion/trunk/CMakeLists.txt Sun Oct  6 09:53:34 2024
@@ -101,6 +101,8 @@ cmake_dependent_option(SVN_BUILD_SHARED_
 option(SVN_DEBUG "Enables specific features for developer builds" OFF)
 cmake_dependent_option(SVN_USE_WIN32_CRASHHANDLER "Enables WIN32 crash 
handler." ON "WIN32" OFF)
 option(SVN_USE_DSO "Defined if svn should try to load DSOs" OFF)
+set(SVN_SOVERSION "1" CACHE STRING "Subversion library ABI version")
+mark_as_advanced(SVN_SOVERSION)
 
 # Dependecies
 option(SVN_USE_INTERNAL_LZ4 "Use internal version of lz4" ON)
@@ -158,7 +160,7 @@ string(APPEND PRIVATE_CONFIG_DEFINITIONS
   "/* Shared library file name suffix format */\n"
   "#define SVN_DSO_SUFFIX_FMT \"%d${CMAKE_SHARED_LIBRARY_SUFFIX}\"\n"
 )
-add_compile_definitions("SVN_SOVERSION=1")
+add_compile_definitions("SVN_SOVERSION=${SVN_SOVERSION}")
 
 if (SVN_ENABLE_TESTS)
   enable_testing()

Modified: subversion/trunk/build/generator/templates/targets.cmake.ezt
URL: 
http://svn.apache.org/viewvc/subversion/trunk/build/generator/templates/targets.cmake.ezt?rev=1921145&r1=1921144&r2=1921145&view=diff
==============================================================================
--- subversion/trunk/build/generator/templates/targets.cmake.ezt (original)
+++ subversion/trunk/build/generator/templates/targets.cmake.ezt Sun Oct  6 
09:53:34 2024
@@ -49,7 +49,8 @@ if ([targets.enable_condition])[is targe
     [targets.msvc_export][end]
   )[end]
   set_target_properties([targets.name] PROPERTIES OUTPUT_NAME 
"[targets.output_name]")[if-any targets.is_apache_mod]
-  set_target_properties([targets.name] PROPERTIES PREFIX "" SUFFIX ".so")[end]
+  set_target_properties([targets.name] PROPERTIES PREFIX "" SUFFIX ".so")[else]
+  set_target_properties([targets.name] PROPERTIES SOVERSION "${SVN_SOVERSION}" 
VERSION "${SVN_SOVERSION}.0.0")[end]
   target_include_directories([targets.name] PUBLIC
     "${CMAKE_CURRENT_SOURCE_DIR}/subversion/include"
   )[if-any targets.group]


Reply via email to