cmake: Replace protobuf_source_dir variable with protobuf_SOURCE_DIR variable (#9596)

protobuf_source_dir variable is no longer needed and has the same value
as protobuf_SOURCE_DIR variable, which is instance of CMake-standard
<PROJECT-NAME>_SOURCE_DIR variable:
https://cmake.org/cmake/help/latest/variable/PROJECT-NAME_SOURCE_DIR.html
diff --git a/CMakeLists.txt b/CMakeLists.txt
index be2ba69..a140856 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -283,13 +283,10 @@
   configure_file(${protobuf_SOURCE_DIR}/cmake/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY)
 endif (MSVC)
 
-
-set(protobuf_source_dir ${protobuf_SOURCE_DIR})
-
 include_directories(
   ${ZLIB_INCLUDE_DIRECTORIES}
   ${protobuf_BINARY_DIR}
-  ${protobuf_source_dir}/src)
+  ${protobuf_SOURCE_DIR}/src)
 
 if (MSVC)
   # Add the "lib" prefix for generated .lib outputs.
diff --git a/cmake/conformance.cmake b/cmake/conformance.cmake
index b9485ff..d6c435a 100644
--- a/cmake/conformance.cmake
+++ b/cmake/conformance.cmake
@@ -1,49 +1,49 @@
 
 add_custom_command(
-  OUTPUT ${protobuf_source_dir}/conformance/conformance.pb.cc
-  DEPENDS ${protobuf_PROTOC_EXE} ${protobuf_source_dir}/conformance/conformance.proto
-  COMMAND ${protobuf_PROTOC_EXE} ${protobuf_source_dir}/conformance/conformance.proto
-      --proto_path=${protobuf_source_dir}/conformance
-      --cpp_out=${protobuf_source_dir}/conformance
+  OUTPUT ${protobuf_SOURCE_DIR}/conformance/conformance.pb.cc
+  DEPENDS ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/conformance/conformance.proto
+  COMMAND ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/conformance/conformance.proto
+      --proto_path=${protobuf_SOURCE_DIR}/conformance
+      --cpp_out=${protobuf_SOURCE_DIR}/conformance
 )
 
 add_custom_command(
-  OUTPUT ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.pb.cc
-         ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.pb.cc
-  DEPENDS ${protobuf_PROTOC_EXE} ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.proto
-          ${protobuf_PROTOC_EXE} ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.proto
-  COMMAND ${protobuf_PROTOC_EXE} ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.proto
-                 ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.proto
-      --proto_path=${protobuf_source_dir}/src
-      --cpp_out=${protobuf_source_dir}/src
+  OUTPUT ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.pb.cc
+         ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.pb.cc
+  DEPENDS ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.proto
+          ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.proto
+  COMMAND ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.proto
+                 ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.proto
+      --proto_path=${protobuf_SOURCE_DIR}/src
+      --cpp_out=${protobuf_SOURCE_DIR}/src
 )
 
 add_executable(conformance_test_runner
-  ${protobuf_source_dir}/conformance/binary_json_conformance_suite.cc
-  ${protobuf_source_dir}/conformance/binary_json_conformance_suite.h
-  ${protobuf_source_dir}/conformance/conformance.pb.cc
-  ${protobuf_source_dir}/conformance/conformance_test.cc
-  ${protobuf_source_dir}/conformance/conformance_test_runner.cc
-  ${protobuf_source_dir}/conformance/third_party/jsoncpp/json.h
-  ${protobuf_source_dir}/conformance/third_party/jsoncpp/jsoncpp.cpp
-  ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.pb.cc
+  ${protobuf_SOURCE_DIR}/conformance/binary_json_conformance_suite.cc
+  ${protobuf_SOURCE_DIR}/conformance/binary_json_conformance_suite.h
+  ${protobuf_SOURCE_DIR}/conformance/conformance.pb.cc
+  ${protobuf_SOURCE_DIR}/conformance/conformance_test.cc
+  ${protobuf_SOURCE_DIR}/conformance/conformance_test_runner.cc
+  ${protobuf_SOURCE_DIR}/conformance/third_party/jsoncpp/json.h
+  ${protobuf_SOURCE_DIR}/conformance/third_party/jsoncpp/jsoncpp.cpp
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.pb.cc
 )
 
 add_executable(conformance_cpp
-  ${protobuf_source_dir}/conformance/conformance.pb.cc
-  ${protobuf_source_dir}/conformance/conformance_cpp.cc
-  ${protobuf_source_dir}/src/google/protobuf/test_messages_proto2.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/test_messages_proto3.pb.cc
+  ${protobuf_SOURCE_DIR}/conformance/conformance.pb.cc
+  ${protobuf_SOURCE_DIR}/conformance/conformance_cpp.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.pb.cc
 )
 
 target_include_directories(
   conformance_test_runner
-  PUBLIC ${protobuf_source_dir}/conformance)
+  PUBLIC ${protobuf_SOURCE_DIR}/conformance)
 
 target_include_directories(
   conformance_cpp
-  PUBLIC ${protobuf_source_dir}/conformance)
+  PUBLIC ${protobuf_SOURCE_DIR}/conformance)
 
 target_link_libraries(conformance_test_runner libprotobuf)
 target_link_libraries(conformance_cpp libprotobuf)
