cmake: Use linker version scripts (#9545)
Autotools build system already uses linker version scripts since
commit 13d165de9e737cec750a2ab3d1ef68bb3f276c48.
Fixes: #6113
diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
index 4b967b2..317e4c2 100644
--- a/cmake/libprotoc.cmake
+++ b/cmake/libprotoc.cmake
@@ -131,6 +131,11 @@
add_library(libprotoc ${protobuf_SHARED_OR_STATIC}
${libprotoc_files} ${libprotoc_headers} ${libprotoc_rc_files})
+if(protobuf_HAVE_LD_VERSION_SCRIPT)
+ target_link_options(libprotoc PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotoc.map)
+ set_target_properties(libprotoc PROPERTIES
+ LINK_DEPENDS ${protobuf_source_dir}/src/libprotoc.map)
+endif()
target_link_libraries(libprotoc libprotobuf)
if(MSVC AND protobuf_BUILD_SHARED_LIBS)
target_compile_definitions(libprotoc