Skip to content

Commit f31f8ce

Browse files
committed
build: add soname to shared libraries
Use API level as soname to enable applications to select and link agains shared libraries based on their SO versions.
1 parent c96444f commit f31f8ce

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

CMakeLists.txt

+16
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,15 @@ add_library (seastar
780780
src/websocket/server.cc
781781
)
782782

783+
# Shared library soname
784+
set_target_properties(seastar PROPERTIES
785+
VERSION ${Seastar_API_LEVEL}
786+
SOVERSION ${Seastar_API_LEVEL})
787+
788+
# We disable _FORTIFY_SOURCE because it generates false positives with longjmp() (src/core/thread.cc)
789+
set_source_files_properties(src/core/thread.cc
790+
PROPERTIES COMPILE_FLAGS -U_FORTIFY_SOURCE)
791+
783792
add_library (Seastar::seastar ALIAS seastar)
784793

785794
add_dependencies (seastar
@@ -1170,6 +1179,10 @@ if (Seastar_INSTALL OR Seastar_TESTING)
11701179
src/testing/seastar_test.cc
11711180
src/testing/test_runner.cc)
11721181

1182+
set_target_properties(seastar_testing PROPERTIES
1183+
VERSION ${Seastar_API_LEVEL}
1184+
SOVERSION ${Seastar_API_LEVEL})
1185+
11731186
add_library (Seastar::seastar_testing ALIAS seastar_testing)
11741187

11751188
target_compile_definitions (seastar_testing
@@ -1189,6 +1202,9 @@ if (Seastar_INSTALL OR Seastar_TESTING)
11891202
include/seastar/testing/perf_tests.hh
11901203
tests/perf/perf_tests.cc
11911204
tests/perf/linux_perf_event.cc)
1205+
set_target_properties(seastar_perf_testing PROPERTIES
1206+
VERSION ${Seastar_API_LEVEL}
1207+
SOVERSION ${Seastar_API_LEVEL})
11921208
add_library (Seastar::seastar_perf_testing ALIAS seastar_perf_testing)
11931209
target_compile_definitions (seastar_perf_testing
11941210
PRIVATE ${Seastar_PRIVATE_COMPILE_DEFINITIONS})

0 commit comments

Comments
 (0)