diff --git a/cmake/install.cmake b/cmake/install.cmake
index 534e268..9b5f433 100644
--- a/cmake/install.cmake
+++ b/cmake/install.cmake
@@ -13,7 +13,7 @@
 foreach(_library ${_protobuf_libraries})
   set_property(TARGET ${_library}
     PROPERTY INTERFACE_INCLUDE_DIRECTORIES
-    $<BUILD_INTERFACE:${protobuf_source_dir}/src>
+    $<BUILD_INTERFACE:${protobuf_SOURCE_DIR}/src>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
   if (UNIX AND NOT APPLE)
     set_property(TARGET ${_library}
diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake
index 9376099..19f4f25 100644
--- a/cmake/libprotobuf-lite.cmake
+++ b/cmake/libprotobuf-lite.cmake
@@ -1,88 +1,88 @@
 set(libprotobuf_lite_files
-  ${protobuf_source_dir}/src/google/protobuf/any_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/arena.cc
-  ${protobuf_source_dir}/src/google/protobuf/arenastring.cc
-  ${protobuf_source_dir}/src/google/protobuf/arenaz_sampler.cc
-  ${protobuf_source_dir}/src/google/protobuf/extension_set.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_enum_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_tctable_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/implicit_weak_message.cc
-  ${protobuf_source_dir}/src/google/protobuf/inlined_string_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/coded_stream.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/io_win32.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/strtod.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_impl.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_impl_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/map.cc
-  ${protobuf_source_dir}/src/google/protobuf/message_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/parse_context.cc
-  ${protobuf_source_dir}/src/google/protobuf/repeated_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/repeated_ptr_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/bytestream.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/common.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/int128.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/status.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/statusor.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/stringpiece.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/stringprintf.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/structurally_valid.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/strutil.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/time.cc
-  ${protobuf_source_dir}/src/google/protobuf/wire_format_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/any_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arena.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arenastring.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arenaz_sampler.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/extension_set.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_enum_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_tctable_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/implicit_weak_message.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/inlined_string_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/coded_stream.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/io_win32.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/strtod.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream_impl.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream_impl_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/message_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/parse_context.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/repeated_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/repeated_ptr_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/bytestream.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/common.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/int128.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/status.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/statusor.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/stringpiece.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/stringprintf.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/structurally_valid.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/strutil.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/time.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format_lite.cc
 )
 
 set(libprotobuf_lite_includes
-  ${protobuf_source_dir}/src/google/protobuf/any.h
-  ${protobuf_source_dir}/src/google/protobuf/arena.h
-  ${protobuf_source_dir}/src/google/protobuf/arena_impl.h
-  ${protobuf_source_dir}/src/google/protobuf/arenastring.h
-  ${protobuf_source_dir}/src/google/protobuf/arenaz_sampler.h
-  ${protobuf_source_dir}/src/google/protobuf/explicitly_constructed.h
-  ${protobuf_source_dir}/src/google/protobuf/extension_set.h
-  ${protobuf_source_dir}/src/google/protobuf/extension_set_inl.h
-  ${protobuf_source_dir}/src/google/protobuf/generated_enum_util.h
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_tctable_decl.h
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_tctable_impl.h
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_util.h
-  ${protobuf_source_dir}/src/google/protobuf/has_bits.h
-  ${protobuf_source_dir}/src/google/protobuf/implicit_weak_message.h
-  ${protobuf_source_dir}/src/google/protobuf/inlined_string_field.h
-  ${protobuf_source_dir}/src/google/protobuf/io/coded_stream.h
-  ${protobuf_source_dir}/src/google/protobuf/io/io_win32.h
-  ${protobuf_source_dir}/src/google/protobuf/io/strtod.h
-  ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream.h
-  ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_impl.h
-  ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_impl_lite.h
-  ${protobuf_source_dir}/src/google/protobuf/map.h
-  ${protobuf_source_dir}/src/google/protobuf/map_entry_lite.h
-  ${protobuf_source_dir}/src/google/protobuf/map_field_lite.h
-  ${protobuf_source_dir}/src/google/protobuf/map_type_handler.h
-  ${protobuf_source_dir}/src/google/protobuf/message_lite.h
-  ${protobuf_source_dir}/src/google/protobuf/metadata_lite.h
-  ${protobuf_source_dir}/src/google/protobuf/parse_context.h
-  ${protobuf_source_dir}/src/google/protobuf/port.h
-  ${protobuf_source_dir}/src/google/protobuf/repeated_field.h
-  ${protobuf_source_dir}/src/google/protobuf/repeated_ptr_field.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/bytestream.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/callback.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/casts.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/common.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/hash.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/logging.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/macros.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/map_util.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/mutex.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/once.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/platform_macros.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/port.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/status.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/stl_util.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/stringpiece.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/strutil.h
-  ${protobuf_source_dir}/src/google/protobuf/stubs/template_util.h
-  ${protobuf_source_dir}/src/google/protobuf/wire_format_lite.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/any.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arena.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arena_impl.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arenastring.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arenaz_sampler.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/explicitly_constructed.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/extension_set.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/extension_set_inl.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_enum_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_tctable_decl.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_tctable_impl.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/has_bits.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/implicit_weak_message.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/inlined_string_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/coded_stream.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/io_win32.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/strtod.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream_impl.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream_impl_lite.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_entry_lite.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_field_lite.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_type_handler.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/message_lite.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/metadata_lite.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/parse_context.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/port.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/repeated_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/repeated_ptr_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/bytestream.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/callback.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/casts.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/common.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/hash.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/logging.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/macros.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/map_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/mutex.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/once.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/platform_macros.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/port.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/status.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/stl_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/stringpiece.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/strutil.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/template_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format_lite.h
 )
 
 if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
@@ -95,12 +95,12 @@
   ${libprotobuf_lite_files} ${libprotobuf_lite_includes} ${libprotobuf_lite_rc_files})
 if(protobuf_HAVE_LD_VERSION_SCRIPT)
   if(${CMAKE_VERSION} VERSION_GREATER 3.13 OR ${CMAKE_VERSION} VERSION_EQUAL 3.13)
-    target_link_options(libprotobuf-lite PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotobuf-lite.map)
+    target_link_options(libprotobuf-lite PRIVATE -Wl,--version-script=${protobuf_SOURCE_DIR}/src/libprotobuf-lite.map)
   elseif(protobuf_BUILD_SHARED_LIBS)
-    target_link_libraries(libprotobuf-lite PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotobuf-lite.map)
+    target_link_libraries(libprotobuf-lite PRIVATE -Wl,--version-script=${protobuf_SOURCE_DIR}/src/libprotobuf-lite.map)
   endif()
   set_target_properties(libprotobuf-lite PROPERTIES
-    LINK_DEPENDS ${protobuf_source_dir}/src/libprotobuf-lite.map)
+    LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf-lite.map)
 endif()
 target_link_libraries(libprotobuf-lite PRIVATE ${CMAKE_THREAD_LIBS_INIT})
 if(protobuf_LINK_LIBATOMIC)
