cmake: Use linker version scripts (#9545)
Autotools build system already uses linker version scripts since
commit 13d165de9e737cec750a2ab3d1ef68bb3f276c48.
Fixes: #6113
diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake
index a9a0aef..9e08ebf 100644
--- a/cmake/libprotobuf.cmake
+++ b/cmake/libprotobuf.cmake
@@ -107,6 +107,11 @@
add_library(libprotobuf ${protobuf_SHARED_OR_STATIC}
${libprotobuf_lite_files} ${libprotobuf_files} ${libprotobuf_includes} ${libprotobuf_rc_files})
+if(protobuf_HAVE_LD_VERSION_SCRIPT)
+ target_link_options(libprotobuf PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotobuf.map)
+ set_target_properties(libprotobuf PROPERTIES
+ LINK_DEPENDS ${protobuf_source_dir}/src/libprotobuf.map)
+endif()
target_link_libraries(libprotobuf ${CMAKE_THREAD_LIBS_INIT})
if(protobuf_WITH_ZLIB)
target_link_libraries(libprotobuf ${ZLIB_LIBRARIES})