Skip to content

Commit caac782

Browse files
committed
build: add soname to shared libraries
Use PROJECT_VERSION.API_LEVEL.RELEASE_DATE as soname to enable applications to select and link against shared libraries based on their SO versions.
1 parent 0818c05 commit caac782

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

CMakeLists.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,16 @@ option (Seastar_DEPRECATED_OSTREAM_FORMATTERS
6969
"Enable operator<< for formatting standard library containers, which will be deprecated in future"
7070
ON)
7171

72+
set (Seastar_RELEASE_DATE
73+
20221127
74+
CACHE
75+
STRING
76+
"Last release date")
77+
78+
set_property (CACHE Seastar_RELEASE_DATE
79+
PROPERTY
80+
STRINGS 20221127)
81+
7282
set (Seastar_API_LEVEL
7383
"7"
7484
CACHE
@@ -780,6 +790,15 @@ add_library (seastar
780790
src/websocket/server.cc
781791
)
782792

793+
# Shared library soname
794+
set_target_properties(seastar PROPERTIES
795+
VERSION ${PROJECT_VERSION}.${Seastar_API_LEVEL}.${Seastar_RELEASE_DATE}
796+
SOVERSION ${PROJECT_VERSION})
797+
798+
# We disable _FORTIFY_SOURCE because it generates false positives with longjmp() (src/core/thread.cc)
799+
set_source_files_properties(src/core/thread.cc
800+
PROPERTIES COMPILE_FLAGS -U_FORTIFY_SOURCE)
801+
783802
add_library (Seastar::seastar ALIAS seastar)
784803

785804
add_dependencies (seastar
@@ -1170,6 +1189,10 @@ if (Seastar_INSTALL OR Seastar_TESTING)
11701189
src/testing/seastar_test.cc
11711190
src/testing/test_runner.cc)
11721191

1192+
set_target_properties(seastar_testing PROPERTIES
1193+
VERSION ${PROJECT_VERSION}.${Seastar_API_LEVEL}.${Seastar_RELEASE_DATE}
1194+
SOVERSION ${PROJECT_VERSION})
1195+
11731196
add_library (Seastar::seastar_testing ALIAS seastar_testing)
11741197

11751198
target_compile_definitions (seastar_testing
@@ -1189,6 +1212,9 @@ if (Seastar_INSTALL OR Seastar_TESTING)
11891212
include/seastar/testing/perf_tests.hh
11901213
tests/perf/perf_tests.cc
11911214
tests/perf/linux_perf_event.cc)
1215+
set_target_properties(seastar_perf_testing PROPERTIES
1216+
VERSION ${PROJECT_VERSION}.${Seastar_API_LEVEL}.${Seaster_RELEASE_DATE}
1217+
SOVERSION ${PROJECT_VERSION})
11921218
add_library (Seastar::seastar_perf_testing ALIAS seastar_perf_testing)
11931219
target_compile_definitions (seastar_perf_testing
11941220
PRIVATE ${Seastar_PRIVATE_COMPILE_DEFINITIONS})

0 commit comments

Comments
 (0)