@@ -109,7 +109,7 @@
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Android")
   target_link_libraries(libprotobuf-lite PRIVATE log)
 endif()
-target_include_directories(libprotobuf-lite PUBLIC ${protobuf_source_dir}/src)
+target_include_directories(libprotobuf-lite PUBLIC ${protobuf_SOURCE_DIR}/src)
 if(protobuf_BUILD_SHARED_LIBS)
   target_compile_definitions(libprotobuf-lite
     PUBLIC  PROTOBUF_USE_DLLS
diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake
index 448baea..5ce1876 100644
--- a/cmake/libprotobuf.cmake
+++ b/cmake/libprotobuf.cmake
@@ -1,102 +1,102 @@
 set(libprotobuf_files
-  ${protobuf_source_dir}/src/google/protobuf/any.cc
-  ${protobuf_source_dir}/src/google/protobuf/any.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/api.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/importer.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/parser.cc
-  ${protobuf_source_dir}/src/google/protobuf/descriptor.cc
-  ${protobuf_source_dir}/src/google/protobuf/descriptor.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/descriptor_database.cc
-  ${protobuf_source_dir}/src/google/protobuf/duration.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/dynamic_message.cc
-  ${protobuf_source_dir}/src/google/protobuf/empty.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/extension_set_heavy.cc
-  ${protobuf_source_dir}/src/google/protobuf/field_mask.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_bases.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_reflection.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_tctable_full.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/gzip_stream.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/printer.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/tokenizer.cc
-  ${protobuf_source_dir}/src/google/protobuf/map_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/message.cc
-  ${protobuf_source_dir}/src/google/protobuf/reflection_internal.h
-  ${protobuf_source_dir}/src/google/protobuf/reflection_ops.cc
-  ${protobuf_source_dir}/src/google/protobuf/service.cc
-  ${protobuf_source_dir}/src/google/protobuf/source_context.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/struct.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/substitute.cc
-  ${protobuf_source_dir}/src/google/protobuf/text_format.cc
-  ${protobuf_source_dir}/src/google/protobuf/timestamp.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/type.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/unknown_field_set.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/delimited_message_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/field_comparator.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/field_mask_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/datapiece.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/default_value_objectwriter.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/error_listener.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/field_mask_utility.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/json_escaping.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/json_objectwriter.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/json_stream_parser.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/object_writer.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/proto_writer.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/protostream_objectsource.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/protostream_objectwriter.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/type_info.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/utility.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/json_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/message_differencer.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/time_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/type_resolver_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/wire_format.cc
-  ${protobuf_source_dir}/src/google/protobuf/wrappers.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/any.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/any.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/api.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/importer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/parser.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor_database.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/duration.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/dynamic_message.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/empty.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/extension_set_heavy.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/field_mask.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_bases.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_reflection.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_tctable_full.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/gzip_stream.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/printer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/tokenizer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/message.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_internal.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_ops.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/service.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/source_context.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/struct.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/substitute.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/text_format.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/timestamp.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/type.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/unknown_field_set.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/delimited_message_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/field_comparator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/field_mask_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/datapiece.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/default_value_objectwriter.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/error_listener.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/field_mask_utility.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_escaping.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_objectwriter.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_stream_parser.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/object_writer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/proto_writer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/protostream_objectsource.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/protostream_objectwriter.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/type_info.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/utility.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/json_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/message_differencer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/time_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/type_resolver_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wrappers.pb.cc
 )
 
 set(libprotobuf_includes
-  ${protobuf_source_dir}/src/google/protobuf/any.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/api.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/importer.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/parser.h
-  ${protobuf_source_dir}/src/google/protobuf/descriptor.h
-  ${protobuf_source_dir}/src/google/protobuf/descriptor.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/descriptor_database.h
-  ${protobuf_source_dir}/src/google/protobuf/duration.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/dynamic_message.h
-  ${protobuf_source_dir}/src/google/protobuf/empty.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/field_access_listener.h
-  ${protobuf_source_dir}/src/google/protobuf/field_mask.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/generated_enum_reflection.h
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_bases.h
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_reflection.h
-  ${protobuf_source_dir}/src/google/protobuf/io/gzip_stream.h
-  ${protobuf_source_dir}/src/google/protobuf/io/printer.h
-  ${protobuf_source_dir}/src/google/protobuf/io/tokenizer.h
-  ${protobuf_source_dir}/src/google/protobuf/map_entry.h
-  ${protobuf_source_dir}/src/google/protobuf/map_field.h
-  ${protobuf_source_dir}/src/google/protobuf/map_field_inl.h
-  ${protobuf_source_dir}/src/google/protobuf/message.h
-  ${protobuf_source_dir}/src/google/protobuf/metadata.h
-  ${protobuf_source_dir}/src/google/protobuf/reflection.h
-  ${protobuf_source_dir}/src/google/protobuf/reflection_ops.h
-  ${protobuf_source_dir}/src/google/protobuf/service.h
-  ${protobuf_source_dir}/src/google/protobuf/source_context.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/struct.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/text_format.h
-  ${protobuf_source_dir}/src/google/protobuf/timestamp.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/type.pb.h
-  ${protobuf_source_dir}/src/google/protobuf/unknown_field_set.h
-  ${protobuf_source_dir}/src/google/protobuf/util/delimited_message_util.h
-  ${protobuf_source_dir}/src/google/protobuf/util/field_comparator.h
-  ${protobuf_source_dir}/src/google/protobuf/util/field_mask_util.h
-  ${protobuf_source_dir}/src/google/protobuf/util/json_util.h
-  ${protobuf_source_dir}/src/google/protobuf/util/message_differencer.h
-  ${protobuf_source_dir}/src/google/protobuf/util/time_util.h
-  ${protobuf_source_dir}/src/google/protobuf/util/type_resolver.h
-  ${protobuf_source_dir}/src/google/protobuf/util/type_resolver_util.h
-  ${protobuf_source_dir}/src/google/protobuf/wire_format.h
-  ${protobuf_source_dir}/src/google/protobuf/wrappers.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/any.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/api.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/importer.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/parser.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor_database.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/duration.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/dynamic_message.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/empty.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/field_access_listener.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/field_mask.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_enum_reflection.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_bases.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_reflection.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/gzip_stream.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/printer.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/tokenizer.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_entry.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_field_inl.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/message.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/metadata.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_ops.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/service.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/source_context.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/struct.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/text_format.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/timestamp.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/type.pb.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/unknown_field_set.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/delimited_message_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/field_comparator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/field_mask_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/json_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/message_differencer.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/time_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/type_resolver.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/type_resolver_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wrappers.pb.h
 )
 
 if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
@@ -109,12 +109,12 @@
   ${libprotobuf_lite_files} ${libprotobuf_files} ${libprotobuf_includes} ${libprotobuf_rc_files})
 if(protobuf_HAVE_LD_VERSION_SCRIPT)
   if(${CMAKE_VERSION} VERSION_GREATER 3.13 OR ${CMAKE_VERSION} VERSION_EQUAL 3.13)
