cmake: Set correct sonames for libprotobuf-lite.so and libprotoc.so (#9529)

Soname was set for libprotobuf.so in commit a9cf69a0ed7766f56976e48a0c96300e94433511,
but similar changes for libprotobuf-lite.so and libprotoc.so were missed.

Fixes: #8635

Co-authored-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@GMail.Com>
diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake
index 5e98748..b915f1f 100644
--- a/cmake/libprotobuf-lite.cmake
+++ b/cmake/libprotobuf-lite.cmake
@@ -108,6 +108,7 @@
 endif()
 set_target_properties(libprotobuf-lite PROPERTIES
     VERSION ${protobuf_VERSION}
+    SOVERSION 30
     OUTPUT_NAME ${LIB_PREFIX}protobuf-lite
     DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}")
 add_library(protobuf::libprotobuf-lite ALIAS libprotobuf-lite)
diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake
index ef5a3cf..a9a0aef 100644
--- a/cmake/libprotobuf.cmake
+++ b/cmake/libprotobuf.cmake
@@ -125,7 +125,6 @@
 endif()
 set_target_properties(libprotobuf PROPERTIES
     VERSION ${protobuf_VERSION}
-    # Use only the first SO version component for compatibility with Makefile emitted SONAME.
     SOVERSION 30
     OUTPUT_NAME ${LIB_PREFIX}protobuf
     DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}")
diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
index ed20f31..4b967b2 100644
--- a/cmake/libprotoc.cmake
+++ b/cmake/libprotoc.cmake
@@ -140,6 +140,7 @@
 set_target_properties(libprotoc PROPERTIES
     COMPILE_DEFINITIONS LIBPROTOC_EXPORTS
     VERSION ${protobuf_VERSION}
+    SOVERSION 30
     OUTPUT_NAME ${LIB_PREFIX}protoc
     DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}")
 add_library(protobuf::libprotoc ALIAS libprotoc)
diff --git a/update_version.py b/update_version.py
index 6e89555..61cf7e8 100755
--- a/update_version.py
+++ b/update_version.py
@@ -103,11 +103,17 @@
 
 
 def UpdateCMake():
-  RewriteTextFile('cmake/libprotobuf.cmake',
-    lambda line : re.sub(
-      r'SOVERSION [0-9]+\.[0-9]+(\.[0-9]+)?',
-      'SOVERSION %s' % GetSharedObjectVersion()[0],
-      line))
+  cmake_files = (
+    'cmake/libprotobuf.cmake',
+    'cmake/libprotobuf-lite.cmake',
+    'cmake/libprotoc.cmake'
+  )
+  for cmake_file in cmake_files:
+    RewriteTextFile(cmake_file,
+      lambda line : re.sub(
+        r'SOVERSION [0-9]+\.[0-9]+(\.[0-9]+)?',
+        'SOVERSION %s' % GetSharedObjectVersion()[0],
+        line))
 
 
 def UpdateConfigure():