-    target_link_options(libprotobuf PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotobuf.map)
+    target_link_options(libprotobuf PRIVATE -Wl,--version-script=${protobuf_SOURCE_DIR}/src/libprotobuf.map)
   elseif(protobuf_BUILD_SHARED_LIBS)
-    target_link_libraries(libprotobuf PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotobuf.map)
+    target_link_libraries(libprotobuf PRIVATE -Wl,--version-script=${protobuf_SOURCE_DIR}/src/libprotobuf.map)
   endif()
   set_target_properties(libprotobuf PROPERTIES
-    LINK_DEPENDS ${protobuf_source_dir}/src/libprotobuf.map)
+    LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf.map)
 endif()
 target_link_libraries(libprotobuf PRIVATE ${CMAKE_THREAD_LIBS_INIT})
 if(protobuf_WITH_ZLIB)
@@ -126,7 +126,7 @@
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Android")
   target_link_libraries(libprotobuf PRIVATE log)
 endif()
-target_include_directories(libprotobuf PUBLIC ${protobuf_source_dir}/src)
+target_include_directories(libprotobuf PUBLIC ${protobuf_SOURCE_DIR}/src)
 if(protobuf_BUILD_SHARED_LIBS)
   target_compile_definitions(libprotobuf
     PUBLIC  PROTOBUF_USE_DLLS
diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
index 92dff13..22948fb 100644
--- a/cmake/libprotoc.cmake
+++ b/cmake/libprotoc.cmake
@@ -1,126 +1,126 @@
 set(libprotoc_files
-  ${protobuf_source_dir}/src/google/protobuf/compiler/code_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/command_line_interface.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_enum.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_extension.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_file.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_helpers.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_map_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_message.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_message_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_service.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_string_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_enum.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_enum_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_field_base.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_helpers.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_map_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_message.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_message_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_context.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_doc_comment.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum_field.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum_field_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_extension.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_extension_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_file.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_generator_factory.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_helpers.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_kotlin_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_map_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_map_field_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_builder.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_builder_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_field_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_name_resolver.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_primitive_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_primitive_field_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_service.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_shared_code_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_string_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_string_field_lite.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/js/js_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/js/well_known_types_embed.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_extension.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_field.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_file.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_file.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_map_field.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_message.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_message.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_message_field.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_nsobject_methods.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_oneof.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/php/php_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/plugin.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/plugin.pb.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_helpers.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_pyi_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/ruby/ruby_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/subprocess.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/zip_writer.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/zip_writer.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/code_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/command_line_interface.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_enum.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_extension.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_file.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_helpers.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_map_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_message.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_message_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_service.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_string_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_enum.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_enum_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_field_base.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_helpers.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_map_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_message.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_message_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_context.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_doc_comment.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_enum.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_enum_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_enum_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_enum_field_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_enum_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_extension.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_extension_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_file.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_generator_factory.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_helpers.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_kotlin_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_map_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_map_field_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_message.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_message_builder.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_message_builder_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_message_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_message_field_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_message_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_name_resolver.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_primitive_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_primitive_field_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_service.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_shared_code_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_string_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_string_field_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/js/js_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/js/well_known_types_embed.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_extension.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_file.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_file.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_map_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_message.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_message.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_message_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_nsobject_methods.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_oneof.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/php/php_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/plugin.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/plugin.pb.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_helpers.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_pyi_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/subprocess.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/zip_writer.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/zip_writer.h
 )
 
 set(libprotoc_headers
-  ${protobuf_source_dir}/src/google/protobuf/compiler/code_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/command_line_interface.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_file.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_helpers.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_names.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_doc_comment.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_names.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_options.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_kotlin_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_names.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/js/js_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_helpers.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/php/php_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/plugin.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_pyi_generator.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/ruby/ruby_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/code_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/command_line_interface.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_file.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_helpers.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_names.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_doc_comment.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_names.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_options.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_kotlin_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_names.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/js/js_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_helpers.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/php/php_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/plugin.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_pyi_generator.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator.h
 )
 
 if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
@@ -133,12 +133,12 @@
   ${libprotoc_files} ${libprotoc_headers} ${libprotoc_rc_files})
 if(protobuf_HAVE_LD_VERSION_SCRIPT)
   if(${CMAKE_VERSION} VERSION_GREATER 3.13 OR ${CMAKE_VERSION} VERSION_EQUAL 3.13)
-    target_link_options(libprotoc PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotoc.map)
+    target_link_options(libprotoc PRIVATE -Wl,--version-script=${protobuf_SOURCE_DIR}/src/libprotoc.map)
   elseif(protobuf_BUILD_SHARED_LIBS)
-    target_link_libraries(libprotoc PRIVATE -Wl,--version-script=${protobuf_source_dir}/src/libprotoc.map)
+    target_link_libraries(libprotoc PRIVATE -Wl,--version-script=${protobuf_SOURCE_DIR}/src/libprotoc.map)
   endif()
   set_target_properties(libprotoc PROPERTIES
-    LINK_DEPENDS ${protobuf_source_dir}/src/libprotoc.map)
+    LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotoc.map)
 endif()
 target_link_libraries(libprotoc PRIVATE libprotobuf)
 if(protobuf_BUILD_SHARED_LIBS)
diff --git a/cmake/protoc.cmake b/cmake/protoc.cmake
index c86d662..a9cc86d 100644
--- a/cmake/protoc.cmake
+++ b/cmake/protoc.cmake
@@ -1,5 +1,5 @@
 set(protoc_files
-  ${protobuf_source_dir}/src/google/protobuf/compiler/main.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/main.cc
 )
 
 if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
diff --git a/cmake/tests.cmake b/cmake/tests.cmake
index c1265b7..c92b07e 100644
--- a/cmake/tests.cmake
+++ b/cmake/tests.cmake
@@ -16,8 +16,8 @@
             "  cmake -Dprotobuf_BUILD_TESTS=OFF\n")
   endif()
 
-  set(googlemock_source_dir "${protobuf_source_dir}/third_party/googletest/googlemock")
-  set(googletest_source_dir "${protobuf_source_dir}/third_party/googletest/googletest")
+  set(googlemock_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googlemock")
+  set(googletest_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googletest")
   include_directories(
     ${googlemock_source_dir}
     ${googletest_source_dir}
@@ -95,11 +95,11 @@
   get_filename_component(dirname ${filename} PATH)
   get_filename_component(basename ${filename} NAME_WE)
   add_custom_command(
-    OUTPUT ${protobuf_source_dir}/src/${dirname}/${basename}.pb.cc
-    DEPENDS ${protobuf_PROTOC_EXE} ${protobuf_source_dir}/src/${dirname}/${basename}.proto
-    COMMAND ${protobuf_PROTOC_EXE} ${protobuf_source_dir}/src/${dirname}/${basename}.proto
-        --proto_path=${protobuf_source_dir}/src
-        --cpp_out=${protobuf_source_dir}/src
+    OUTPUT ${protobuf_SOURCE_DIR}/src/${dirname}/${basename}.pb.cc
+    DEPENDS ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/src/${dirname}/${basename}.proto
+    COMMAND ${protobuf_PROTOC_EXE} ${protobuf_SOURCE_DIR}/src/${dirname}/${basename}.proto
+        --proto_path=${protobuf_SOURCE_DIR}/src
+        --cpp_out=${protobuf_SOURCE_DIR}/src
         --experimental_allow_proto3_optional
   )
 endmacro(compile_proto_file)
@@ -109,7 +109,7 @@
   compile_proto_file(${proto_file})
   string(REPLACE .proto .pb.cc pb_file ${proto_file})
   set(lite_test_proto_files ${lite_test_proto_files}
-      ${protobuf_source_dir}/src/${pb_file})
+      ${protobuf_SOURCE_DIR}/src/${pb_file})
 endforeach(proto_file)
 
 set(tests_proto_files)
@@ -117,104 +117,104 @@
   compile_proto_file(${proto_file})
   string(REPLACE .proto .pb.cc pb_file ${proto_file})
   set(tests_proto_files ${tests_proto_files}
-      ${protobuf_source_dir}/src/${pb_file})
+      ${protobuf_SOURCE_DIR}/src/${pb_file})
 endforeach(proto_file)
 
 set(common_lite_test_files
-  ${protobuf_source_dir}/src/google/protobuf/arena_test_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/map_lite_test_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/test_util_lite.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arena_test_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_lite_test_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util_lite.cc
 )
 
 set(common_test_files
   ${common_lite_test_files}
-  ${protobuf_source_dir}/src/google/protobuf/compiler/mock_code_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/map_test_util.inc
-  ${protobuf_source_dir}/src/google/protobuf/reflection_tester.cc
-  ${protobuf_source_dir}/src/google/protobuf/test_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/testing/file.cc
-  ${protobuf_source_dir}/src/google/protobuf/testing/googletest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test_util.inc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_tester.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/file.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/googletest.cc
 )
 
 set(tests_files
-  ${protobuf_source_dir}/src/google/protobuf/any_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/arena_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/arenastring_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/arenaz_sampler_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/annotation_test_util.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/annotation_test_util.h
-  ${protobuf_source_dir}/src/google/protobuf/compiler/command_line_interface_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_move_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_unittest.inc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/metadata_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_bootstrap_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/importer_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_doc_comment_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_plugin_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/parser_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_plugin_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/descriptor_database_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/descriptor_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/drop_unknown_fields_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/dynamic_message_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/extension_set_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_reflection_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/generated_message_tctable_lite_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/inlined_string_field_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/coded_stream_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/io_win32_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/printer_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/tokenizer_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/map_field_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/map_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/map_test.inc
-  ${protobuf_source_dir}/src/google/protobuf/message_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/message_unittest.inc
-  ${protobuf_source_dir}/src/google/protobuf/no_field_presence_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/preserve_unknown_enum_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/proto3_arena_lite_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/proto3_arena_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/proto3_lite_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/proto3_lite_unittest.inc
-  ${protobuf_source_dir}/src/google/protobuf/reflection_ops_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/repeated_field_reflection_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/repeated_field_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/bytestream_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/common_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/int128_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/status_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/statusor_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/stringpiece_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/stringprintf_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/structurally_valid_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/strutil_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/template_util_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/stubs/time_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/text_format_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/unknown_field_set_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/delimited_message_util_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/field_comparator_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/field_mask_util_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/default_value_objectwriter_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/json_objectwriter_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/json_stream_parser_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/protostream_objectsource_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/protostream_objectwriter_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/internal/type_info_test_helper.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/json_util_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/message_differencer_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/time_util_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/util/type_resolver_util_test.cc
-  ${protobuf_source_dir}/src/google/protobuf/well_known_types_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/wire_format_unittest.cc
-  ${protobuf_source_dir}/src/google/protobuf/wire_format_unittest.inc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/any_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arena_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arenastring_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/arenaz_sampler_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/annotation_test_util.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/annotation_test_util.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/command_line_interface_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_move_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/cpp_unittest.inc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/metadata_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_bootstrap_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/importer_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_doc_comment_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_plugin_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/parser_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_plugin_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor_database_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/drop_unknown_fields_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/dynamic_message_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/extension_set_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_reflection_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/generated_message_tctable_lite_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/inlined_string_field_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/coded_stream_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/io_win32_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/printer_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/tokenizer_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_field_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test.inc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/message_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/message_unittest.inc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/no_field_presence_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/preserve_unknown_enum_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/proto3_arena_lite_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/proto3_arena_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/proto3_lite_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/proto3_lite_unittest.inc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_ops_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/repeated_field_reflection_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/repeated_field_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/bytestream_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/common_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/int128_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/status_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/statusor_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/stringpiece_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/stringprintf_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/structurally_valid_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/strutil_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/template_util_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/time_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/text_format_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/unknown_field_set_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/delimited_message_util_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/field_comparator_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/field_mask_util_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/default_value_objectwriter_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_objectwriter_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_stream_parser_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/protostream_objectsource_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/protostream_objectwriter_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/type_info_test_helper.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/json_util_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/message_differencer_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/time_util_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/util/type_resolver_util_test.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/well_known_types_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format_unittest.inc
 )
 
 if(protobuf_ABSOLUTE_TEST_PLUGIN_PATH)
@@ -241,23 +241,23 @@
 target_link_libraries(tests libprotoc libprotobuf GTest::gmock_main)
 
 set(test_plugin_files
-  ${protobuf_source_dir}/src/google/protobuf/compiler/mock_code_generator.cc
-  ${protobuf_source_dir}/src/google/protobuf/compiler/test_plugin.cc
-  ${protobuf_source_dir}/src/google/protobuf/testing/file.cc
-  ${protobuf_source_dir}/src/google/protobuf/testing/file.h
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/test_plugin.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/file.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/file.h
 )
 
 add_executable(test_plugin ${test_plugin_files})
 target_link_libraries(test_plugin libprotoc libprotobuf GTest::gmock)
 
 set(lite_test_files
-  ${protobuf_source_dir}/src/google/protobuf/lite_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_unittest.cc
 )
 add_executable(lite-test ${lite_test_files} ${common_lite_test_files} ${lite_test_proto_files})
 target_link_libraries(lite-test libprotobuf-lite GTest::gmock_main)
 
 set(lite_arena_test_files
-  ${protobuf_source_dir}/src/google/protobuf/lite_arena_unittest.cc
+  ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_arena_unittest.cc
 )
 add_executable(lite-arena-test ${lite_arena_test_files} ${common_lite_test_files} ${lite_test_proto_files})
 target_link_libraries(lite-arena-test libprotobuf-lite GTest::gmock_main)
@@ -265,8 +265,8 @@
 add_custom_target(check
   COMMAND tests
   DEPENDS tests test_plugin
-  WORKING_DIRECTORY ${protobuf_source_dir})
+  WORKING_DIRECTORY ${protobuf_SOURCE_DIR})
 
 add_test(NAME check
   COMMAND tests
-  WORKING_DIRECTORY "${protobuf_source_dir}")
+  WORKING_DIRECTORY "${protobuf_SOURCE_DIR}")
diff --git a/update_file_lists.sh b/update_file_lists.sh
index 1ec1195..6a49de6 100755
--- a/update_file_lists.sh
+++ b/update_file_lists.sh
@@ -118,7 +118,7 @@
 
 
 # Replace file lists in cmake files.
-CMAKE_PREFIX="\${protobuf_source_dir}/src/"
+CMAKE_PREFIX="\${protobuf_SOURCE_DIR}/src/"
 set_cmake_value $CMAKE_DIR/libprotobuf-lite.cmake libprotobuf_lite_files $CMAKE_PREFIX $LIBPROTOBUF_LITE_SOURCES
 set_cmake_value $CMAKE_DIR/libprotobuf.cmake libprotobuf_files $CMAKE_PREFIX $LIBPROTOBUF_SOURCES
 set_cmake_value $CMAKE_DIR/libprotoc.cmake libprotoc_files $CMAKE_PREFIX $LIBPROTOC_SOURCES