From 942cec077ae36294281d3b13fb33aeea91d58f6a Mon Sep 17 00:00:00 2001 From: Deanna Garcia Date: Fri, 20 May 2022 21:43:48 +0000 Subject: [PATCH 01/32] Fix podspecs --- Protobuf-C++.podspec | 2 +- Protobuf.podspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec index 1297ad3e82..72a0c70a78 100644 --- a/Protobuf-C++.podspec +++ b/Protobuf-C++.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.cocoapods_version = '>= 1.0' s.source = { :git => 'https://github.com/google/protobuf.git', - :tag => "v21.0-rc2" } + :tag => "v#{s.version}" } s.source_files = 'src/google/protobuf/*.{h,cc,inc}', 'src/google/protobuf/stubs/*.{h,cc}', diff --git a/Protobuf.podspec b/Protobuf.podspec index 643635d8bd..d8cd0ef4b4 100644 --- a/Protobuf.podspec +++ b/Protobuf.podspec @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.cocoapods_version = '>= 1.0' s.source = { :git => 'https://github.com/protocolbuffers/protobuf.git', - :tag => "v21.0-rc2" } + :tag => "v#{s.version}" } s.source_files = 'objectivec/*.{h,m}', 'objectivec/google/protobuf/Any.pbobjc.h', From a5a71fbbdf0f30751b1f3a9b17ce94d783725935 Mon Sep 17 00:00:00 2001 From: Niranjan Bhaskar Date: Mon, 23 May 2022 16:04:58 -0400 Subject: [PATCH 02/32] Add header search paths to protobuf-c++ spec --- Protobuf-C++.podspec | 1 + 1 file changed, 1 insertion(+) diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec index 9d8815a8c8..841596da29 100644 --- a/Protobuf-C++.podspec +++ b/Protobuf-C++.podspec @@ -35,6 +35,7 @@ Pod::Spec.new do |s| # Do not let src/google/protobuf/stubs/time.h override system API 'USE_HEADERMAP' => 'NO', 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + 'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/src"' } end From 2dc7679cc1b5caa9bb943d0994faa6e0267414f2 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Mon, 23 May 2022 20:59:31 +0000 Subject: [PATCH 03/32] Fixed the Windows build of protoc by statically linking deps. --- BUILD.bazel | 4 ++-- build_defs/BUILD.bazel | 14 ++++++++++++++ build_defs/cpp_opts.bzl | 7 +++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 4763717334..6017730f06 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -6,7 +6,7 @@ load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library") load("@rules_python//python:defs.bzl", "py_library") load("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library") -load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS") +load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS", "PROTOC_LINK_OPTS") load( ":protobuf.bzl", "adapt_proto_library", @@ -442,7 +442,7 @@ cc_library( cc_binary( name = "protoc", srcs = ["src/google/protobuf/compiler/main.cc"], - linkopts = LINK_OPTS, + linkopts = LINK_OPTS + PROTOC_LINK_OPTS, visibility = ["//visibility:public"], deps = [":protoc_lib"], ) diff --git a/build_defs/BUILD.bazel b/build_defs/BUILD.bazel index 29a1f12566..a5d831c9a8 100644 --- a/build_defs/BUILD.bazel +++ b/build_defs/BUILD.bazel @@ -59,6 +59,20 @@ config_setting( }, ) +config_setting( + name = "config_win32", + values = { + "cpu": "win32", + }, +) + +config_setting( + name = "config_win64", + values = { + "cpu": "win64", + }, +) + # Internal testing: starlark_cc_proto_library( diff --git a/build_defs/cpp_opts.bzl b/build_defs/cpp_opts.bzl index f868c4ae5c..1d5594d173 100644 --- a/build_defs/cpp_opts.bzl +++ b/build_defs/cpp_opts.bzl @@ -38,3 +38,10 @@ LINK_OPTS = select({ "-lm", ], }) + +# When cross-compiling for Windows we need to statically link pthread and the C++ library. +PROTOC_LINK_OPTS = select({ + "//build_defs:config_win32": ["-static"], + "//build_defs:config_win64": ["-static"], + "//conditions:default": [], +}) From 8984184e5464bbe3cd8046c90f4e1559145aab4b Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Tue, 24 May 2022 21:06:00 +0000 Subject: [PATCH 04/32] Revert "fix: reserve "ReadOnly" keyword for PHP 8.1 and add compatibility (#9633)" This reverts commit eb27c201f121b02c990c3665edce5171a8c70192. --- php/ext/google/protobuf/names.c | 12 +-- php/src/Google/Protobuf/Internal/GPBUtil.php | 11 +- php/tests/GeneratedClassTest.php | 18 ---- .../proto/test_reserved_enum_lower.proto | 1 - .../proto/test_reserved_enum_upper.proto | 1 - .../test_reserved_enum_value_lower.proto | 1 - .../test_reserved_enum_value_upper.proto | 1 - .../proto/test_reserved_message_lower.proto | 1 - .../proto/test_reserved_message_upper.proto | 1 - .../protobuf/compiler/php/php_generator.cc | 100 ++++-------------- 10 files changed, 30 insertions(+), 117 deletions(-) diff --git a/php/ext/google/protobuf/names.c b/php/ext/google/protobuf/names.c index a2988816ed..5d7b68aaf5 100644 --- a/php/ext/google/protobuf/names.c +++ b/php/ext/google/protobuf/names.c @@ -82,12 +82,12 @@ const char *const kReservedNames[] = { "global", "goto", "insteadof", "interface", "isset", "list", "match", "namespace", "new", "object", "or", "parent", "print", "private", "protected", - "public", "readonly", "require", "require_once", "return", - "self", "static", "switch", "throw", "trait", - "try", "unset", "use", "var", "while", - "xor", "yield", "int", "float", "bool", - "string", "true", "false", "null", "void", - "iterable", NULL}; + "public", "require", "require_once", "return", "self", + "static", "switch", "throw", "trait", "try", + "unset", "use", "var", "while", "xor", + "yield", "int", "float", "bool", "string", + "true", "false", "null", "void", "iterable", + NULL}; bool is_reserved_name(const char* name) { int i; diff --git a/php/src/Google/Protobuf/Internal/GPBUtil.php b/php/src/Google/Protobuf/Internal/GPBUtil.php index d7f2faaf6c..4b152839ec 100644 --- a/php/src/Google/Protobuf/Internal/GPBUtil.php +++ b/php/src/Google/Protobuf/Internal/GPBUtil.php @@ -285,12 +285,11 @@ class GPBUtil "include"=>0, "include_once"=>0, "instanceof"=>0, "insteadof"=>0, "interface"=>0, "isset"=>0, "list"=>0, "match"=>0, "namespace"=>0, "new"=>0, "or"=>0, "parent"=>0, "print"=>0, "private"=>0, - "protected"=>0,"public"=>0, "readonly" => 0,"require"=>0, - "require_once"=>0,"return"=>0, "self"=>0, "static"=>0, "switch"=>0, - "throw"=>0,"trait"=>0, "try"=>0,"unset"=>0, "use"=>0, "var"=>0, - "while"=>0,"xor"=>0, "yield"=>0, "int"=>0, "float"=>0, "bool"=>0, - "string"=>0,"true"=>0, "false"=>0, "null"=>0, "void"=>0, - "iterable"=>0 + "protected"=>0,"public"=>0, "require"=>0, "require_once"=>0, + "return"=>0, "self"=>0, "static"=>0, "switch"=>0, "throw"=>0, + "trait"=>0, "try"=>0,"unset"=>0, "use"=>0, "var"=>0, "while"=>0, + "xor"=>0, "yield"=>0, "int"=>0, "float"=>0, "bool"=>0, "string"=>0, + "true"=>0, "false"=>0, "null"=>0, "void"=>0, "iterable"=>0 ); if (array_key_exists(strtolower($classname), $reserved_words)) { diff --git a/php/tests/GeneratedClassTest.php b/php/tests/GeneratedClassTest.php index 37c33dfabe..8a89973ce8 100644 --- a/php/tests/GeneratedClassTest.php +++ b/php/tests/GeneratedClassTest.php @@ -334,18 +334,6 @@ class GeneratedClassTest extends TestBase $this->legacyEnum(new TestLegacyMessage\NestedEnum); } - public function testLegacyReadOnlyMessage() - { - $this->assertTrue(class_exists('\Upper\READONLY')); - $this->assertTrue(class_exists('\Lower\readonly')); - } - - public function testLegacyReadOnlyEnum() - { - $this->assertTrue(class_exists('\Upper_enum\READONLY')); - $this->assertTrue(class_exists('\Lower_enum\readonly')); - } - private function legacyEnum(TestLegacyMessage_NestedEnum $enum) { // If we made it here without a PHP Fatal error, the typehint worked @@ -955,7 +943,6 @@ class GeneratedClassTest extends TestBase $m = new \Lower\PBprivate(); $m = new \Lower\PBprotected(); $m = new \Lower\PBpublic(); - $m = new \Lower\PBreadonly(); $m = new \Lower\PBrequire(); $m = new \Lower\PBrequire_once(); $m = new \Lower\PBreturn(); @@ -1036,7 +1023,6 @@ class GeneratedClassTest extends TestBase $m = new \Upper\PBPRIVATE(); $m = new \Upper\PBPROTECTED(); $m = new \Upper\PBPUBLIC(); - $m = new \Upper\PBREADONLY(); $m = new \Upper\PBREQUIRE(); $m = new \Upper\PBREQUIRE_ONCE(); $m = new \Upper\PBRETURN(); @@ -1118,7 +1104,6 @@ class GeneratedClassTest extends TestBase $m = new \Lower_enum\PBprotected(); $m = new \Lower_enum\PBpublic(); $m = new \Lower_enum\PBrequire(); - $m = new \Lower_enum\PBreadonly(); $m = new \Lower_enum\PBrequire_once(); $m = new \Lower_enum\PBreturn(); $m = new \Lower_enum\PBself(); @@ -1198,7 +1183,6 @@ class GeneratedClassTest extends TestBase $m = new \Upper_enum\PBPRIVATE(); $m = new \Upper_enum\PBPROTECTED(); $m = new \Upper_enum\PBPUBLIC(); - $m = new \Upper_enum\PBREADONLY(); $m = new \Upper_enum\PBREQUIRE(); $m = new \Upper_enum\PBREQUIRE_ONCE(); $m = new \Upper_enum\PBRETURN(); @@ -1303,7 +1287,6 @@ class GeneratedClassTest extends TestBase $m = \Lower_enum_value\NotAllowed::iterable; $m = \Lower_enum_value\NotAllowed::parent; $m = \Lower_enum_value\NotAllowed::self; - $m = \Lower_enum_value\NotAllowed::readonly; $m = \Upper_enum_value\NotAllowed::PBABSTRACT; $m = \Upper_enum_value\NotAllowed::PBAND; @@ -1384,7 +1367,6 @@ class GeneratedClassTest extends TestBase $m = \Upper_enum_value\NotAllowed::ITERABLE; $m = \Upper_enum_value\NotAllowed::PARENT; $m = \Upper_enum_value\NotAllowed::SELF; - $m = \Upper_enum_value\NotAllowed::READONLY; $this->assertTrue(true); } diff --git a/php/tests/proto/test_reserved_enum_lower.proto b/php/tests/proto/test_reserved_enum_lower.proto index 1f96ac6fe0..f8557d250f 100644 --- a/php/tests/proto/test_reserved_enum_lower.proto +++ b/php/tests/proto/test_reserved_enum_lower.proto @@ -57,7 +57,6 @@ enum print { ZERO51 = 0; } enum private { ZERO52 = 0; } enum protected { ZERO53 = 0; } enum public { ZERO54 = 0; } -enum readonly { ZERO80 = 0; } enum require { ZERO55 = 0; } enum require_once { ZERO56 = 0; } enum return { ZERO57 = 0; } diff --git a/php/tests/proto/test_reserved_enum_upper.proto b/php/tests/proto/test_reserved_enum_upper.proto index c5e7e99fd5..8d382ab31e 100644 --- a/php/tests/proto/test_reserved_enum_upper.proto +++ b/php/tests/proto/test_reserved_enum_upper.proto @@ -57,7 +57,6 @@ enum PRINT { ZERO51 = 0; } enum PRIVATE { ZERO52 = 0; } enum PROTECTED { ZERO53 = 0; } enum PUBLIC { ZERO54 = 0; } -enum READONLY { ZERO80 = 0; } enum REQUIRE { ZERO55 = 0; } enum REQUIRE_ONCE { ZERO56 = 0; } enum RETURN { ZERO57 = 0; } diff --git a/php/tests/proto/test_reserved_enum_value_lower.proto b/php/tests/proto/test_reserved_enum_value_lower.proto index 86c6877f7d..ca5a7c7352 100644 --- a/php/tests/proto/test_reserved_enum_value_lower.proto +++ b/php/tests/proto/test_reserved_enum_value_lower.proto @@ -58,7 +58,6 @@ enum NotAllowed { private = 51; protected = 52; public = 53; - readonly = 79; require = 54; require_once = 55; return = 56; diff --git a/php/tests/proto/test_reserved_enum_value_upper.proto b/php/tests/proto/test_reserved_enum_value_upper.proto index ac0beda7d9..6b4040d5e4 100644 --- a/php/tests/proto/test_reserved_enum_value_upper.proto +++ b/php/tests/proto/test_reserved_enum_value_upper.proto @@ -58,7 +58,6 @@ enum NotAllowed { PRIVATE = 51; PROTECTED = 52; PUBLIC = 53; - READONLY = 79; REQUIRE = 54; REQUIRE_ONCE = 55; RETURN = 56; diff --git a/php/tests/proto/test_reserved_message_lower.proto b/php/tests/proto/test_reserved_message_lower.proto index 551ed7a408..2390a87dd6 100644 --- a/php/tests/proto/test_reserved_message_lower.proto +++ b/php/tests/proto/test_reserved_message_lower.proto @@ -57,7 +57,6 @@ message print {} message private {} message protected {} message public {} -message readonly {} message require {} message require_once {} message return {} diff --git a/php/tests/proto/test_reserved_message_upper.proto b/php/tests/proto/test_reserved_message_upper.proto index 96995c9917..9f55330223 100644 --- a/php/tests/proto/test_reserved_message_upper.proto +++ b/php/tests/proto/test_reserved_message_upper.proto @@ -57,7 +57,6 @@ message PRINT {} message PRIVATE {} message PROTECTED {} message PUBLIC {} -message READONLY {} message REQUIRE {} message REQUIRE_ONCE {} message RETURN {} diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index 135a92f654..85671f7c9c 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -48,29 +48,29 @@ const std::string kDescriptorMetadataFile = const std::string kDescriptorDirName = "Google/Protobuf/Internal"; const std::string kDescriptorPackageName = "Google\\Protobuf\\Internal"; const char* const kReservedNames[] = { - "abstract", "and", "array", "as", "break", - "callable", "case", "catch", "class", "clone", - "const", "continue", "declare", "default", "die", - "do", "echo", "else", "elseif", "empty", - "enddeclare", "endfor", "endforeach", "endif", "endswitch", - "endwhile", "eval", "exit", "extends", "final", - "finally", "fn", "for", "foreach", "function", - "global", "goto", "if", "implements", "include", - "include_once", "instanceof", "insteadof", "interface", "isset", - "list", "match", "namespace", "new", "or", - "parent", "print", "private", "protected", "public", - "readonly", "require", "require_once", "return", "self", - "static", "switch", "throw", "trait", "try", - "unset", "use", "var", "while", "xor", - "yield", "int", "float", "bool", "string", - "true", "false", "null", "void", "iterable"}; + "abstract", "and", "array", "as", "break", + "callable", "case", "catch", "class", "clone", + "const", "continue", "declare", "default", "die", + "do", "echo", "else", "elseif", "empty", + "enddeclare", "endfor", "endforeach", "endif", "endswitch", + "endwhile", "eval", "exit", "extends", "final", + "finally", "fn", "for", "foreach", "function", + "global", "goto", "if", "implements", "include", + "include_once", "instanceof", "insteadof", "interface", "isset", + "list", "match", "namespace", "new", "or", + "parent", "print", "private", "protected", "public", + "require", "require_once", "return", "self", "static", + "switch", "throw", "trait", "try", "unset", + "use", "var", "while", "xor", "yield", + "int", "float", "bool", "string", "true", + "false", "null", "void", "iterable"}; const char* const kValidConstantNames[] = { "int", "float", "bool", "string", "true", "false", "null", "void", "iterable", "parent", - "self", "readonly" + "self" }; -const int kReservedNamesSize = 80; -const int kValidConstantNamesSize = 12; +const int kReservedNamesSize = 79; +const int kValidConstantNamesSize = 11; const int kFieldSetter = 1; const int kFieldGetter = 2; const int kFieldProperty = 3; @@ -420,16 +420,6 @@ std::string LegacyGeneratedClassFileName(const DescriptorType* desc, return result + ".php"; } -template -std::string LegacyReadOnlyGeneratedClassFileName(const DescriptorType* desc, - const Options& options) { - std::string php_namespace = RootPhpNamespace(desc, options); - if (!php_namespace.empty()) { - return php_namespace + "/" + desc->name() + ".php"; - } - return desc->name() + ".php"; -} - std::string GeneratedServiceFileName(const ServiceDescriptor* service, const Options& options) { std::string result = FullClassName(service, options) + "Interface"; @@ -1312,32 +1302,6 @@ void LegacyGenerateClassFile(const FileDescriptor* file, "fullname", newname); } -template -void LegacyReadOnlyGenerateClassFile(const FileDescriptor* file, - const DescriptorType* desc, const Options& options, - GeneratorContext* generator_context) { - std::string filename = LegacyReadOnlyGeneratedClassFileName(desc, options); - std::unique_ptr output( - generator_context->Open(filename)); - io::Printer printer(output.get(), '^'); - - GenerateHead(file, &printer); - - std::string php_namespace = RootPhpNamespace(desc, options); - if (!php_namespace.empty()) { - printer.Print( - "namespace ^name^;\n\n", - "name", php_namespace); - } - std::string newname = FullClassName(desc, options); - printer.Print("class_exists(^new^::class);\n", - "new", GeneratedClassNameImpl(desc)); - printer.Print("@trigger_error(__NAMESPACE__ . '\\^old^ is deprecated and will be removed in " - "the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n", - "old", desc->name(), - "fullname", newname); -} - void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en, const Options& options, GeneratorContext* generator_context) { @@ -1459,19 +1423,6 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en, "old", LegacyFullClassName(en, options)); LegacyGenerateClassFile(file, en, options, generator_context); } - - // Write legacy file for backwards compatibility with "readonly" keywword - std::string lower = en->name(); - std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower); - if (lower == "readonly") { - printer.Print( - "// Adding a class alias for backwards compatibility with the \"readonly\" keyword.\n"); - printer.Print( - "class_alias(^new^::class, __NAMESPACE__ . '\\^old^');\n\n", - "new", fullname, - "old", en->name()); - LegacyReadOnlyGenerateClassFile(file, en, options, generator_context); - } } void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message, @@ -1588,19 +1539,6 @@ void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message, LegacyGenerateClassFile(file, message, options, generator_context); } - // Write legacy file for backwards compatibility with "readonly" keywword - std::string lower = message->name(); - std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower); - if (lower == "readonly") { - printer.Print( - "// Adding a class alias for backwards compatibility with the \"readonly\" keyword.\n"); - printer.Print( - "class_alias(^new^::class, __NAMESPACE__ . '\\^old^');\n\n", - "new", fullname, - "old", message->name()); - LegacyReadOnlyGenerateClassFile(file, message, options, generator_context); - } - // Nested messages and enums. for (int i = 0; i < message->nested_type_count(); i++) { GenerateMessageFile(file, message->nested_type(i), options, From 043ee2e4e6d74e0530446e4819a6085c3fa505af Mon Sep 17 00:00:00 2001 From: cjtallman Date: Wed, 25 May 2022 11:00:25 -0700 Subject: [PATCH 05/32] Adding a DEPENDENCIES option to the protobuf_generate cmake function (#10014) --- cmake/protobuf-config.cmake.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/protobuf-config.cmake.in b/cmake/protobuf-config.cmake.in index 597f588603..3c0ec7527b 100644 --- a/cmake/protobuf-config.cmake.in +++ b/cmake/protobuf-config.cmake.in @@ -12,7 +12,7 @@ function(protobuf_generate) include(CMakeParseArguments) set(_options APPEND_PATH) - set(_singleargs LANGUAGE OUT_VAR EXPORT_MACRO PROTOC_OUT_DIR PLUGIN PLUGIN_OPTIONS) + set(_singleargs LANGUAGE OUT_VAR EXPORT_MACRO PROTOC_OUT_DIR PLUGIN PLUGIN_OPTIONS DEPENDENCIES) if(COMMAND target_sources) list(APPEND _singleargs TARGET) endif() @@ -149,7 +149,7 @@ function(protobuf_generate) OUTPUT ${_generated_srcs} COMMAND protobuf::protoc ARGS ${protobuf_generate_PROTOC_OPTIONS} --${protobuf_generate_LANGUAGE}_out ${_plugin_options}:${protobuf_generate_PROTOC_OUT_DIR} ${_plugin} ${_protobuf_include_path} ${_abs_file} - DEPENDS ${_abs_file} protobuf::protoc + DEPENDS ${_abs_file} protobuf::protoc ${protobuf_generate_DEPENDENCIES} COMMENT ${_comment} VERBATIM ) endforeach() From 34d749df72eddec231e6539d4daf8ef2439b7ec9 Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Wed, 25 May 2022 12:02:31 -0700 Subject: [PATCH 06/32] Fix headers for protobuf and protobuf_lite so they are the proper lists of files, not just globs. (#10031) This change makes the headers into actual lists of files, rather than globs. These lists are based on the current cmake definitions. --- src/google/protobuf/BUILD.bazel | 100 +++++++++++++++---- src/google/protobuf/compiler/BUILD.bazel | 2 + src/google/protobuf/compiler/cpp/BUILD.bazel | 3 + src/google/protobuf/io/BUILD.bazel | 1 + src/google/protobuf/util/BUILD.bazel | 1 + 5 files changed, 90 insertions(+), 17 deletions(-) diff --git a/src/google/protobuf/BUILD.bazel b/src/google/protobuf/BUILD.bazel index a8736c337b..7fdd80a790 100644 --- a/src/google/protobuf/BUILD.bazel +++ b/src/google/protobuf/BUILD.bazel @@ -146,10 +146,35 @@ cc_library( "repeated_ptr_field.cc", "wire_format_lite.cc", ], - hdrs = glob([ - "**/*.h", - "**/*.inc", - ]), + hdrs = [ + "any.h", + "arena.h", + "arena_impl.h", + "arenastring.h", + "arenaz_sampler.h", + "endian.h", + "explicitly_constructed.h", + "extension_set.h", + "extension_set_inl.h", + "generated_enum_util.h", + "generated_message_tctable_decl.h", + "generated_message_tctable_impl.h", + "generated_message_util.h", + "has_bits.h", + "implicit_weak_message.h", + "inlined_string_field.h", + "map.h", + "map_entry_lite.h", + "map_field_lite.h", + "map_type_handler.h", + "message_lite.h", + "metadata_lite.h", + "parse_context.h", + "port.h", + "repeated_field.h", + "repeated_ptr_field.h", + "wire_format_lite.h", + ], copts = COPTS + select({ "//build_defs:config_msvc": [], "//conditions:default": [ @@ -201,10 +226,38 @@ cc_library( "wire_format.cc", "wrappers.pb.cc", ], - hdrs = glob([ - "**/*.h", - "**/*.inc", - ]), + hdrs = [ + "any.pb.h", + "api.pb.h", + "descriptor.h", + "descriptor.pb.h", + "descriptor_database.h", + "duration.pb.h", + "dynamic_message.h", + "empty.pb.h", + "field_access_listener.h", + "field_mask.pb.h", + "generated_enum_reflection.h", + "generated_message_bases.h", + "generated_message_reflection.h", + "map_entry.h", + "map_field.h", + "map_field_inl.h", + "message.h", + "metadata.h", + "reflection.h", + "reflection_internal.h", + "reflection_ops.h", + "service.h", + "source_context.pb.h", + "struct.pb.h", + "text_format.h", + "timestamp.pb.h", + "type.pb.h", + "unknown_field_set.h", + "wire_format.h", + "wrappers.pb.h", + ], copts = COPTS, include_prefix = "google/protobuf", linkopts = LINK_OPTS, @@ -454,11 +507,17 @@ cc_library( hdrs = [ "arena_test_util.h", "map_lite_test_util.h", + "map_test.inc", "map_test_util.h", + "map_test_util.inc", "map_test_util_impl.h", + "message_unittest.inc", + "proto3_lite_unittest.inc", + "reflection_tester.h", "test_util.h", - "test_util2.h", + "test_util.inc", "test_util_lite.h", + "wire_format_unittest.inc", ], copts = COPTS + select({ "//build_defs:config_msvc": [], @@ -467,10 +526,6 @@ cc_library( ], }), strip_include_prefix = "/src", - textual_hdrs = [ - "map_test_util.inc", - "test_util.inc", - ], visibility = ["//:__subpackages__"], deps = [ ":cc_lite_test_protos", @@ -479,6 +534,19 @@ cc_library( ], ) +cc_library( + name = "test_util2", + testonly = 1, + hdrs = ["test_util2.h"], + strip_include_prefix = "/src", + textual_hdrs = ["test_util.inc"], + visibility = ["//:__subpackages__"], + deps = [ + "//src/google/protobuf/io", + "@com_google_googletest//:gtest", + ], +) + cc_test( name = "protobuf_test", srcs = [ @@ -496,15 +564,12 @@ cc_test( "inlined_string_field_unittest.cc", "map_field_test.cc", "map_test.cc", - "map_test.inc", "message_unittest.cc", - "message_unittest.inc", "no_field_presence_test.cc", "preserve_unknown_enum_test.cc", "proto3_arena_lite_unittest.cc", "proto3_arena_unittest.cc", "proto3_lite_unittest.cc", - "proto3_lite_unittest.inc", "reflection_ops_unittest.cc", "repeated_field_reflection_unittest.cc", "repeated_field_unittest.cc", @@ -512,7 +577,6 @@ cc_test( "unknown_field_set_unittest.cc", "well_known_types_unittest.cc", "wire_format_unittest.cc", - "wire_format_unittest.inc", ], copts = COPTS + select({ "//build_defs:config_msvc": [], @@ -532,11 +596,13 @@ cc_test( ":cc_test_protos", ":protobuf", ":test_util", + ":test_util2", "//src/google/protobuf/testing", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", ], ) + ################################################################################ # Helper targets for Kotlin tests ################################################################################ diff --git a/src/google/protobuf/compiler/BUILD.bazel b/src/google/protobuf/compiler/BUILD.bazel index 8da74f10a7..75b90e411b 100644 --- a/src/google/protobuf/compiler/BUILD.bazel +++ b/src/google/protobuf/compiler/BUILD.bazel @@ -199,6 +199,7 @@ cc_test( ":mock_code_generator", "//:protobuf", "//src/google/protobuf:cc_test_protos", + "//src/google/protobuf:test_util2", "//src/google/protobuf/io", "//src/google/protobuf/stubs", "//src/google/protobuf/testing", @@ -236,6 +237,7 @@ cc_test( ":importer", "//:protobuf", "//src/google/protobuf:cc_test_protos", + "//src/google/protobuf:test_util2", "//src/google/protobuf/io", "//src/google/protobuf/stubs", "//src/google/protobuf/testing", diff --git a/src/google/protobuf/compiler/cpp/BUILD.bazel b/src/google/protobuf/compiler/cpp/BUILD.bazel index b14259495c..557580926b 100644 --- a/src/google/protobuf/compiler/cpp/BUILD.bazel +++ b/src/google/protobuf/compiler/cpp/BUILD.bazel @@ -107,6 +107,8 @@ cc_test( ":unittest_lib", "//:protobuf", "//src/google/protobuf:cc_test_protos", + "//src/google/protobuf:test_util", + "//src/google/protobuf:test_util2", "//src/google/protobuf/compiler:importer", "//src/google/protobuf/io", "//src/google/protobuf/stubs", @@ -129,6 +131,7 @@ cc_test( deps = [ ":cpp", "//:protobuf", + "//src/google/protobuf:test_util2", "//src/google/protobuf/compiler:importer", "//src/google/protobuf/io", "//src/google/protobuf/stubs", diff --git a/src/google/protobuf/io/BUILD.bazel b/src/google/protobuf/io/BUILD.bazel index 7582f78bcd..be7fb4c4bc 100644 --- a/src/google/protobuf/io/BUILD.bazel +++ b/src/google/protobuf/io/BUILD.bazel @@ -114,6 +114,7 @@ cc_test( ":gzip_stream", ":io", "//:protobuf", + "//src/google/protobuf:test_util2", "//src/google/protobuf/testing", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", diff --git a/src/google/protobuf/util/BUILD.bazel b/src/google/protobuf/util/BUILD.bazel index 4fb8319d20..cf7bb1a4f6 100644 --- a/src/google/protobuf/util/BUILD.bazel +++ b/src/google/protobuf/util/BUILD.bazel @@ -27,6 +27,7 @@ cc_test( deps = [ ":delimited_message_util", "//src/google/protobuf:cc_test_protos", + "//src/google/protobuf:test_util", "//src/google/protobuf/testing", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", From 59c6ff83e95cc9518fe8243ef35c62b788956158 Mon Sep 17 00:00:00 2001 From: Protobuf Team Bot Date: Wed, 25 May 2022 13:51:01 -0700 Subject: [PATCH 07/32] Updating version.json and repo version numbers to: 21.0 --- Protobuf-C++.podspec | 2 +- Protobuf.podspec | 2 +- configure.ac | 2 +- csharp/Google.Protobuf.Tools.nuspec | 2 +- .../Google.Protobuf/Google.Protobuf.csproj | 2 +- java/README.md | 6 ++--- java/bom/pom.xml | 2 +- java/core/pom.xml | 2 +- java/kotlin-lite/pom.xml | 2 +- java/kotlin/pom.xml | 2 +- java/lite.md | 2 +- java/lite/pom.xml | 2 +- java/pom.xml | 2 +- java/util/pom.xml | 2 +- php/ext/google/protobuf/package.xml | 25 +++++++++++++++---- php/ext/google/protobuf/protobuf.h | 2 +- protobuf_version.bzl | 6 ++--- protoc-artifacts/pom.xml | 2 +- python/google/protobuf/__init__.py | 2 +- ruby/google-protobuf.gemspec | 2 +- ruby/pom.xml | 4 +-- src/google/protobuf/port_def.inc | 2 +- src/google/protobuf/stubs/common.h | 2 +- version.json | 20 +++++++-------- 24 files changed, 57 insertions(+), 42 deletions(-) diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec index 72a0c70a78..228cdd2bb3 100644 --- a/Protobuf-C++.podspec +++ b/Protobuf-C++.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Protobuf-C++' - s.version = '3.21.0-rc2' + s.version = '3.21.0' s.summary = 'Protocol Buffers v3 runtime library for C++.' s.homepage = 'https://github.com/google/protobuf' s.license = 'BSD-3-Clause' diff --git a/Protobuf.podspec b/Protobuf.podspec index d8cd0ef4b4..7d67d89b97 100644 --- a/Protobuf.podspec +++ b/Protobuf.podspec @@ -5,7 +5,7 @@ # dependent projects use the :git notation to refer to the library. Pod::Spec.new do |s| s.name = 'Protobuf' - s.version = '3.21.0-rc2' + s.version = '3.21.0' s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' s.homepage = 'https://github.com/protocolbuffers/protobuf' s.license = 'BSD-3-Clause' diff --git a/configure.ac b/configure.ac index 61246b27be..97212cfdd3 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ AC_PREREQ(2.59) # In the SVN trunk, the version should always be the next anticipated release # version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed # the size of one file name in the dist tarfile over the 99-char limit.) -AC_INIT([Protocol Buffers],[3.21.0-rc-2],[protobuf@googlegroups.com],[protobuf]) +AC_INIT([Protocol Buffers],[3.21.0],[protobuf@googlegroups.com],[protobuf]) AM_MAINTAINER_MODE([enable]) diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec index 92a860ee81..d5cfc6c4cf 100644 --- a/csharp/Google.Protobuf.Tools.nuspec +++ b/csharp/Google.Protobuf.Tools.nuspec @@ -5,7 +5,7 @@ Google Protocol Buffers tools Tools for Protocol Buffers - Google's data interchange format. See project site for more info. - 3.21.0-rc2 + 3.21.0 Google Inc. protobuf-packages https://github.com/protocolbuffers/protobuf/blob/main/LICENSE diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.csproj b/csharp/src/Google.Protobuf/Google.Protobuf.csproj index d634551328..08d8f2431f 100644 --- a/csharp/src/Google.Protobuf/Google.Protobuf.csproj +++ b/csharp/src/Google.Protobuf/Google.Protobuf.csproj @@ -4,7 +4,7 @@ C# runtime library for Protocol Buffers - Google's data interchange format. Copyright 2015, Google Inc. Google Protocol Buffers - 3.21.0-rc2 + 3.21.0 7.2 Google Inc. diff --git a/java/README.md b/java/README.md index 1fbc624c53..03f414dbec 100644 --- a/java/README.md +++ b/java/README.md @@ -23,7 +23,7 @@ If you are using Maven, use the following: com.google.protobuf protobuf-java - 3.21.0-rc-2 + 3.21.0 ``` @@ -37,7 +37,7 @@ protobuf-java-util package: com.google.protobuf protobuf-java-util - 3.21.0-rc-2 + 3.21.0 ``` @@ -45,7 +45,7 @@ protobuf-java-util package: If you are using Gradle, add the following to your `build.gradle` file's dependencies: ``` - implementation 'com.google.protobuf:protobuf-java:3.21.0-rc-2' + implementation 'com.google.protobuf:protobuf-java:3.21.0' ``` Again, be sure to check that the version number matches (or is newer than) the version number of protoc that you are using. diff --git a/java/bom/pom.xml b/java/bom/pom.xml index a770cbb9fe..12ec2e8c49 100644 --- a/java/bom/pom.xml +++ b/java/bom/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-bom - 3.21.0-rc-2 + 3.21.0 pom Protocol Buffers [BOM] diff --git a/java/core/pom.xml b/java/core/pom.xml index bffa2958b4..e363ccd3f0 100644 --- a/java/core/pom.xml +++ b/java/core/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0-rc-2 + 3.21.0 protobuf-java diff --git a/java/kotlin-lite/pom.xml b/java/kotlin-lite/pom.xml index fd3734d36a..218aa663fb 100644 --- a/java/kotlin-lite/pom.xml +++ b/java/kotlin-lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0-rc-2 + 3.21.0 protobuf-kotlin-lite diff --git a/java/kotlin/pom.xml b/java/kotlin/pom.xml index c9eeb6d79b..de68cdb87b 100644 --- a/java/kotlin/pom.xml +++ b/java/kotlin/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0-rc-2 + 3.21.0 protobuf-kotlin diff --git a/java/lite.md b/java/lite.md index 633478b4a1..eb0378df01 100644 --- a/java/lite.md +++ b/java/lite.md @@ -29,7 +29,7 @@ protobuf Java Lite runtime. If you are using Maven, include the following: com.google.protobuf protobuf-javalite - 3.21.0-rc-2 + 3.21.0 ``` diff --git a/java/lite/pom.xml b/java/lite/pom.xml index c10edfd444..18b27b725c 100644 --- a/java/lite/pom.xml +++ b/java/lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0-rc-2 + 3.21.0 protobuf-javalite diff --git a/java/pom.xml b/java/pom.xml index 467c06d0b1..e32d53dab1 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0-rc-2 + 3.21.0 pom Protocol Buffers [Parent] diff --git a/java/util/pom.xml b/java/util/pom.xml index a12fd2226f..f9471c4f69 100644 --- a/java/util/pom.xml +++ b/java/util/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0-rc-2 + 3.21.0 protobuf-java-util diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml index deda5c5b47..42fc32d0bc 100644 --- a/php/ext/google/protobuf/package.xml +++ b/php/ext/google/protobuf/package.xml @@ -10,15 +10,15 @@ protobuf-opensource@google.com yes - 2022-05-19 - + 2022-05-25 + - 3.21.0RC2 + 3.21.0 3.21.0 - beta - beta + stable + stable BSD-3-Clause @@ -1313,5 +1313,20 @@ G A release. + + + 3.21.0 + 3.21.0 + + + stable + stable + + 2022-05-25 + + BSD-3-Clause + + + diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index f95179b053..6798430271 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -127,7 +127,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_setter, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() -#define PHP_PROTOBUF_VERSION "3.21.0RC2" +#define PHP_PROTOBUF_VERSION "3.21.0" // ptr -> PHP object cache. This is a weak map that caches lazily-created // wrapper objects around upb types: diff --git a/protobuf_version.bzl b/protobuf_version.bzl index 5725bdd6c3..fa4c91af68 100644 --- a/protobuf_version.bzl +++ b/protobuf_version.bzl @@ -1,3 +1,3 @@ -PROTOC_VERSION = '21.0-rc-2' -PROTOBUF_JAVA_VERSION = '3.21.0-rc-2' -PROTOBUF_PYTHON_VERSION = '4.21.0-rc-2' +PROTOC_VERSION = '21.0' +PROTOBUF_JAVA_VERSION = '3.21.0' +PROTOBUF_PYTHON_VERSION = '4.21.0' diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml index 80451f9716..1c1b851e8e 100644 --- a/protoc-artifacts/pom.xml +++ b/protoc-artifacts/pom.xml @@ -8,7 +8,7 @@ com.google.protobuf protoc - 3.21.0-rc-2 + 3.21.0 pom Protobuf Compiler diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py index bd2faa4e5a..94ad865b09 100644 --- a/python/google/protobuf/__init__.py +++ b/python/google/protobuf/__init__.py @@ -30,4 +30,4 @@ # Copyright 2007 Google Inc. All Rights Reserved. -__version__ = '4.21.0rc2' +__version__ = '4.21.0' diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index f86cda7656..2e25d13f8a 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = "google-protobuf" - s.version = "3.21.0.rc.2" + s.version = "3.21.0" git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag s.licenses = ["BSD-3-Clause"] s.summary = "Protocol Buffers" diff --git a/ruby/pom.xml b/ruby/pom.xml index 0514dbe6e6..8adf9b0d60 100644 --- a/ruby/pom.xml +++ b/ruby/pom.xml @@ -9,7 +9,7 @@ com.google.protobuf.jruby protobuf-jruby - 3.21.0-rc-2 + 3.21.0 Protocol Buffer JRuby native extension Protocol Buffers are a way of encoding structured data in an efficient yet @@ -76,7 +76,7 @@ com.google.protobuf protobuf-java-util - 3.21.0-rc-2 + 3.21.0 org.jruby diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc index 78b97e6cca..4af6aa3c87 100644 --- a/src/google/protobuf/port_def.inc +++ b/src/google/protobuf/port_def.inc @@ -193,7 +193,7 @@ #ifdef PROTOBUF_VERSION_SUFFIX #error PROTOBUF_VERSION_SUFFIX was previously defined #endif -#define PROTOBUF_VERSION_SUFFIX "-rc2" +#define PROTOBUF_VERSION_SUFFIX "" #if defined(PROTOBUF_NAMESPACE) || defined(PROTOBUF_NAMESPACE_ID) #error PROTOBUF_NAMESPACE or PROTOBUF_NAMESPACE_ID was previously defined diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index 36a4b08e41..10e9c61197 100644 --- a/src/google/protobuf/stubs/common.h +++ b/src/google/protobuf/stubs/common.h @@ -85,7 +85,7 @@ namespace internal { #define GOOGLE_PROTOBUF_VERSION 3021000 // A suffix string for alpha, beta or rc releases. Empty for stable releases. -#define GOOGLE_PROTOBUF_VERSION_SUFFIX "-rc2" +#define GOOGLE_PROTOBUF_VERSION_SUFFIX "" // The minimum header version which works with the current version of // the library. This constant should only be used by protoc's C++ code diff --git a/version.json b/version.json index 7c47bbc5b1..7956799ee7 100644 --- a/version.json +++ b/version.json @@ -1,17 +1,17 @@ { "21.x": { - "protoc_version": "21.0-dev", + "protoc_version": "21.0", "lts": false, - "date": "2022-05-20", + "date": "2022-05-25", "languages": { - "cpp": "3.21.0-dev", - "csharp": "3.21.0-dev", - "java": "3.21.0-dev", - "javascript": "3.21.0-dev", - "objectivec": "3.21.0-dev", - "php": "3.21.0-dev", - "python": "4.21.0-dev", - "ruby": "3.21.0-dev" + "cpp": "3.21.0", + "csharp": "3.21.0", + "java": "3.21.0", + "javascript": "3.21.0", + "objectivec": "3.21.0", + "php": "3.21.0", + "python": "4.21.0", + "ruby": "3.21.0" } } } \ No newline at end of file From 7062d0a2d0075d5e7d5c294fd3984df67a976da3 Mon Sep 17 00:00:00 2001 From: Deanna Garcia Date: Wed, 25 May 2022 21:15:04 +0000 Subject: [PATCH 08/32] Updated changelog --- CHANGES.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 889fa0c65a..88be607f8d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,53 @@ +2022-05-25 version 21.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby) + + C++ + * cmake: Call get_filename_component() with DIRECTORY mode instead of PATH mode (#9614) + * Escape GetObject macro inside protoc-generated code (#9739) + * Update CMake configuration to add a dependency on Abseil (#9793) + * Fix cmake install targets (#9822) + * Use __constinit only in GCC 12.2 and up (#9936) + + Java + * Update protobuf_version.bzl to separate protoc and per-language java … (#9900) + + Python + * Increment python major version to 4 in version.json for python upb (#9926) + * The C extension module for Python has been rewritten to use the upb library. + This is expected to deliver significant performance benefits, especially when + parsing large payloads. There are some minor breaking changes, but these + should not impact most users. For more information see: + https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates + * Fixed win32 build and fixed str(message) on all Windows platforms. (#9976) + * The binary wheel for macOS now supports Apple silicon. + + PHP + * [PHP] fix PHP build system (#9571) + * Fix building packaged PHP extension (#9727) + * fix: reserve "ReadOnly" keyword for PHP 8.1 and add compatibility (#9633) + * fix: phpdoc syntax for repeatedfield parameters (#9784) + * fix: phpdoc for repeatedfield (#9783) + * Change enum string name for reserved words (#9780) + * chore: [PHP] fix phpdoc for MapField keys (#9536) + * Fixed PHP SEGV by not writing to shared memory for zend_class_entry. (#9996) + + Ruby + * Allow pre-compiled binaries for ruby 3.1.0 (#9566) + * Implement `respond_to?` in RubyMessage (#9677) + * [Ruby] Fix RepeatedField#last, #first inconsistencies (#9722) + * Do not use range based UTF-8 validation in truffleruby (#9769) + * Improve range handling logic of `RepeatedField` (#9799) + * Support x64-mingw-ucrt platform + + Other + * [Kotlin] remove redundant public modifiers for compiled code (#9642) + * [C#] Update GetExtension to support getting typed value (#9655) + * Fix invalid dependency manifest when using `descriptor_set_out` (#9647) + * Fix C# generator handling of a field named "none" in a oneof (#9636) + * Add initial version.json file for 21-dev (#9840) + * Remove duplicate java generated code (#9909) + * Cherry-pick PR #9981 into 21.x branch (#10000) + + 2022-05-19 version 21.0-rc2(C++/Java/Python/PHP/Objective-C/C#/Ruby) Python From 0e42bf9f5879f7133609b709d6d42f442f0a894f Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Wed, 25 May 2022 14:28:03 -0700 Subject: [PATCH 09/32] [Bazel/C++] Split apart protobuf_test rule (#10039) This splits the `protobuf_test` target into several other test targets, and adds `lite_unittest` and `lite_arena_unittest`, which were missing previously. [Side note:] I did a pass over the new tests to thin their dependencies, and also split out `lite_test_util` from the existing `test_util` target. I have left the `protobuf_test` target in place (but empty) for now... it is almost certainly safe to remove, but that can be done in a follow-up to reduce risk from this commit. --- src/google/protobuf/BUILD.bazel | 530 +++++++++++++++++++++++++++++--- 1 file changed, 494 insertions(+), 36 deletions(-) diff --git a/src/google/protobuf/BUILD.bazel b/src/google/protobuf/BUILD.bazel index 7fdd80a790..da98ae2fbb 100644 --- a/src/google/protobuf/BUILD.bazel +++ b/src/google/protobuf/BUILD.bazel @@ -495,24 +495,41 @@ filegroup( ) cc_library( - name = "test_util", + name = "lite_test_util", testonly = 1, srcs = [ "arena_test_util.cc", "map_lite_test_util.cc", - "reflection_tester.cc", - "test_util.cc", "test_util_lite.cc", ], hdrs = [ "arena_test_util.h", "map_lite_test_util.h", + "map_test_util_impl.h", + "proto3_lite_unittest.inc", + "test_util_lite.h", + ], + strip_include_prefix = "/src", + visibility = ["//:__subpackages__"], + deps = [ + ":cc_lite_test_protos", + ":test_util2", + "@com_google_googletest//:gtest", + ], +) + +cc_library( + name = "test_util", + testonly = 1, + srcs = [ + "reflection_tester.cc", + "test_util.cc", + ], + hdrs = [ "map_test.inc", "map_test_util.h", "map_test_util.inc", - "map_test_util_impl.h", "message_unittest.inc", - "proto3_lite_unittest.inc", "reflection_tester.h", "test_util.h", "test_util.inc", @@ -530,6 +547,8 @@ cc_library( deps = [ ":cc_lite_test_protos", ":cc_test_protos", + ":lite_test_util", + "//src/google/protobuf/testing", "@com_google_googletest//:gtest", ], ) @@ -548,61 +567,500 @@ cc_library( ) cc_test( - name = "protobuf_test", + name = "any_test", + srcs = ["any_test.cc"], + deps = [ + ":protobuf", + ":test_util", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "arena_unittest", + srcs = ["arena_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":cc_test_protos", + ":lite_test_util", + ":protobuf", + ":test_util", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "arenastring_unittest", + srcs = ["arenastring_unittest.cc"], + deps = [ + ":protobuf", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "arenaz_sampler_test", + srcs = ["arenaz_sampler_test.cc"], + deps = [ + ":protobuf", + "//src/google/protobuf/stubs", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "descriptor_database_unittest", + srcs = ["descriptor_database_unittest.cc"], + deps = [ + ":protobuf", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "descriptor_unittest", + srcs = ["descriptor_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + "//src/google/protobuf/compiler:importer", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "drop_unknown_fields_test", + srcs = ["drop_unknown_fields_test.cc"], + deps = [ + ":cc_test_protos", + ":protobuf", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "dynamic_message_unittest", + srcs = ["dynamic_message_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "extension_set_unittest", + srcs = ["extension_set_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "generated_message_reflection_unittest", + srcs = ["generated_message_reflection_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "generated_message_tctable_lite_test", + srcs = ["generated_message_tctable_lite_test.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":protobuf_lite", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "inlined_string_field_unittest", + srcs = ["inlined_string_field_unittest.cc"], + deps = [ + ":cc_test_protos", + ":protobuf", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "lite_arena_unittest", + srcs = ["lite_arena_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":protobuf", + ":lite_test_util", + ":test_util", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "lite_unittest", + srcs = ["lite_unittest.cc"], + deps = [ + ":cc_lite_test_protos", + ":protobuf", + ":lite_test_util", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "map_field_test", + srcs = ["map_field_test.cc"], + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/stubs", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "map_test", srcs = [ - "any_test.cc", - "arena_unittest.cc", - "arenastring_unittest.cc", - "arenaz_sampler_test.cc", - "descriptor_database_unittest.cc", - "descriptor_unittest.cc", - "drop_unknown_fields_test.cc", - "dynamic_message_unittest.cc", - "extension_set_unittest.cc", - "generated_message_reflection_unittest.cc", - "generated_message_tctable_lite_test.cc", - "inlined_string_field_unittest.cc", - "map_field_test.cc", "map_test.cc", + "map_test.inc", + ], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-deprecated-declarations", + ], + }), + data = [":testdata"], + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "message_unittest", + srcs = [ "message_unittest.cc", - "no_field_presence_test.cc", - "preserve_unknown_enum_test.cc", - "proto3_arena_lite_unittest.cc", - "proto3_arena_unittest.cc", + "message_unittest.inc", + ], + data = [":testdata"], + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "no_field_presence_test", + srcs = ["no_field_presence_test.cc"], + deps = [ + ":cc_test_protos", + ":protobuf", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "preserve_unknown_enum_test", + srcs = ["preserve_unknown_enum_test.cc"], + deps = [ + ":cc_test_protos", + ":protobuf", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "proto3_arena_lite_unittest", + srcs = ["proto3_arena_lite_unittest.cc"], + deps = [ + ":cc_test_protos", + ":protobuf", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "proto3_arena_unittest", + srcs = ["proto3_arena_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "proto3_lite_unittest", + srcs = [ "proto3_lite_unittest.cc", - "reflection_ops_unittest.cc", - "repeated_field_reflection_unittest.cc", - "repeated_field_unittest.cc", - "text_format_unittest.cc", - "unknown_field_set_unittest.cc", - "well_known_types_unittest.cc", - "wire_format_unittest.cc", + "proto3_lite_unittest.inc", ], copts = COPTS + select({ "//build_defs:config_msvc": [], "//conditions:default": [ "-Wno-deprecated-declarations", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + ":lite_test_util", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "reflection_ops_unittest", + srcs = ["reflection_ops_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-error=sign-compare", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "repeated_field_reflection_unittest", + srcs = ["repeated_field_reflection_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-deprecated-declarations", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/stubs", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "repeated_field_unittest", + srcs = ["repeated_field_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-deprecated-declarations", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "text_format_unittest", + srcs = ["text_format_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-deprecated-declarations", + ], + }), + data = [":testdata"], + deps = [ + ":cc_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "unknown_field_set_unittest", + srcs = ["unknown_field_set_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ "-Wno-error=sign-compare", ], }), - data = [ - ":testdata", - ] + glob([ - "**/*", - ]), - linkopts = LINK_OPTS, deps = [ ":cc_lite_test_protos", + ":protobuf", + ":test_util", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "well_known_types_unittest", + srcs = ["well_known_types_unittest.cc"], + copts = COPTS + select({ + "//build_defs:config_msvc": [], + "//conditions:default": [ + "-Wno-deprecated-declarations", + ], + }), + deps = [ + ":cc_test_protos", + ":protobuf", + "//src/google/protobuf/stubs", + "//src/google/protobuf/testing", + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], +) + +cc_test( + name = "wire_format_unittest", + srcs = [ + "wire_format_unittest.cc", + "wire_format_unittest.inc", + ], + deps = [ ":cc_test_protos", ":protobuf", ":test_util", ":test_util2", + "//src/google/protobuf/io", + "//src/google/protobuf/stubs", "//src/google/protobuf/testing", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", ], ) +# Legacy target: all test sources used to be part of this rule. It is +# still kept around for now. +cc_test( + name = "protobuf_test", + srcs = [], + deps = [ + "@com_google_googletest//:gtest_main", + ], +) + ################################################################################ # Helper targets for Kotlin tests ################################################################################ From 698d760f8d9579c610f8968aac352291ee3bf91f Mon Sep 17 00:00:00 2001 From: Deanna Garcia Date: Thu, 26 May 2022 01:00:20 +0000 Subject: [PATCH 10/32] Update version.json to: 21.1-dev --- version.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/version.json b/version.json index 7956799ee7..147c219ffa 100644 --- a/version.json +++ b/version.json @@ -1,17 +1,17 @@ { "21.x": { - "protoc_version": "21.0", + "protoc_version": "21.1-dev", "lts": false, - "date": "2022-05-25", + "date": "2022-05-26", "languages": { - "cpp": "3.21.0", - "csharp": "3.21.0", - "java": "3.21.0", - "javascript": "3.21.0", - "objectivec": "3.21.0", - "php": "3.21.0", - "python": "4.21.0", - "ruby": "3.21.0" + "cpp": "3.21.1-dev", + "csharp": "3.21.1-dev", + "java": "3.21.1-dev", + "javascript": "3.21.1-dev", + "objectivec": "3.21.1-dev", + "php": "3.21.1-dev", + "python": "4.21.1-dev", + "ruby": "3.21.1-dev" } } } \ No newline at end of file From f2e06fe042c1231af6c8e31abda97c78a9dcd530 Mon Sep 17 00:00:00 2001 From: mkruskal-google <62662355+mkruskal-google@users.noreply.github.com> Date: Thu, 26 May 2022 09:54:30 -0700 Subject: [PATCH 11/32] Migrate linux-aarch64 tests away from autotools (#10015) Autotools support is being deprecated, so this moves some of our kokoro tests to cmake --- ..._crosscompile_and_run_tests_with_qemu_aarch64.sh | 5 +---- .../run_dockcross_manylinux2014_aarch64.sh | 6 +++++- kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh | 3 +-- kokoro/linux/aarch64/python_crosscompile_aarch64.sh | 13 ++++++++++--- .../aarch64/python_run_tests_with_qemu_aarch64.sh | 2 +- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/kokoro/linux/aarch64/cpp_crosscompile_and_run_tests_with_qemu_aarch64.sh b/kokoro/linux/aarch64/cpp_crosscompile_and_run_tests_with_qemu_aarch64.sh index 425cc90b75..f7c45f9500 100755 --- a/kokoro/linux/aarch64/cpp_crosscompile_and_run_tests_with_qemu_aarch64.sh +++ b/kokoro/linux/aarch64/cpp_crosscompile_and_run_tests_with_qemu_aarch64.sh @@ -5,12 +5,9 @@ set -ex -mkdir -p cmake/crossbuild_aarch64 -cd cmake/crossbuild_aarch64 - # the build commands are expected to run under dockcross docker image # where the CC, CXX and other toolchain variables already point to the crosscompiler -cmake .. +cmake . make -j8 # check that the resulting test binary is indeed an aarch64 ELF diff --git a/kokoro/linux/aarch64/dockcross_helpers/run_dockcross_manylinux2014_aarch64.sh b/kokoro/linux/aarch64/dockcross_helpers/run_dockcross_manylinux2014_aarch64.sh index ba34fa7a31..efaf40fb2f 100755 --- a/kokoro/linux/aarch64/dockcross_helpers/run_dockcross_manylinux2014_aarch64.sh +++ b/kokoro/linux/aarch64/dockcross_helpers/run_dockcross_manylinux2014_aarch64.sh @@ -13,7 +13,11 @@ else fi # Pin the dockcross image since newer versions of the image break the build -PINNED_DOCKCROSS_IMAGE_VERSION=dockcross/manylinux2014-aarch64:20210803-41e5c69 +# We use an older version of dockcross image that has gcc4.9.4 because it was built +# before https://github.com/dockcross/dockcross/pull/449 +# Thanks to that, wheel build with this image aren't actually +# compliant with manylinux2014, but only with manylinux_2_24 +PINNED_DOCKCROSS_IMAGE_VERSION=dockcross/manylinux2014-aarch64:20200929-608e6ac # running dockcross image without any arguments generates a wrapper # scripts that can be used to run commands under the dockcross image diff --git a/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh b/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh index 77942a4931..2880507539 100755 --- a/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh +++ b/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh @@ -4,6 +4,5 @@ set -ex -./autogen.sh -CXXFLAGS="-fPIC -g -O2" ./configure --host=aarch64 +cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_WITH_ZLIB=0 . make -j8 diff --git a/kokoro/linux/aarch64/python_crosscompile_aarch64.sh b/kokoro/linux/aarch64/python_crosscompile_aarch64.sh index db2e7763af..03cf44f9c6 100755 --- a/kokoro/linux/aarch64/python_crosscompile_aarch64.sh +++ b/kokoro/linux/aarch64/python_crosscompile_aarch64.sh @@ -8,13 +8,20 @@ set -ex PYTHON="/opt/python/cp38-cp38/bin/python" -./autogen.sh -CXXFLAGS="-fPIC -g -O2" ./configure --host=aarch64 +# Initialize any submodules. +git submodule update --init --recursive + +# Build protoc and libprotobuf +cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_WITH_ZLIB=0 . make -j8 +# Copy lib files to the expected location. +mkdir -p src/.libs +ln -f *.a src/.libs/ + # create a simple shell wrapper that runs crosscompiled protoc under qemu echo '#!/bin/bash' >protoc_qemu_wrapper.sh -echo 'exec qemu-aarch64 "../src/protoc" "$@"' >>protoc_qemu_wrapper.sh +echo 'exec qemu-aarch64 "../protoc" "$@"' >>protoc_qemu_wrapper.sh chmod ugo+x protoc_qemu_wrapper.sh # PROTOC variable is by build_py step that runs under ./python directory diff --git a/kokoro/linux/aarch64/python_run_tests_with_qemu_aarch64.sh b/kokoro/linux/aarch64/python_run_tests_with_qemu_aarch64.sh index 5026d0448f..0a62cff532 100755 --- a/kokoro/linux/aarch64/python_run_tests_with_qemu_aarch64.sh +++ b/kokoro/linux/aarch64/python_run_tests_with_qemu_aarch64.sh @@ -16,7 +16,7 @@ ${PYTHON} -m pip install --user pytest auditwheel # we've built the python extension previously with --inplace option # so we can just discover all the unittests and run them directly under # the python/ directory. -LD_LIBRARY_PATH=../src/.libs PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp ${PYTHON} -m pytest google/protobuf +LD_LIBRARY_PATH=. PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp ${PYTHON} -m pytest google/protobuf # step 2: run auditwheel show to check that the wheel is manylinux2014 compatible. # auditwheel needs to run on wheel's target platform (or under an emulator) From 30f446820dd6185b9be4c6b256943bb2ca1268f1 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Thu, 26 May 2022 12:09:49 -0700 Subject: [PATCH 12/32] Add endian.h to includes list (#10057) Client code is breaking due to missing include. (endian.h was added in 9e09343 but didn't make it into this list, so it wasn't getting installed) Co-authored-by: boscosiu --- cmake/extract_includes.bat.in | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/extract_includes.bat.in b/cmake/extract_includes.bat.in index 061b240aeb..1292829219 100644 --- a/cmake/extract_includes.bat.in +++ b/cmake/extract_includes.bat.in @@ -51,6 +51,7 @@ copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\descriptor_database.h copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\duration.pb.h" include\google\protobuf\duration.pb.h copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\dynamic_message.h" include\google\protobuf\dynamic_message.h copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\empty.pb.h" include\google\protobuf\empty.pb.h +copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\endian.h" include\google\protobuf\endian.h copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\explicitly_constructed.h" include\google\protobuf\explicitly_constructed.h copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\extension_set.h" include\google\protobuf\extension_set.h copy "${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\extension_set_inl.h" include\google\protobuf\extension_set_inl.h From f7e2e0b301f52df1f2fdab32dd9bf5567d970d92 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Thu, 26 May 2022 12:13:41 -0700 Subject: [PATCH 13/32] Remove Abseil dependency from CMake build (#10056) * Revert "Added cmake abseil include guard" This reverts commit b6ee841d7cf1792ff6d21a349c4f838255c4fd7f. * Revert "Update CMake configuration to add a dependency on Abseil (#9793)" This reverts commit e9246cd789d250727cbc03884795d92ed1f09a88. --- .bazelignore | 1 - .gitmodules | 4 --- CMakeLists.txt | 13 -------- Makefile.am | 1 - cmake/abseil-cpp.cmake | 31 ------------------- cmake/libprotobuf-lite.cmake | 3 -- cmake/libprotobuf.cmake | 3 -- cmake/libprotoc.cmake | 3 -- cmake/protobuf-config.cmake.in | 1 - cmake/protoc.cmake | 1 - cmake/tests.cmake | 17 ++-------- .../release/python/linux/build_artifacts.sh | 2 +- .../release/python/macos/build_artifacts.sh | 2 +- .../python/windows/build_artifacts.bat | 7 +---- .../python/windows/build_single_artifact.bat | 2 +- third_party/abseil-cpp | 1 - 16 files changed, 6 insertions(+), 86 deletions(-) delete mode 100644 cmake/abseil-cpp.cmake delete mode 160000 third_party/abseil-cpp diff --git a/.bazelignore b/.bazelignore index b92bad0bf4..5c3a81cce9 100644 --- a/.bazelignore +++ b/.bazelignore @@ -1,5 +1,4 @@ # These are fetched as external repositories. -third_party/abseil-cpp third_party/benchmark third_party/googletest _build/ diff --git a/.gitmodules b/.gitmodules index a287f070e8..bcd125a495 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,3 @@ path = third_party/googletest url = https://github.com/google/googletest.git ignore = dirty -[submodule "third_party/abseil-cpp"] - path = third_party/abseil-cpp - url = https://github.com/abseil/abseil-cpp.git - branch = lts_2021_11_02 diff --git a/CMakeLists.txt b/CMakeLists.txt index dd8977843a..04cb3303ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -162,15 +162,6 @@ file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/cmaketest.map) find_package(Threads REQUIRED) -# We can install dependencies from submodules if we're running -# CMake v3.13 or newer. -if(CMAKE_VERSION VERSION_LESS 3.13) - set(_protobuf_INSTALL_SUPPORTED_FROM_MODULE OFF) -else() - set(_protobuf_INSTALL_SUPPORTED_FROM_MODULE ON) -endif() - - set(_protobuf_FIND_ZLIB) if (protobuf_WITH_ZLIB) find_package(ZLIB) @@ -313,10 +304,6 @@ if (protobuf_UNICODE) add_definitions(-DUNICODE -D_UNICODE) endif (protobuf_UNICODE) -set(protobuf_ABSL_PROVIDER "module" CACHE STRING "Provider of absl library") -set_property(CACHE protobuf_ABSL_PROVIDER PROPERTY STRINGS "module" "package") - -include(${protobuf_SOURCE_DIR}/cmake/abseil-cpp.cmake) include(${protobuf_SOURCE_DIR}/cmake/libprotobuf-lite.cmake) include(${protobuf_SOURCE_DIR}/cmake/libprotobuf.cmake) if (protobuf_BUILD_LIBPROTOC) diff --git a/Makefile.am b/Makefile.am index 22c85a4059..cb52f37911 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1212,7 +1212,6 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \ build_files_updated_unittest.sh \ cmake/CMakeLists.txt \ cmake/README.md \ - cmake/abseil-cpp.cmake \ cmake/conformance.cmake \ cmake/examples.cmake \ cmake/extract_includes.bat.in \ diff --git a/cmake/abseil-cpp.cmake b/cmake/abseil-cpp.cmake deleted file mode 100644 index 8aff9d6a23..0000000000 --- a/cmake/abseil-cpp.cmake +++ /dev/null @@ -1,31 +0,0 @@ -if(TARGET absl::strings) - # If absl is included already, skip including it. - # (https://github.com/grpc/grpc/issues/29608) -elseif(protobuf_ABSL_PROVIDER STREQUAL "module") - if(NOT ABSL_ROOT_DIR) - set(ABSL_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/abseil-cpp) - endif() - if(EXISTS "${ABSL_ROOT_DIR}/CMakeLists.txt") - if(protobuf_INSTALL) - # When protobuf_INSTALL is enabled and Abseil will be built as a module, - # Abseil will be installed along with protobuf for convenience. - set(ABSL_ENABLE_INSTALL ON) - endif() - add_subdirectory(${ABSL_ROOT_DIR} third_party/abseil-cpp) - else() - message(WARNING "protobuf_ABSL_PROVIDER is \"module\" but ABSL_ROOT_DIR is wrong") - endif() - if(protobuf_INSTALL AND NOT _protobuf_INSTALL_SUPPORTED_FROM_MODULE) - message(WARNING "protobuf_INSTALL will be forced to FALSE because protobuf_ABSL_PROVIDER is \"module\" and CMake version (${CMAKE_VERSION}) is less than 3.13.") - set(protobuf_INSTALL FALSE) - endif() -elseif(protobuf_ABSL_PROVIDER STREQUAL "package") - # Use "CONFIG" as there is no built-in cmake module for absl. - find_package(absl REQUIRED CONFIG) -endif() -set(_protobuf_FIND_ABSL "if(NOT TARGET absl::strings)\n find_package(absl CONFIG)\nendif()") - -set(protobuf_ABSL_USED_TARGETS - absl::strings - absl::strings_internal -) diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake index 1e4444e20c..83e970312c 100644 --- a/cmake/libprotobuf-lite.cmake +++ b/cmake/libprotobuf-lite.cmake @@ -98,9 +98,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf-lite.map) endif() target_link_libraries(libprotobuf-lite PRIVATE ${CMAKE_THREAD_LIBS_INIT}) -target_include_directories(libprotobuf-lite - PRIVATE ${ABSL_ROOT_DIR} -) if(protobuf_LINK_LIBATOMIC) target_link_libraries(libprotobuf-lite PRIVATE atomic) endif() diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake index e597959d20..07e4bcf57f 100644 --- a/cmake/libprotobuf.cmake +++ b/cmake/libprotobuf.cmake @@ -111,9 +111,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotobuf.map) endif() target_link_libraries(libprotobuf PRIVATE ${CMAKE_THREAD_LIBS_INIT}) -target_include_directories(libprotobuf - PRIVATE ${ABSL_ROOT_DIR} -) if(protobuf_WITH_ZLIB) target_link_libraries(libprotobuf PRIVATE ${ZLIB_LIBRARIES}) endif() diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake index 7506b0220f..15a47e53fa 100644 --- a/cmake/libprotoc.cmake +++ b/cmake/libprotoc.cmake @@ -122,9 +122,6 @@ if(protobuf_HAVE_LD_VERSION_SCRIPT) LINK_DEPENDS ${protobuf_SOURCE_DIR}/src/libprotoc.map) endif() target_link_libraries(libprotoc PRIVATE libprotobuf) -target_include_directories(libprotoc - PRIVATE ${ABSL_ROOT_DIR} -) if(protobuf_BUILD_SHARED_LIBS) target_compile_definitions(libprotoc PUBLIC PROTOBUF_USE_DLLS diff --git a/cmake/protobuf-config.cmake.in b/cmake/protobuf-config.cmake.in index 597f588603..61669118cd 100644 --- a/cmake/protobuf-config.cmake.in +++ b/cmake/protobuf-config.cmake.in @@ -3,7 +3,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake") # Depend packages @_protobuf_FIND_ZLIB@ -@_protobuf_FIND_ABSL@ # Imported targets include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake") diff --git a/cmake/protoc.cmake b/cmake/protoc.cmake index 385a7a3f39..472b6421b5 100644 --- a/cmake/protoc.cmake +++ b/cmake/protoc.cmake @@ -6,7 +6,6 @@ add_executable(protoc ${protoc_files} ${protobuf_version_rc_file}) target_link_libraries(protoc libprotoc libprotobuf - ${protobuf_ABSL_USED_TARGETS} ) add_executable(protobuf::protoc ALIAS protoc) diff --git a/cmake/tests.cmake b/cmake/tests.cmake index 1f8bbc9d43..1905673bd4 100644 --- a/cmake/tests.cmake +++ b/cmake/tests.cmake @@ -21,7 +21,6 @@ else() set(googlemock_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googlemock") set(googletest_source_dir "${protobuf_SOURCE_DIR}/third_party/googletest/googletest") include_directories( - ${ABSL_ROOT_DIR} ${googlemock_source_dir} ${googletest_source_dir} ${googletest_source_dir}/include @@ -255,14 +254,7 @@ if (MSVC) /wd4146 # unary minus operator applied to unsigned type, result still unsigned ) endif() -target_link_libraries(tests - protobuf-lite-test-common - protobuf-test-common - libprotoc - libprotobuf - GTest::gmock_main - ${protobuf_ABSL_USED_TARGETS} -) +target_link_libraries(tests protobuf-lite-test-common protobuf-test-common libprotoc libprotobuf GTest::gmock_main) set(test_plugin_files ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc @@ -272,12 +264,7 @@ set(test_plugin_files ) add_executable(test_plugin ${test_plugin_files}) -target_link_libraries(test_plugin - libprotoc - libprotobuf - GTest::gmock - ${protobuf_ABSL_USED_TARGETS} -) +target_link_libraries(test_plugin libprotoc libprotobuf GTest::gmock) set(lite_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_unittest.cc diff --git a/kokoro/release/python/linux/build_artifacts.sh b/kokoro/release/python/linux/build_artifacts.sh index 3ddec7444f..9a3fc5841f 100755 --- a/kokoro/release/python/linux/build_artifacts.sh +++ b/kokoro/release/python/linux/build_artifacts.sh @@ -30,7 +30,7 @@ git clone https://github.com/matthew-brett/multibuild.git # silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). # IMPORTANT: always pin multibuild at the same commit for: # - linux/build_artifacts.sh -# - macos/build_artifacts.sh +# - linux/build_artifacts.sh # - windows/build_artifacts.bat (cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313) cp kokoro/release/python/linux/config.sh config.sh diff --git a/kokoro/release/python/macos/build_artifacts.sh b/kokoro/release/python/macos/build_artifacts.sh index bd60d75fa3..aeb4242a6b 100755 --- a/kokoro/release/python/macos/build_artifacts.sh +++ b/kokoro/release/python/macos/build_artifacts.sh @@ -30,7 +30,7 @@ git clone https://github.com/matthew-brett/multibuild.git # silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). # IMPORTANT: always pin multibuild at the same commit for: # - linux/build_artifacts.sh -# - macos/build_artifacts.sh +# - linux/build_artifacts.sh # - windows/build_artifacts.bat (cd multibuild; git checkout b89bb903e94308be79abefa4f436bf123ebb1313) cp kokoro/release/python/macos/config.sh config.sh diff --git a/kokoro/release/python/windows/build_artifacts.bat b/kokoro/release/python/windows/build_artifacts.bat index 32fbec4e1c..121283a438 100644 --- a/kokoro/release/python/windows/build_artifacts.bat +++ b/kokoro/release/python/windows/build_artifacts.bat @@ -18,7 +18,7 @@ REM Pin multibuild scripts at a known commit to avoid potentially unwanted futur REM silently creeping in (see https://github.com/protocolbuffers/protobuf/issues/9180). REM IMPORTANT: always pin multibuild at the same commit for: REM - linux/build_artifacts.sh -REM - macos/build_artifacts.sh +REM - linux/build_artifacts.sh REM - windows/build_artifacts.bat cd multibuild git checkout b89bb903e94308be79abefa4f436bf123ebb1313 @@ -34,11 +34,6 @@ SET ZLIB_ROOT=%cd%\zlib del /Q zlib.zip del /Q zlib-src.zip -REM Update Submodules -REM This is needed because this build uses CMake <3.13. -git submodule update --init --recursive -SET ABSL_ROOT_DIR=%cd%\third_party\abseil-cpp - REM Create directory for artifacts SET ARTIFACT_DIR=%cd%\artifacts mkdir %ARTIFACT_DIR% diff --git a/kokoro/release/python/windows/build_single_artifact.bat b/kokoro/release/python/windows/build_single_artifact.bat index d2c96c3463..af2d265263 100644 --- a/kokoro/release/python/windows/build_single_artifact.bat +++ b/kokoro/release/python/windows/build_single_artifact.bat @@ -49,7 +49,7 @@ mkdir src\.libs mkdir vcprojects pushd vcprojects -cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF -DABSL_ROOT_DIR=%ABSL_ROOT_DIR% ../cmake || goto :error +cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% -Dprotobuf_BUILD_TESTS=OFF ../cmake || goto :error msbuild protobuf.sln /p:Platform=%vcplatform% /p:Configuration=Release || goto :error dir /s /b popd diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp deleted file mode 160000 index 8c6e53ef3a..0000000000 --- a/third_party/abseil-cpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8c6e53ef3adb1227fffa442c50349dab134a54bc From 16a86804c08b1101406f655e6b09b6c56effd034 Mon Sep 17 00:00:00 2001 From: zhangskz <89936743+zhangskz@users.noreply.github.com> Date: Thu, 26 May 2022 15:36:41 -0400 Subject: [PATCH 14/32] Update upb commit/sha256 to include updated python wheel (#10058) --- protobuf_deps.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/protobuf_deps.bzl b/protobuf_deps.bzl index 362ae65772..18a3376ec1 100644 --- a/protobuf_deps.bzl +++ b/protobuf_deps.bzl @@ -114,6 +114,6 @@ def protobuf_deps(): _github_archive( name = "upb", repo = "https://github.com/protocolbuffers/upb", - commit = "12efc9b096f35b62055a217f45e6b0fe5fb1a099", - sha256 = "de0ab4ee1e2d8f01b494de39cd70b611e190b63943f1d5c448d4ecb9560dc16f", + commit = "ef78b6a093f7301c1d1e00aa6308a3016916971d", + sha256 = "9fd1ad84ec0d8e68b91cde0fe6686f1281e8a5f28239bd769e4432d96bdfbef5", ) From 3b029b1f4f169bd6548f2ddc099debd3619fab8b Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Thu, 26 May 2022 14:11:37 -0700 Subject: [PATCH 15/32] Revert "Fix cmake install targets (#9822)" (#10060) This reverts commit c80808ce1defa4a6f02ceba8e1415b0bcdd068fd. Thix fixes #10045. Somehow the change caused these four .cmake files to stop being installed: protobuf-config.cmake protobuf-config-version.cmake protobuf-module.cmake protobuf-options.cmake After reverting the change, I confirmed that the files are being installed again. --- cmake/install.cmake | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmake/install.cmake b/cmake/install.cmake index c1f6f4aab2..825cb25fc1 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -128,20 +128,24 @@ configure_file(${protobuf_SOURCE_DIR}/cmake/protobuf-options.cmake if (protobuf_BUILD_PROTOC_BINARIES) export(TARGETS libprotobuf-lite libprotobuf libprotoc protoc NAMESPACE protobuf:: - FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/protobuf/protobuf-targets.cmake + FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake ) else (protobuf_BUILD_PROTOC_BINARIES) export(TARGETS libprotobuf-lite libprotobuf NAMESPACE protobuf:: - FILE ${CMAKE_CURRENT_BINARY_DIR}/cmake/protobuf/protobuf-targets.cmake + FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake ) endif (protobuf_BUILD_PROTOC_BINARIES) install(EXPORT protobuf-targets - FILE protobuf-targets.cmake DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" NAMESPACE protobuf:: + COMPONENT protobuf-export) + +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_CMAKEDIR}/ + DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" COMPONENT protobuf-export + PATTERN protobuf-targets.cmake EXCLUDE ) option(protobuf_INSTALL_EXAMPLES "Install the examples folder" OFF) From ceaae1b6a3acca823acc40380a96f94cecc6e6a9 Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Thu, 26 May 2022 16:32:15 -0700 Subject: [PATCH 16/32] [Bazel] Add back a filegroup for :well_known_protos. (#10061) This was removed in #9915, since it is misleadingly named (the set of sources is "well known," but not the same as the Well-Known Types). --- BUILD.bazel | 17 +++++++++++++++++ src/google/protobuf/compiler/BUILD.bazel | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/BUILD.bazel b/BUILD.bazel index 98584b6042..d22889cb0a 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -128,6 +128,23 @@ cc_library( visibility = ["//visibility:public"], ) +# Source protos that are typically part of the protobuf runtime. +# +# DEPRECATED: Prefer :well_known_type_protos for the Well-Known Types +# (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf) +# or :descriptor_proto(_srcs) for descriptor.proto (source), or +# :compiler_plugin_proto for compiler/plugin.proto. +filegroup( + name = "well_known_protos", + srcs = [ + ":descriptor_proto_srcs", + ":well_known_type_protos", + "//src/google/protobuf/compiler:plugin.proto", + ], + deprecation = "Prefer :well_known_type_protos instead.", + visibility = ["//visibility:public"], +) + ################################################################################ # Protocol Buffers Compiler ################################################################################ diff --git a/src/google/protobuf/compiler/BUILD.bazel b/src/google/protobuf/compiler/BUILD.bazel index 75b90e411b..8cc430b3a1 100644 --- a/src/google/protobuf/compiler/BUILD.bazel +++ b/src/google/protobuf/compiler/BUILD.bazel @@ -150,6 +150,11 @@ filegroup( ], ) +exports_files( + srcs = ["plugin.proto"], + visibility = ["//:__pkg__"], +) + cc_library( name = "mock_code_generator", testonly = 1, From 5bbb8f7b2c1e5170068a4ce8cc74860707d3cc20 Mon Sep 17 00:00:00 2001 From: zhangskz <89936743+zhangskz@users.noreply.github.com> Date: Fri, 27 May 2022 12:16:33 -0400 Subject: [PATCH 17/32] Update upb commit to include fix for segmentation fault when instantiating field via repeated field assignment (#10066) --- protobuf_deps.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/protobuf_deps.bzl b/protobuf_deps.bzl index 18a3376ec1..7b53b77707 100644 --- a/protobuf_deps.bzl +++ b/protobuf_deps.bzl @@ -114,6 +114,6 @@ def protobuf_deps(): _github_archive( name = "upb", repo = "https://github.com/protocolbuffers/upb", - commit = "ef78b6a093f7301c1d1e00aa6308a3016916971d", - sha256 = "9fd1ad84ec0d8e68b91cde0fe6686f1281e8a5f28239bd769e4432d96bdfbef5", + commit = "04cb5af6b67c80db61f0aee76dcb6d233e51795c", + sha256 = "62d3519a7b65d6695e011f2733bfc5d7c6ab77f2bd83cdd2dca449da2e739c7f", ) From e73ed1630fdec85d7fb513c166629ed49cd4eb18 Mon Sep 17 00:00:00 2001 From: Protobuf Team Bot Date: Fri, 27 May 2022 09:37:14 -0700 Subject: [PATCH 18/32] Updating version.json and repo version numbers to: 21.1 --- Protobuf-C++.podspec | 2 +- Protobuf.podspec | 2 +- configure.ac | 2 +- csharp/Google.Protobuf.Tools.nuspec | 2 +- .../Google.Protobuf/Google.Protobuf.csproj | 2 +- java/README.md | 6 ++--- java/bom/pom.xml | 2 +- java/core/pom.xml | 2 +- java/kotlin-lite/pom.xml | 2 +- java/kotlin/pom.xml | 2 +- java/lite.md | 2 +- java/lite/pom.xml | 2 +- java/pom.xml | 2 +- java/util/pom.xml | 2 +- php/ext/google/protobuf/package.xml | 23 +++++++++++++++---- php/ext/google/protobuf/protobuf.h | 2 +- protobuf_version.bzl | 6 ++--- protoc-artifacts/pom.xml | 2 +- python/google/protobuf/__init__.py | 2 +- ruby/google-protobuf.gemspec | 2 +- ruby/pom.xml | 4 ++-- src/Makefile.am | 2 +- src/google/protobuf/any.pb.h | 2 +- src/google/protobuf/api.pb.h | 2 +- src/google/protobuf/compiler/plugin.pb.h | 2 +- src/google/protobuf/descriptor.pb.h | 2 +- src/google/protobuf/duration.pb.h | 2 +- src/google/protobuf/empty.pb.h | 2 +- src/google/protobuf/field_mask.pb.h | 2 +- src/google/protobuf/port_def.inc | 2 +- src/google/protobuf/source_context.pb.h | 2 +- src/google/protobuf/struct.pb.h | 2 +- src/google/protobuf/stubs/common.h | 2 +- src/google/protobuf/timestamp.pb.h | 2 +- src/google/protobuf/type.pb.h | 2 +- src/google/protobuf/wrappers.pb.h | 2 +- version.json | 20 ++++++++-------- 37 files changed, 69 insertions(+), 54 deletions(-) diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec index 228cdd2bb3..f537be063a 100644 --- a/Protobuf-C++.podspec +++ b/Protobuf-C++.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Protobuf-C++' - s.version = '3.21.0' + s.version = '3.21.1' s.summary = 'Protocol Buffers v3 runtime library for C++.' s.homepage = 'https://github.com/google/protobuf' s.license = 'BSD-3-Clause' diff --git a/Protobuf.podspec b/Protobuf.podspec index 7d67d89b97..6b2beda07e 100644 --- a/Protobuf.podspec +++ b/Protobuf.podspec @@ -5,7 +5,7 @@ # dependent projects use the :git notation to refer to the library. Pod::Spec.new do |s| s.name = 'Protobuf' - s.version = '3.21.0' + s.version = '3.21.1' s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' s.homepage = 'https://github.com/protocolbuffers/protobuf' s.license = 'BSD-3-Clause' diff --git a/configure.ac b/configure.ac index 97212cfdd3..55e606478a 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ AC_PREREQ(2.59) # In the SVN trunk, the version should always be the next anticipated release # version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed # the size of one file name in the dist tarfile over the 99-char limit.) -AC_INIT([Protocol Buffers],[3.21.0],[protobuf@googlegroups.com],[protobuf]) +AC_INIT([Protocol Buffers],[3.21.1],[protobuf@googlegroups.com],[protobuf]) AM_MAINTAINER_MODE([enable]) diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec index d5cfc6c4cf..d477bb1396 100644 --- a/csharp/Google.Protobuf.Tools.nuspec +++ b/csharp/Google.Protobuf.Tools.nuspec @@ -5,7 +5,7 @@ Google Protocol Buffers tools Tools for Protocol Buffers - Google's data interchange format. See project site for more info. - 3.21.0 + 3.21.1 Google Inc. protobuf-packages https://github.com/protocolbuffers/protobuf/blob/main/LICENSE diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.csproj b/csharp/src/Google.Protobuf/Google.Protobuf.csproj index 08d8f2431f..d3c18db7d0 100644 --- a/csharp/src/Google.Protobuf/Google.Protobuf.csproj +++ b/csharp/src/Google.Protobuf/Google.Protobuf.csproj @@ -4,7 +4,7 @@ C# runtime library for Protocol Buffers - Google's data interchange format. Copyright 2015, Google Inc. Google Protocol Buffers - 3.21.0 + 3.21.1 7.2 Google Inc. diff --git a/java/README.md b/java/README.md index 03f414dbec..20f4c9be7b 100644 --- a/java/README.md +++ b/java/README.md @@ -23,7 +23,7 @@ If you are using Maven, use the following: com.google.protobuf protobuf-java - 3.21.0 + 3.21.1 ``` @@ -37,7 +37,7 @@ protobuf-java-util package: com.google.protobuf protobuf-java-util - 3.21.0 + 3.21.1 ``` @@ -45,7 +45,7 @@ protobuf-java-util package: If you are using Gradle, add the following to your `build.gradle` file's dependencies: ``` - implementation 'com.google.protobuf:protobuf-java:3.21.0' + implementation 'com.google.protobuf:protobuf-java:3.21.1' ``` Again, be sure to check that the version number matches (or is newer than) the version number of protoc that you are using. diff --git a/java/bom/pom.xml b/java/bom/pom.xml index 12ec2e8c49..3813b32528 100644 --- a/java/bom/pom.xml +++ b/java/bom/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-bom - 3.21.0 + 3.21.1 pom Protocol Buffers [BOM] diff --git a/java/core/pom.xml b/java/core/pom.xml index e363ccd3f0..e32d0aa352 100644 --- a/java/core/pom.xml +++ b/java/core/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-java diff --git a/java/kotlin-lite/pom.xml b/java/kotlin-lite/pom.xml index 218aa663fb..3585f3ae7d 100644 --- a/java/kotlin-lite/pom.xml +++ b/java/kotlin-lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-kotlin-lite diff --git a/java/kotlin/pom.xml b/java/kotlin/pom.xml index de68cdb87b..e7958767bf 100644 --- a/java/kotlin/pom.xml +++ b/java/kotlin/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-kotlin diff --git a/java/lite.md b/java/lite.md index eb0378df01..1a5c951ba3 100644 --- a/java/lite.md +++ b/java/lite.md @@ -29,7 +29,7 @@ protobuf Java Lite runtime. If you are using Maven, include the following: com.google.protobuf protobuf-javalite - 3.21.0 + 3.21.1 ``` diff --git a/java/lite/pom.xml b/java/lite/pom.xml index 18b27b725c..8b1590ba82 100644 --- a/java/lite/pom.xml +++ b/java/lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-javalite diff --git a/java/pom.xml b/java/pom.xml index e32d53dab1..5776cfda91 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 pom Protocol Buffers [Parent] diff --git a/java/util/pom.xml b/java/util/pom.xml index f9471c4f69..afc912b072 100644 --- a/java/util/pom.xml +++ b/java/util/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-java-util diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml index 42fc32d0bc..5ef108509a 100644 --- a/php/ext/google/protobuf/package.xml +++ b/php/ext/google/protobuf/package.xml @@ -10,11 +10,11 @@ protobuf-opensource@google.com yes - 2022-05-25 - + 2022-05-27 + - 3.21.0 - 3.21.0 + 3.21.1 + 3.21.1 stable @@ -1328,5 +1328,20 @@ G A release. + + + 3.21.1 + 3.21.1 + + + stable + stable + + 2022-05-27 + + BSD-3-Clause + + + diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index 6798430271..6488196ff7 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -127,7 +127,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_setter, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() -#define PHP_PROTOBUF_VERSION "3.21.0" +#define PHP_PROTOBUF_VERSION "3.21.1" // ptr -> PHP object cache. This is a weak map that caches lazily-created // wrapper objects around upb types: diff --git a/protobuf_version.bzl b/protobuf_version.bzl index fa4c91af68..81b068cd83 100644 --- a/protobuf_version.bzl +++ b/protobuf_version.bzl @@ -1,3 +1,3 @@ -PROTOC_VERSION = '21.0' -PROTOBUF_JAVA_VERSION = '3.21.0' -PROTOBUF_PYTHON_VERSION = '4.21.0' +PROTOC_VERSION = '21.1' +PROTOBUF_JAVA_VERSION = '3.21.1' +PROTOBUF_PYTHON_VERSION = '4.21.1' diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml index 1c1b851e8e..06af961d8a 100644 --- a/protoc-artifacts/pom.xml +++ b/protoc-artifacts/pom.xml @@ -8,7 +8,7 @@ com.google.protobuf protoc - 3.21.0 + 3.21.1 pom Protobuf Compiler diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py index 94ad865b09..56781369c2 100644 --- a/python/google/protobuf/__init__.py +++ b/python/google/protobuf/__init__.py @@ -30,4 +30,4 @@ # Copyright 2007 Google Inc. All Rights Reserved. -__version__ = '4.21.0' +__version__ = '4.21.1' diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 2e25d13f8a..cecc370dce 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = "google-protobuf" - s.version = "3.21.0" + s.version = "3.21.1" git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag s.licenses = ["BSD-3-Clause"] s.summary = "Protocol Buffers" diff --git a/ruby/pom.xml b/ruby/pom.xml index 8adf9b0d60..b861c39748 100644 --- a/ruby/pom.xml +++ b/ruby/pom.xml @@ -9,7 +9,7 @@ com.google.protobuf.jruby protobuf-jruby - 3.21.0 + 3.21.1 Protocol Buffer JRuby native extension Protocol Buffers are a way of encoding structured data in an efficient yet @@ -76,7 +76,7 @@ com.google.protobuf protobuf-java-util - 3.21.0 + 3.21.1 org.jruby diff --git a/src/Makefile.am b/src/Makefile.am index 9033a46794..264d8ea448 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -18,7 +18,7 @@ else PTHREAD_DEF = endif -PROTOBUF_VERSION = 32:0:0 +PROTOBUF_VERSION = 32:1:0 if GCC # Turn on all warnings except for sign comparison (we ignore sign comparison diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h index b3b4e6a168..6db2ab3d33 100644 --- a/src/google/protobuf/any.pb.h +++ b/src/google/protobuf/any.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h index 2f7d90516d..a06f93012d 100644 --- a/src/google/protobuf/api.pb.h +++ b/src/google/protobuf/api.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/compiler/plugin.pb.h b/src/google/protobuf/compiler/plugin.pb.h index b8829b495c..1c4b0f6c00 100644 --- a/src/google/protobuf/compiler/plugin.pb.h +++ b/src/google/protobuf/compiler/plugin.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h index 0a51ba3530..78df1d5124 100644 --- a/src/google/protobuf/descriptor.pb.h +++ b/src/google/protobuf/descriptor.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h index 7bdff41c5c..73193eb115 100644 --- a/src/google/protobuf/duration.pb.h +++ b/src/google/protobuf/duration.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h index 70fd45e604..f5c44b8313 100644 --- a/src/google/protobuf/empty.pb.h +++ b/src/google/protobuf/empty.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h index 9022e1f315..f4f77070d0 100644 --- a/src/google/protobuf/field_mask.pb.h +++ b/src/google/protobuf/field_mask.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc index 4af6aa3c87..d534411b63 100644 --- a/src/google/protobuf/port_def.inc +++ b/src/google/protobuf/port_def.inc @@ -178,7 +178,7 @@ #ifdef PROTOBUF_VERSION #error PROTOBUF_VERSION was previously defined #endif -#define PROTOBUF_VERSION 3021000 +#define PROTOBUF_VERSION 3021001 #ifdef PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC #error PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC was previously defined diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h index 3625ece1ff..63204f789a 100644 --- a/src/google/protobuf/source_context.pb.h +++ b/src/google/protobuf/source_context.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h index a8019f86bc..1372271768 100644 --- a/src/google/protobuf/struct.pb.h +++ b/src/google/protobuf/struct.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index 10e9c61197..81fb427183 100644 --- a/src/google/protobuf/stubs/common.h +++ b/src/google/protobuf/stubs/common.h @@ -82,7 +82,7 @@ namespace internal { // The current version, represented as a single integer to make comparison // easier: major * 10^6 + minor * 10^3 + micro -#define GOOGLE_PROTOBUF_VERSION 3021000 +#define GOOGLE_PROTOBUF_VERSION 3021001 // A suffix string for alpha, beta or rc releases. Empty for stable releases. #define GOOGLE_PROTOBUF_VERSION_SUFFIX "" diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h index 01c8c8500c..7c074c4f05 100644 --- a/src/google/protobuf/timestamp.pb.h +++ b/src/google/protobuf/timestamp.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h index ecdb9d9eda..83439e9994 100644 --- a/src/google/protobuf/type.pb.h +++ b/src/google/protobuf/type.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h index 538dba60e8..6f549dd97c 100644 --- a/src/google/protobuf/wrappers.pb.h +++ b/src/google/protobuf/wrappers.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/version.json b/version.json index 147c219ffa..079bec93a3 100644 --- a/version.json +++ b/version.json @@ -1,17 +1,17 @@ { "21.x": { - "protoc_version": "21.1-dev", + "protoc_version": "21.1", "lts": false, - "date": "2022-05-26", + "date": "2022-05-27", "languages": { - "cpp": "3.21.1-dev", - "csharp": "3.21.1-dev", - "java": "3.21.1-dev", - "javascript": "3.21.1-dev", - "objectivec": "3.21.1-dev", - "php": "3.21.1-dev", - "python": "4.21.1-dev", - "ruby": "3.21.1-dev" + "cpp": "3.21.1", + "csharp": "3.21.1", + "java": "3.21.1", + "javascript": "3.21.1", + "objectivec": "3.21.1", + "php": "3.21.1", + "python": "4.21.1", + "ruby": "3.21.1" } } } \ No newline at end of file From 38e3a11a2989f06060c5beda4752e84844fa0c32 Mon Sep 17 00:00:00 2001 From: Protobuf Team Bot Date: Fri, 27 May 2022 09:37:14 -0700 Subject: [PATCH 19/32] Updating version.json and repo version numbers to: 21.1 --- Protobuf-C++.podspec | 2 +- Protobuf.podspec | 2 +- configure.ac | 2 +- csharp/Google.Protobuf.Tools.nuspec | 2 +- .../Google.Protobuf/Google.Protobuf.csproj | 2 +- java/README.md | 6 ++--- java/bom/pom.xml | 2 +- java/core/pom.xml | 2 +- java/kotlin-lite/pom.xml | 2 +- java/kotlin/pom.xml | 2 +- java/lite.md | 2 +- java/lite/pom.xml | 2 +- java/pom.xml | 2 +- java/util/pom.xml | 2 +- php/ext/google/protobuf/package.xml | 23 +++++++++++++++---- php/ext/google/protobuf/protobuf.h | 2 +- protobuf_version.bzl | 6 ++--- protoc-artifacts/pom.xml | 2 +- python/google/protobuf/__init__.py | 2 +- ruby/google-protobuf.gemspec | 2 +- ruby/pom.xml | 4 ++-- src/Makefile.am | 2 +- src/google/protobuf/any.pb.h | 2 +- src/google/protobuf/api.pb.h | 2 +- src/google/protobuf/compiler/plugin.pb.h | 2 +- src/google/protobuf/descriptor.pb.h | 2 +- src/google/protobuf/duration.pb.h | 2 +- src/google/protobuf/empty.pb.h | 2 +- src/google/protobuf/field_mask.pb.h | 2 +- src/google/protobuf/port_def.inc | 2 +- src/google/protobuf/source_context.pb.h | 2 +- src/google/protobuf/struct.pb.h | 2 +- src/google/protobuf/stubs/common.h | 2 +- src/google/protobuf/timestamp.pb.h | 2 +- src/google/protobuf/type.pb.h | 2 +- src/google/protobuf/wrappers.pb.h | 2 +- version.json | 20 ++++++++-------- 37 files changed, 69 insertions(+), 54 deletions(-) diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec index 228cdd2bb3..f537be063a 100644 --- a/Protobuf-C++.podspec +++ b/Protobuf-C++.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Protobuf-C++' - s.version = '3.21.0' + s.version = '3.21.1' s.summary = 'Protocol Buffers v3 runtime library for C++.' s.homepage = 'https://github.com/google/protobuf' s.license = 'BSD-3-Clause' diff --git a/Protobuf.podspec b/Protobuf.podspec index 7d67d89b97..6b2beda07e 100644 --- a/Protobuf.podspec +++ b/Protobuf.podspec @@ -5,7 +5,7 @@ # dependent projects use the :git notation to refer to the library. Pod::Spec.new do |s| s.name = 'Protobuf' - s.version = '3.21.0' + s.version = '3.21.1' s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' s.homepage = 'https://github.com/protocolbuffers/protobuf' s.license = 'BSD-3-Clause' diff --git a/configure.ac b/configure.ac index 97212cfdd3..55e606478a 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ AC_PREREQ(2.59) # In the SVN trunk, the version should always be the next anticipated release # version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed # the size of one file name in the dist tarfile over the 99-char limit.) -AC_INIT([Protocol Buffers],[3.21.0],[protobuf@googlegroups.com],[protobuf]) +AC_INIT([Protocol Buffers],[3.21.1],[protobuf@googlegroups.com],[protobuf]) AM_MAINTAINER_MODE([enable]) diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec index d5cfc6c4cf..d477bb1396 100644 --- a/csharp/Google.Protobuf.Tools.nuspec +++ b/csharp/Google.Protobuf.Tools.nuspec @@ -5,7 +5,7 @@ Google Protocol Buffers tools Tools for Protocol Buffers - Google's data interchange format. See project site for more info. - 3.21.0 + 3.21.1 Google Inc. protobuf-packages https://github.com/protocolbuffers/protobuf/blob/main/LICENSE diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.csproj b/csharp/src/Google.Protobuf/Google.Protobuf.csproj index 08d8f2431f..d3c18db7d0 100644 --- a/csharp/src/Google.Protobuf/Google.Protobuf.csproj +++ b/csharp/src/Google.Protobuf/Google.Protobuf.csproj @@ -4,7 +4,7 @@ C# runtime library for Protocol Buffers - Google's data interchange format. Copyright 2015, Google Inc. Google Protocol Buffers - 3.21.0 + 3.21.1 7.2 Google Inc. diff --git a/java/README.md b/java/README.md index 03f414dbec..20f4c9be7b 100644 --- a/java/README.md +++ b/java/README.md @@ -23,7 +23,7 @@ If you are using Maven, use the following: com.google.protobuf protobuf-java - 3.21.0 + 3.21.1 ``` @@ -37,7 +37,7 @@ protobuf-java-util package: com.google.protobuf protobuf-java-util - 3.21.0 + 3.21.1 ``` @@ -45,7 +45,7 @@ protobuf-java-util package: If you are using Gradle, add the following to your `build.gradle` file's dependencies: ``` - implementation 'com.google.protobuf:protobuf-java:3.21.0' + implementation 'com.google.protobuf:protobuf-java:3.21.1' ``` Again, be sure to check that the version number matches (or is newer than) the version number of protoc that you are using. diff --git a/java/bom/pom.xml b/java/bom/pom.xml index 12ec2e8c49..3813b32528 100644 --- a/java/bom/pom.xml +++ b/java/bom/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-bom - 3.21.0 + 3.21.1 pom Protocol Buffers [BOM] diff --git a/java/core/pom.xml b/java/core/pom.xml index e363ccd3f0..e32d0aa352 100644 --- a/java/core/pom.xml +++ b/java/core/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-java diff --git a/java/kotlin-lite/pom.xml b/java/kotlin-lite/pom.xml index 218aa663fb..3585f3ae7d 100644 --- a/java/kotlin-lite/pom.xml +++ b/java/kotlin-lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-kotlin-lite diff --git a/java/kotlin/pom.xml b/java/kotlin/pom.xml index de68cdb87b..e7958767bf 100644 --- a/java/kotlin/pom.xml +++ b/java/kotlin/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-kotlin diff --git a/java/lite.md b/java/lite.md index eb0378df01..1a5c951ba3 100644 --- a/java/lite.md +++ b/java/lite.md @@ -29,7 +29,7 @@ protobuf Java Lite runtime. If you are using Maven, include the following: com.google.protobuf protobuf-javalite - 3.21.0 + 3.21.1 ``` diff --git a/java/lite/pom.xml b/java/lite/pom.xml index 18b27b725c..8b1590ba82 100644 --- a/java/lite/pom.xml +++ b/java/lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-javalite diff --git a/java/pom.xml b/java/pom.xml index e32d53dab1..5776cfda91 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 pom Protocol Buffers [Parent] diff --git a/java/util/pom.xml b/java/util/pom.xml index f9471c4f69..afc912b072 100644 --- a/java/util/pom.xml +++ b/java/util/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.21.0 + 3.21.1 protobuf-java-util diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml index 42fc32d0bc..5ef108509a 100644 --- a/php/ext/google/protobuf/package.xml +++ b/php/ext/google/protobuf/package.xml @@ -10,11 +10,11 @@ protobuf-opensource@google.com yes - 2022-05-25 - + 2022-05-27 + - 3.21.0 - 3.21.0 + 3.21.1 + 3.21.1 stable @@ -1328,5 +1328,20 @@ G A release. + + + 3.21.1 + 3.21.1 + + + stable + stable + + 2022-05-27 + + BSD-3-Clause + + + diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index 6798430271..6488196ff7 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -127,7 +127,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_setter, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() -#define PHP_PROTOBUF_VERSION "3.21.0" +#define PHP_PROTOBUF_VERSION "3.21.1" // ptr -> PHP object cache. This is a weak map that caches lazily-created // wrapper objects around upb types: diff --git a/protobuf_version.bzl b/protobuf_version.bzl index fa4c91af68..81b068cd83 100644 --- a/protobuf_version.bzl +++ b/protobuf_version.bzl @@ -1,3 +1,3 @@ -PROTOC_VERSION = '21.0' -PROTOBUF_JAVA_VERSION = '3.21.0' -PROTOBUF_PYTHON_VERSION = '4.21.0' +PROTOC_VERSION = '21.1' +PROTOBUF_JAVA_VERSION = '3.21.1' +PROTOBUF_PYTHON_VERSION = '4.21.1' diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml index 1c1b851e8e..06af961d8a 100644 --- a/protoc-artifacts/pom.xml +++ b/protoc-artifacts/pom.xml @@ -8,7 +8,7 @@ com.google.protobuf protoc - 3.21.0 + 3.21.1 pom Protobuf Compiler diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py index 94ad865b09..56781369c2 100644 --- a/python/google/protobuf/__init__.py +++ b/python/google/protobuf/__init__.py @@ -30,4 +30,4 @@ # Copyright 2007 Google Inc. All Rights Reserved. -__version__ = '4.21.0' +__version__ = '4.21.1' diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 2e25d13f8a..cecc370dce 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = "google-protobuf" - s.version = "3.21.0" + s.version = "3.21.1" git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag s.licenses = ["BSD-3-Clause"] s.summary = "Protocol Buffers" diff --git a/ruby/pom.xml b/ruby/pom.xml index 8adf9b0d60..b861c39748 100644 --- a/ruby/pom.xml +++ b/ruby/pom.xml @@ -9,7 +9,7 @@ com.google.protobuf.jruby protobuf-jruby - 3.21.0 + 3.21.1 Protocol Buffer JRuby native extension Protocol Buffers are a way of encoding structured data in an efficient yet @@ -76,7 +76,7 @@ com.google.protobuf protobuf-java-util - 3.21.0 + 3.21.1 org.jruby diff --git a/src/Makefile.am b/src/Makefile.am index 9033a46794..264d8ea448 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -18,7 +18,7 @@ else PTHREAD_DEF = endif -PROTOBUF_VERSION = 32:0:0 +PROTOBUF_VERSION = 32:1:0 if GCC # Turn on all warnings except for sign comparison (we ignore sign comparison diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h index b3b4e6a168..6db2ab3d33 100644 --- a/src/google/protobuf/any.pb.h +++ b/src/google/protobuf/any.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h index 2f7d90516d..a06f93012d 100644 --- a/src/google/protobuf/api.pb.h +++ b/src/google/protobuf/api.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/compiler/plugin.pb.h b/src/google/protobuf/compiler/plugin.pb.h index b8829b495c..1c4b0f6c00 100644 --- a/src/google/protobuf/compiler/plugin.pb.h +++ b/src/google/protobuf/compiler/plugin.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h index 0a51ba3530..78df1d5124 100644 --- a/src/google/protobuf/descriptor.pb.h +++ b/src/google/protobuf/descriptor.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h index 7bdff41c5c..73193eb115 100644 --- a/src/google/protobuf/duration.pb.h +++ b/src/google/protobuf/duration.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h index 70fd45e604..f5c44b8313 100644 --- a/src/google/protobuf/empty.pb.h +++ b/src/google/protobuf/empty.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h index 9022e1f315..f4f77070d0 100644 --- a/src/google/protobuf/field_mask.pb.h +++ b/src/google/protobuf/field_mask.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc index 4af6aa3c87..d534411b63 100644 --- a/src/google/protobuf/port_def.inc +++ b/src/google/protobuf/port_def.inc @@ -178,7 +178,7 @@ #ifdef PROTOBUF_VERSION #error PROTOBUF_VERSION was previously defined #endif -#define PROTOBUF_VERSION 3021000 +#define PROTOBUF_VERSION 3021001 #ifdef PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC #error PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC was previously defined diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h index 3625ece1ff..63204f789a 100644 --- a/src/google/protobuf/source_context.pb.h +++ b/src/google/protobuf/source_context.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h index a8019f86bc..1372271768 100644 --- a/src/google/protobuf/struct.pb.h +++ b/src/google/protobuf/struct.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index 10e9c61197..81fb427183 100644 --- a/src/google/protobuf/stubs/common.h +++ b/src/google/protobuf/stubs/common.h @@ -82,7 +82,7 @@ namespace internal { // The current version, represented as a single integer to make comparison // easier: major * 10^6 + minor * 10^3 + micro -#define GOOGLE_PROTOBUF_VERSION 3021000 +#define GOOGLE_PROTOBUF_VERSION 3021001 // A suffix string for alpha, beta or rc releases. Empty for stable releases. #define GOOGLE_PROTOBUF_VERSION_SUFFIX "" diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h index 01c8c8500c..7c074c4f05 100644 --- a/src/google/protobuf/timestamp.pb.h +++ b/src/google/protobuf/timestamp.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h index ecdb9d9eda..83439e9994 100644 --- a/src/google/protobuf/type.pb.h +++ b/src/google/protobuf/type.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h index 538dba60e8..6f549dd97c 100644 --- a/src/google/protobuf/wrappers.pb.h +++ b/src/google/protobuf/wrappers.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3021000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3021001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/version.json b/version.json index 147c219ffa..079bec93a3 100644 --- a/version.json +++ b/version.json @@ -1,17 +1,17 @@ { "21.x": { - "protoc_version": "21.1-dev", + "protoc_version": "21.1", "lts": false, - "date": "2022-05-26", + "date": "2022-05-27", "languages": { - "cpp": "3.21.1-dev", - "csharp": "3.21.1-dev", - "java": "3.21.1-dev", - "javascript": "3.21.1-dev", - "objectivec": "3.21.1-dev", - "php": "3.21.1-dev", - "python": "4.21.1-dev", - "ruby": "3.21.1-dev" + "cpp": "3.21.1", + "csharp": "3.21.1", + "java": "3.21.1", + "javascript": "3.21.1", + "objectivec": "3.21.1", + "php": "3.21.1", + "python": "4.21.1", + "ruby": "3.21.1" } } } \ No newline at end of file From 569a0517fadd90707713fc0c24f24b1da1d174a4 Mon Sep 17 00:00:00 2001 From: Sandy Zhang Date: Fri, 27 May 2022 17:45:42 +0000 Subject: [PATCH 20/32] Updated changelog --- CHANGES.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 88be607f8d..0528229caf 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,13 @@ +2022-05-27 version 21.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby) + + C++ + * cmake: Revert "Fix cmake install targets (#9822)" (#10060) + * Remove Abseil dependency from CMake build (#10056) + + Python + * Update python wheel metadata with more information incl. required python version (#10058) + * Fix segmentation fault when instantiating field via repeated field assignment (#10066) + 2022-05-25 version 21.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby) C++ From 7f02c3b16bb76c6928f91b025cdce8f59fa8fc06 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Fri, 27 May 2022 11:11:05 -0700 Subject: [PATCH 21/32] Fix continuous aarch64 builds (#10067) Some of the continuous aarch64 builds started failing yesterday because the autotools -> CMake change caused the protoc binary to end up in an unexpected location. This change fixes the problem by putting a symlink in the src/ directory. --- kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh b/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh index 2880507539..d116c2f4a1 100755 --- a/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh +++ b/kokoro/linux/aarch64/protoc_crosscompile_aarch64.sh @@ -6,3 +6,6 @@ set -ex cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_WITH_ZLIB=0 . make -j8 + +# The Java build setup expects the protoc binary to be in the src/ directory. +ln -s $PWD/protoc ./src/protoc From 6bd7c2e48c807891671e0927f27e1e9280fee9d8 Mon Sep 17 00:00:00 2001 From: Sandy Zhang Date: Fri, 27 May 2022 23:19:49 +0000 Subject: [PATCH 22/32] Update version.json to: 21.2-dev --- version.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/version.json b/version.json index 079bec93a3..bd420ea28a 100644 --- a/version.json +++ b/version.json @@ -1,17 +1,17 @@ { "21.x": { - "protoc_version": "21.1", + "protoc_version": "21.2-dev", "lts": false, "date": "2022-05-27", "languages": { - "cpp": "3.21.1", - "csharp": "3.21.1", - "java": "3.21.1", - "javascript": "3.21.1", - "objectivec": "3.21.1", - "php": "3.21.1", - "python": "4.21.1", - "ruby": "3.21.1" + "cpp": "3.21.2-dev", + "csharp": "3.21.2-dev", + "java": "3.21.2-dev", + "javascript": "3.21.2-dev", + "objectivec": "3.21.2-dev", + "php": "3.21.2-dev", + "python": "4.21.2-dev", + "ruby": "3.21.2-dev" } } } \ No newline at end of file From 15e09f56b0842dd46fde0492487dd1a20f28f0a2 Mon Sep 17 00:00:00 2001 From: Sandy Zhang Date: Sat, 28 May 2022 00:17:14 +0000 Subject: [PATCH 23/32] Fix unsaved merge resolution --- BUILD.bazel | 5 --- Protobuf.podspec | 4 -- .../protobuf/compiler/php/php_generator.cc | 39 ------------------- version.json | 16 -------- 4 files changed, 64 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 35f317c29b..5d732c69a3 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -5,10 +5,6 @@ load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_proto_library", "c load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library") load("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library") -<<<<<<< HEAD -load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS") -load(":protobuf.bzl", "py_proto_library") -======= load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS", "PROTOC_LINK_OPTS") load( ":protobuf.bzl", @@ -18,7 +14,6 @@ load( "internal_protobuf_py_tests", "py_proto_library", ) ->>>>>>> upstream/21.x licenses(["notice"]) diff --git a/Protobuf.podspec b/Protobuf.podspec index 7adba30f28..6b2beda07e 100644 --- a/Protobuf.podspec +++ b/Protobuf.podspec @@ -5,11 +5,7 @@ # dependent projects use the :git notation to refer to the library. Pod::Spec.new do |s| s.name = 'Protobuf' -<<<<<<< HEAD - s.version = '3.21.0-rc1' -======= s.version = '3.21.1' ->>>>>>> upstream/21.x s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' s.homepage = 'https://github.com/protocolbuffers/protobuf' s.license = 'BSD-3-Clause' diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index 861b636a0c..02afb101dc 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -408,7 +408,6 @@ std::string GeneratedClassFileName(const DescriptorType* desc, } template -<<<<<<< HEAD std::string LegacyReadOnlyGeneratedClassFileName(const DescriptorType* desc, const Options& options) { std::string php_namespace = RootPhpNamespace(desc, options); @@ -416,18 +415,6 @@ std::string LegacyReadOnlyGeneratedClassFileName(const DescriptorType* desc, return php_namespace + "/" + desc->name() + ".php"; } return desc->name() + ".php"; -======= -std::string LegacyGeneratedClassFileName(const DescriptorType* desc, - const Options& options) { - std::string result = LegacyFullClassName(desc, options); - - for (int i = 0; i < result.size(); i++) { - if (result[i] == '\\') { - result[i] = '/'; - } - } - return result + ".php"; ->>>>>>> upstream/21.x } std::string GeneratedServiceFileName(const ServiceDescriptor* service, @@ -1276,17 +1263,10 @@ void GenerateMetadataFile(const FileDescriptor* file, const Options& options, } template -<<<<<<< HEAD void LegacyReadOnlyGenerateClassFile(const FileDescriptor* file, const DescriptorType* desc, const Options& options, GeneratorContext* generator_context) { std::string filename = LegacyReadOnlyGeneratedClassFileName(desc, options); -======= -void LegacyGenerateClassFile(const FileDescriptor* file, - const DescriptorType* desc, const Options& options, - GeneratorContext* generator_context) { - std::string filename = LegacyGeneratedClassFileName(desc, options); ->>>>>>> upstream/21.x std::unique_ptr output( generator_context->Open(filename)); io::Printer printer(output.get(), '^'); @@ -1300,30 +1280,11 @@ void LegacyGenerateClassFile(const FileDescriptor* file, "name", php_namespace); } std::string newname = FullClassName(desc, options); -<<<<<<< HEAD printer.Print("class_exists(^new^::class);\n", "new", GeneratedClassNameImpl(desc)); printer.Print("@trigger_error(__NAMESPACE__ . '\\^old^ is deprecated and will be removed in " "the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n", "old", desc->name(), -======= - printer.Print("if (false) {\n"); - Indent(&printer); - printer.Print("/**\n"); - printer.Print(" * This class is deprecated. Use ^new^ instead.\n", - "new", newname); - printer.Print(" * @deprecated\n"); - printer.Print(" */\n"); - printer.Print("class ^old^ {}\n", - "old", LegacyGeneratedClassName(desc)); - Outdent(&printer); - printer.Print("}\n"); - printer.Print("class_exists(^new^::class);\n", - "new", GeneratedClassNameImpl(desc)); - printer.Print("@trigger_error('^old^ is deprecated and will be removed in " - "the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n", - "old", LegacyFullClassName(desc, options), ->>>>>>> upstream/21.x "fullname", newname); } diff --git a/version.json b/version.json index 7af04a0d2a..e50d633261 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,4 @@ { -<<<<<<< HEAD "main": { "protoc_version": "21-dev", "lts": false, @@ -13,21 +12,6 @@ "php": "3.21-dev", "python": "4.21-dev", "ruby": "3.21-dev" -======= - "21.x": { - "protoc_version": "21.2-dev", - "lts": false, - "date": "2022-05-27", - "languages": { - "cpp": "3.21.2-dev", - "csharp": "3.21.2-dev", - "java": "3.21.2-dev", - "javascript": "3.21.2-dev", - "objectivec": "3.21.2-dev", - "php": "3.21.2-dev", - "python": "4.21.2-dev", - "ruby": "3.21.2-dev" ->>>>>>> upstream/21.x } } } From e16d9348d7031f58812af3186ae1ae5de92bee6d Mon Sep 17 00:00:00 2001 From: Sandy Zhang Date: Sat, 28 May 2022 00:27:59 +0000 Subject: [PATCH 24/32] Fix php generator merge to include php revert change from 21.x --- .../protobuf/compiler/php/php_generator.cc | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index 02afb101dc..807082b102 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -407,16 +407,6 @@ std::string GeneratedClassFileName(const DescriptorType* desc, return result + ".php"; } -template -std::string LegacyReadOnlyGeneratedClassFileName(const DescriptorType* desc, - const Options& options) { - std::string php_namespace = RootPhpNamespace(desc, options); - if (!php_namespace.empty()) { - return php_namespace + "/" + desc->name() + ".php"; - } - return desc->name() + ".php"; -} - std::string GeneratedServiceFileName(const ServiceDescriptor* service, const Options& options) { std::string result = FullClassName(service, options) + "Interface"; @@ -1262,32 +1252,6 @@ void GenerateMetadataFile(const FileDescriptor* file, const Options& options, printer.Print("}\n\n"); } -template -void LegacyReadOnlyGenerateClassFile(const FileDescriptor* file, - const DescriptorType* desc, const Options& options, - GeneratorContext* generator_context) { - std::string filename = LegacyReadOnlyGeneratedClassFileName(desc, options); - std::unique_ptr output( - generator_context->Open(filename)); - io::Printer printer(output.get(), '^'); - - GenerateHead(file, &printer); - - std::string php_namespace = RootPhpNamespace(desc, options); - if (!php_namespace.empty()) { - printer.Print( - "namespace ^name^;\n\n", - "name", php_namespace); - } - std::string newname = FullClassName(desc, options); - printer.Print("class_exists(^new^::class);\n", - "new", GeneratedClassNameImpl(desc)); - printer.Print("@trigger_error(__NAMESPACE__ . '\\^old^ is deprecated and will be removed in " - "the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n", - "old", desc->name(), - "fullname", newname); -} - void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en, const Options& options, GeneratorContext* generator_context) { From 85fcd02e321f0aca4a128d59da7524e5bd4b9ec2 Mon Sep 17 00:00:00 2001 From: bttk Date: Tue, 31 May 2022 12:34:59 -0700 Subject: [PATCH 25/32] Remove merge markers from BUILD.bazel and fix incorrect merge (#10084) * Remove merge markers from BUILD.bazel * fix build errors --- BUILD.bazel | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 5d732c69a3..96d973c0df 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -6,14 +6,7 @@ load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library") load("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library") load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS", "PROTOC_LINK_OPTS") -load( - ":protobuf.bzl", - "adapt_proto_library", - "cc_proto_library", - "internal_copied_filegroup", - "internal_protobuf_py_tests", - "py_proto_library", -) +load(":protobuf.bzl", "py_proto_library") licenses(["notice"]) @@ -158,12 +151,7 @@ filegroup( cc_binary( name = "protoc", -<<<<<<< HEAD - linkopts = LINK_OPTS, -======= - srcs = ["src/google/protobuf/compiler/main.cc"], linkopts = LINK_OPTS + PROTOC_LINK_OPTS, ->>>>>>> upstream/21.x visibility = ["//visibility:public"], deps = ["//src/google/protobuf/compiler:protoc_lib"], ) From 1ec6f26ce77dc228655f29b94413f35a0d008fcb Mon Sep 17 00:00:00 2001 From: zhangskz <89936743+zhangskz@users.noreply.github.com> Date: Tue, 31 May 2022 20:45:44 +0000 Subject: [PATCH 26/32] =?UTF-8?q?Remove=20expected=20cmake=20failure=20due?= =?UTF-8?q?=20to=20missing=20abseil=20sources,=20since=20ab=E2=80=A6=20(#1?= =?UTF-8?q?0089)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove expected cmake failure due to missing abseil sources, since absl dep was rolled back * Add back cmake.sh run using extracted sources --- kokoro/linux/cmake_distcheck/build.sh | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/kokoro/linux/cmake_distcheck/build.sh b/kokoro/linux/cmake_distcheck/build.sh index 5e957f8a50..116e40b86d 100755 --- a/kokoro/linux/cmake_distcheck/build.sh +++ b/kokoro/linux/cmake_distcheck/build.sh @@ -52,15 +52,9 @@ tar -C ${DIST_WORK_ROOT} --strip-components=1 -axf ${DIST_ARCHIVE} # # Run tests using extracted sources # -if SOURCE_DIR=${DIST_WORK_ROOT} \ - CMAKE_GENERATOR=Ninja \ - CTEST_PARALLEL_LEVEL=$(nproc) \ - kokoro/common/cmake.sh; then - # TODO: remove this conditional. - # The cmake build is expected to fail due to missing abseil sources. - echo "$0: Expected failure, but build passed." >&2 - echo "Please update $(basename $0) to remove failure expectation." >&2 - echo "FAIL" >&2 - exit 1 -fi +SOURCE_DIR=${DIST_WORK_ROOT} \ +CMAKE_GENERATOR=Ninja \ +CTEST_PARALLEL_LEVEL=$(nproc) \ +kokoro/common/cmake.sh + echo "PASS" From c2e99db90ba513195118461f3fe1ccf696530f09 Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Tue, 31 May 2022 15:59:28 -0700 Subject: [PATCH 27/32] Add filegroups for test sources and include them in file lists. (#10049) These will be used to generate lists of sources for non-Bazel builds. --- pkg/BUILD.bazel | 76 +++++++++++++++++-- src/google/protobuf/BUILD.bazel | 34 ++++++++- src/google/protobuf/compiler/BUILD.bazel | 37 ++++++++- src/google/protobuf/compiler/cpp/BUILD.bazel | 18 +++++ .../protobuf/compiler/csharp/BUILD.bazel | 9 +++ src/google/protobuf/compiler/java/BUILD.bazel | 9 +++ .../protobuf/compiler/objectivec/BUILD.bazel | 9 +++ src/google/protobuf/compiler/php/BUILD.bazel | 9 +++ .../protobuf/compiler/python/BUILD.bazel | 9 +++ src/google/protobuf/compiler/ruby/BUILD.bazel | 9 +++ src/google/protobuf/io/BUILD.bazel | 9 +++ src/google/protobuf/stubs/BUILD.bazel | 9 +++ src/google/protobuf/util/BUILD.bazel | 18 ++++- src/google/protobuf/util/internal/BUILD.bazel | 20 ++++- 14 files changed, 264 insertions(+), 11 deletions(-) diff --git a/pkg/BUILD.bazel b/pkg/BUILD.bazel index a2663dc2b0..2a310963f0 100644 --- a/pkg/BUILD.bazel +++ b/pkg/BUILD.bazel @@ -27,7 +27,7 @@ pkg_files( pkg_files( name = "compiler_plugin_protos_files", srcs = [ - "//src/google/protobuf/compiler:compiler_plugin_protos_files", + "//src/google/protobuf/compiler:compiler_plugin_protos_files", ], prefix = "include/google/protobuf/compiler", visibility = ["//visibility:private"], @@ -304,10 +304,33 @@ gen_file_lists( testonly = 1, out_stem = "src_file_lists", src_libs = { - # source rule: name in generated file + # {[source rule]: [name in generated file]} + # Libraries: ":protobuf": "libprotobuf", - ":protoc": "libprotoc", ":protobuf_lite": "libprotobuf_lite", + ":protoc": "libprotoc", + # Protos: + "//src/google/protobuf:well_known_type_protos": "wkt_protos", + "//src/google/protobuf:descriptor_proto": "descriptor_proto", + "//src/google/protobuf/compiler:plugin_proto": "plugin_proto", + # Test libraries: + ":lite_test_util": "lite_test_util", + ":test_util": "test_util", + # Tests and test-only protos: + "//src/google/protobuf:full_test_srcs": "protobuf_test", + "//src/google/protobuf:test_protos": "protobuf_test_protos", + "//src/google/protobuf:lite_test_srcs": "protobuf_lite_test", + "//src/google/protobuf:lite_test_protos": "protobuf_lite_test_protos", + "//src/google/protobuf/compiler:test_srcs": "compiler_test", + ":compiler_annotation_test_util": "annotation_test_util", + ":compiler_mock_code_generator": "mock_code_generator", + "//src/google/protobuf/compiler:test_proto_srcs": "compiler_test_protos", + "//src/google/protobuf/compiler:test_plugin_srcs": "test_plugin", + "//src/google/protobuf/io:test_srcs": "io_test", + ":testinglib": "testing", + "//src/google/protobuf/util:test_srcs": "util_test", + "//src/google/protobuf/util:test_proto_srcs": "util_test_protos", + "//src/google/protobuf/stubs:test_srcs": "stubs_test", }, ) @@ -362,15 +385,15 @@ cc_dist_library( }), tags = ["manual"], deps = [ + "//src/google/protobuf", "//src/google/protobuf:arena", + "//src/google/protobuf:protobuf_lite", "//src/google/protobuf/compiler:importer", "//src/google/protobuf/io", "//src/google/protobuf/io:gzip_stream", "//src/google/protobuf/io:io_win32", "//src/google/protobuf/io:printer", "//src/google/protobuf/io:tokenizer", - "//src/google/protobuf:protobuf", - "//src/google/protobuf:protobuf_lite", "//src/google/protobuf/stubs", "//src/google/protobuf/stubs:lite", "//src/google/protobuf/util:delimited_message_util", @@ -379,6 +402,14 @@ cc_dist_library( "//src/google/protobuf/util:json_util", "//src/google/protobuf/util:time_util", "//src/google/protobuf/util:type_resolver_util", + "//src/google/protobuf/util/internal:datapiece", + "//src/google/protobuf/util/internal:default_value", + "//src/google/protobuf/util/internal:field_mask_utility", + "//src/google/protobuf/util/internal:json", + "//src/google/protobuf/util/internal:object_writer", + "//src/google/protobuf/util/internal:protostream", + "//src/google/protobuf/util/internal:type_info", + "//src/google/protobuf/util/internal:utility", ], ) @@ -398,6 +429,41 @@ cc_dist_library( ], ) +cc_dist_library( + name = "lite_test_util", + testonly = 1, + tags = ["manual"], + deps = ["//src/google/protobuf:lite_test_util"], +) + +cc_dist_library( + name = "test_util", + testonly = 1, + tags = ["manual"], + deps = ["//src/google/protobuf:test_util"], +) + +cc_dist_library( + name = "compiler_annotation_test_util", + deps = ["//src/google/protobuf/compiler:annotation_test_util"], + testonly = 1, + tags = ["manual"], +) + +cc_dist_library( + name = "compiler_mock_code_generator", + deps = ["//src/google/protobuf/compiler:mock_code_generator"], + testonly = 1, + tags = ["manual"], +) + +cc_dist_library( + name = "testinglib", + deps = ["//src/google/protobuf/testing"], + testonly = 1, + tags = ["manual"], +) + ################################################################################ # Distribution sources ################################################################################ diff --git a/src/google/protobuf/BUILD.bazel b/src/google/protobuf/BUILD.bazel index da98ae2fbb..0f0fd4df6f 100644 --- a/src/google/protobuf/BUILD.bazel +++ b/src/google/protobuf/BUILD.bazel @@ -87,6 +87,10 @@ proto_library( name = "descriptor_proto", srcs = ["descriptor.proto"], strip_import_prefix = "/src", + visibility = [ + "//:__pkg__", + "//pkg:__pkg__", + ], ) ################################################################################ @@ -760,8 +764,8 @@ cc_test( ], }), deps = [ - ":protobuf", ":lite_test_util", + ":protobuf", ":test_util", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", @@ -773,8 +777,8 @@ cc_test( srcs = ["lite_unittest.cc"], deps = [ ":cc_lite_test_protos", - ":protobuf", ":lite_test_util", + ":protobuf", "//src/google/protobuf/io", "//src/google/protobuf/stubs", "@com_google_googletest//:gtest", @@ -904,8 +908,8 @@ cc_test( }), deps = [ ":cc_test_protos", - ":protobuf", ":lite_test_util", + ":protobuf", "//src/google/protobuf/testing", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", @@ -1101,3 +1105,27 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "full_test_srcs", + srcs = glob( + include = [ + "*_test.cc", + "*unittest.cc", + ], + exclude = [ + "lite_unittest.cc", + "lite_arena_unittest.cc", + ], + ), + visibility = ["//pkg:__pkg__"], +) + +filegroup( + name = "lite_test_srcs", + srcs = [ + "lite_arena_unittest.cc", + "lite_unittest.cc", + ], + visibility = ["//pkg:__pkg__"], +) diff --git a/src/google/protobuf/compiler/BUILD.bazel b/src/google/protobuf/compiler/BUILD.bazel index 8cc430b3a1..419e8f5a1b 100644 --- a/src/google/protobuf/compiler/BUILD.bazel +++ b/src/google/protobuf/compiler/BUILD.bazel @@ -16,7 +16,10 @@ load("//build_defs:cpp_opts.bzl", "COPTS") proto_library( name = "plugin_proto", srcs = ["plugin.proto"], - visibility = ["//:__pkg__"], + visibility = [ + "//:__pkg__", + "//pkg:__pkg__", + ], deps = ["//:descriptor_proto"], ) @@ -162,6 +165,7 @@ cc_library( hdrs = ["mock_code_generator.h"], copts = COPTS, strip_include_prefix = "/src", + visibility = ["//pkg:__pkg__"], deps = [ ":code_generator", "//src/google/protobuf/io", @@ -300,3 +304,34 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]) + [ + "//src/google/protobuf/compiler/cpp:test_srcs", + "//src/google/protobuf/compiler/csharp:test_srcs", + "//src/google/protobuf/compiler/java:test_srcs", + "//src/google/protobuf/compiler/objectivec:test_srcs", + "//src/google/protobuf/compiler/php:test_srcs", + "//src/google/protobuf/compiler/python:test_srcs", + "//src/google/protobuf/compiler/ruby:test_srcs", + ], + visibility = ["//pkg:__pkg__"], +) + +filegroup( + name = "test_plugin_srcs", + srcs = ["test_plugin.cc"], + visibility = ["//pkg:__pkg__"], +) + +filegroup( + name = "test_proto_srcs", + srcs = [ + "//src/google/protobuf/compiler/cpp:test_proto_srcs", + ], + visibility = ["//pkg:__pkg__"], +) diff --git a/src/google/protobuf/compiler/cpp/BUILD.bazel b/src/google/protobuf/compiler/cpp/BUILD.bazel index 557580926b..098fd63e8e 100644 --- a/src/google/protobuf/compiler/cpp/BUILD.bazel +++ b/src/google/protobuf/compiler/cpp/BUILD.bazel @@ -202,3 +202,21 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) + +filegroup( + name = "test_proto_srcs", + srcs = [ + "test_bad_identifiers.proto", + "test_large_enum_value.proto", + ], + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) diff --git a/src/google/protobuf/compiler/csharp/BUILD.bazel b/src/google/protobuf/compiler/csharp/BUILD.bazel index 819c9dec27..ca9eb350a0 100644 --- a/src/google/protobuf/compiler/csharp/BUILD.bazel +++ b/src/google/protobuf/compiler/csharp/BUILD.bazel @@ -107,3 +107,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) diff --git a/src/google/protobuf/compiler/java/BUILD.bazel b/src/google/protobuf/compiler/java/BUILD.bazel index 66a809ec2e..619d71518a 100644 --- a/src/google/protobuf/compiler/java/BUILD.bazel +++ b/src/google/protobuf/compiler/java/BUILD.bazel @@ -124,3 +124,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) diff --git a/src/google/protobuf/compiler/objectivec/BUILD.bazel b/src/google/protobuf/compiler/objectivec/BUILD.bazel index 634dda2483..30b6237a4b 100644 --- a/src/google/protobuf/compiler/objectivec/BUILD.bazel +++ b/src/google/protobuf/compiler/objectivec/BUILD.bazel @@ -70,3 +70,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) diff --git a/src/google/protobuf/compiler/php/BUILD.bazel b/src/google/protobuf/compiler/php/BUILD.bazel index 82ba185fd9..2ce166b31b 100644 --- a/src/google/protobuf/compiler/php/BUILD.bazel +++ b/src/google/protobuf/compiler/php/BUILD.bazel @@ -32,3 +32,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) diff --git a/src/google/protobuf/compiler/python/BUILD.bazel b/src/google/protobuf/compiler/python/BUILD.bazel index 1924a9ac5b..d2d0ce12f7 100644 --- a/src/google/protobuf/compiler/python/BUILD.bazel +++ b/src/google/protobuf/compiler/python/BUILD.bazel @@ -54,3 +54,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) diff --git a/src/google/protobuf/compiler/ruby/BUILD.bazel b/src/google/protobuf/compiler/ruby/BUILD.bazel index 455865322d..73b0fcf96e 100644 --- a/src/google/protobuf/compiler/ruby/BUILD.bazel +++ b/src/google/protobuf/compiler/ruby/BUILD.bazel @@ -59,3 +59,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//src/google/protobuf/compiler:__pkg__"], +) diff --git a/src/google/protobuf/io/BUILD.bazel b/src/google/protobuf/io/BUILD.bazel index be7fb4c4bc..bf0d87cbdf 100644 --- a/src/google/protobuf/io/BUILD.bazel +++ b/src/google/protobuf/io/BUILD.bazel @@ -145,3 +145,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//pkg:__pkg__"], +) diff --git a/src/google/protobuf/stubs/BUILD.bazel b/src/google/protobuf/stubs/BUILD.bazel index 2446352ece..73def31f51 100644 --- a/src/google/protobuf/stubs/BUILD.bazel +++ b/src/google/protobuf/stubs/BUILD.bazel @@ -136,3 +136,12 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]), + visibility = ["//pkg:__pkg__"], +) diff --git a/src/google/protobuf/util/BUILD.bazel b/src/google/protobuf/util/BUILD.bazel index cf7bb1a4f6..0443c52f60 100644 --- a/src/google/protobuf/util/BUILD.bazel +++ b/src/google/protobuf/util/BUILD.bazel @@ -218,8 +218,13 @@ filegroup( srcs = [ "json_format.proto", "json_format_proto3.proto", + "message_differencer_unittest.proto", + "//src/google/protobuf/util/internal:test_proto_srcs", + ], + visibility = [ + "//pkg:__pkg__", + "//python:__pkg__", ], - visibility = ["//python:__pkg__"], ) proto_library( @@ -281,3 +286,14 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]) + [ + "//src/google/protobuf/util/internal:test_srcs", + ], + visibility = ["//pkg:__pkg__"], +) diff --git a/src/google/protobuf/util/internal/BUILD.bazel b/src/google/protobuf/util/internal/BUILD.bazel index d42ecad519..b1cdc69909 100644 --- a/src/google/protobuf/util/internal/BUILD.bazel +++ b/src/google/protobuf/util/internal/BUILD.bazel @@ -8,7 +8,10 @@ load("@rules_proto//proto:defs.bzl", "proto_library") load("//build_defs:cpp_opts.bzl", "COPTS") package( - default_visibility = ["//src/google/protobuf/util:__pkg__"], + default_visibility = [ + "//src/google/protobuf/util:__pkg__", + "//pkg:__pkg__", + ], ) cc_library( @@ -448,3 +451,18 @@ pkg_files( strip_prefix = strip_prefix.from_root(""), visibility = ["//src:__pkg__"], ) + +filegroup( + name = "test_srcs", + srcs = glob([ + "*_test.cc", + "*unittest.cc", + ]) + [ + "type_info_test_helper.cc", + ], +) + +filegroup( + name = "test_proto_srcs", + srcs = glob(["testdata/*.proto"]), +) From 74b2c7c7ce648a0a56e42f4263864b8503732a64 Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Tue, 31 May 2022 16:16:02 -0700 Subject: [PATCH 28/32] Move cmake file lists into src/file_lists.cmake. (#10027) This is in preparation for generating file lists automatically. I am putting the list of files under src/, not under cmake/, so that it will be next to the file list for automake (see #10029). I can certainly put the list back under cmake/, but in general, I think we probably want to move the cmake targets e.g. to src/CMakeLists.txt anyhow. --- cmake/libprotobuf-lite.cmake | 92 +------ cmake/libprotobuf.cmake | 106 +------- cmake/libprotoc.cmake | 116 +-------- cmake/tests.cmake | 180 ++----------- src/Makefile.am | 1 + src/file_lists.cmake | 492 +++++++++++++++++++++++++++++++++++ 6 files changed, 530 insertions(+), 457 deletions(-) create mode 100644 src/file_lists.cmake diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake index 83e970312c..9b1de677b4 100644 --- a/cmake/libprotobuf-lite.cmake +++ b/cmake/libprotobuf-lite.cmake @@ -1,93 +1,11 @@ -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 -) +# CMake definitions for libprotobuf_lite (the "lite" C++ protobuf runtime). -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/endian.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 -) +include(${protobuf_SOURCE_DIR}/src/file_lists.cmake) add_library(libprotobuf-lite ${protobuf_SHARED_OR_STATIC} - ${libprotobuf_lite_files} ${libprotobuf_lite_includes} ${protobuf_version_rc_file}) + ${libprotobuf_lite_srcs} + ${libprotobuf_lite_hdrs} + ${protobuf_version_rc_file}) 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) diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake index 07e4bcf57f..eff3676d47 100644 --- a/cmake/libprotobuf.cmake +++ b/cmake/libprotobuf.cmake @@ -1,106 +1,12 @@ -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_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 -) +# CMake definitions for libprotobuf (the "full" C++ protobuf runtime). -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_internal.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 -) +include(${protobuf_SOURCE_DIR}/src/file_lists.cmake) add_library(libprotobuf ${protobuf_SHARED_OR_STATIC} - ${libprotobuf_lite_files} ${libprotobuf_files} ${libprotobuf_includes} ${protobuf_version_rc_file}) + ${libprotobuf_lite_srcs} + ${libprotobuf_srcs} + ${libprotobuf_hdrs} + ${protobuf_version_rc_file}) 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) diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake index 15a47e53fa..72b4a1abb9 100644 --- a/cmake/libprotoc.cmake +++ b/cmake/libprotoc.cmake @@ -1,117 +1,11 @@ -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/enum.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/enum_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/extension.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/file.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/generator.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/helpers.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/map_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/padding_optimizer.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/parse_function_generator.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/primitive_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/service.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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/context.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/doc_comment.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_field_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/extension.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/extension_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/file.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/generator.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/generator_factory.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/helpers.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/kotlin_generator.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/map_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/map_field_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_builder.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_builder_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_field_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/name_resolver.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/primitive_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/primitive_field_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/service.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/shared_code_generator.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/string_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/string_field_lite.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_file.cc - ${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_message.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc - ${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/generator.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/helpers.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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 -) +# CMake definitions for libprotoc (the protobuf compiler library). -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_generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/file.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/helpers.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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/generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/kotlin_generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/names.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/generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/pyi_generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator.h -) +include(${protobuf_SOURCE_DIR}/src/file_lists.cmake) add_library(libprotoc ${protobuf_SHARED_OR_STATIC} - ${libprotoc_files} ${libprotoc_headers} ${protobuf_version_rc_file}) + ${libprotoc_srcs} + ${libprotoc_hdrs} + ${protobuf_version_rc_file}) 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) diff --git a/cmake/tests.cmake b/cmake/tests.cmake index 1905673bd4..7fe7d3a93e 100644 --- a/cmake/tests.cmake +++ b/cmake/tests.cmake @@ -39,59 +39,16 @@ else() add_library(GTest::gmock_main ALIAS gmock_main) endif() +include(${protobuf_SOURCE_DIR}/src/file_lists.cmake) + set(lite_test_protos - ${protobuf_SOURCE_DIR}/src/google/protobuf/map_lite_unittest.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_lite.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public_lite.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite.proto + ${protobuf_lite_test_protos_proto_srcs} ) set(tests_protos - ${protobuf_SOURCE_DIR}/src/google/protobuf/any_test.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/test_bad_identifiers.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/test_large_enum_value.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/map_proto2_unittest.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/map_unittest.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_arena.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_custom_options.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_drop_unknown_fields.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_embed_optimize_for.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_empty.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_enormous_descriptor.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_custom_option.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_enum.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite_imports_nonlite.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset_wire_format.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_field_presence.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_generic_services.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_optimize_for.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum2.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena_lite.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_lite.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_optional.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_well_known_types.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/anys.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/books.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/default_value.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/default_value_test.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/field_mask.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/maps.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/oneofs.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/proto3.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/struct.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/timestamp_duration.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/wrappers.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/json_format.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/json_format_proto3.proto - ${protobuf_SOURCE_DIR}/src/google/protobuf/util/message_differencer_unittest.proto + ${protobuf_test_protos_proto_srcs} + ${compiler_test_protos_files} + ${util_test_protos_files} ) macro(compile_proto_file filename) @@ -118,24 +75,16 @@ foreach(proto_file ${tests_protos}) set(tests_proto_files ${tests_proto_files} ${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 -) - add_library(protobuf-lite-test-common STATIC - ${common_lite_test_files} ${lite_test_proto_files}) + ${lite_test_util_srcs} ${lite_test_proto_files}) target_link_libraries(protobuf-lite-test-common libprotobuf-lite GTest::gmock) 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 + ${lite_test_util_srcs} + ${test_util_hdrs} + ${test_util_srcs} + ${mock_code_generator_srcs} + ${testing_srcs} ) add_library(protobuf-test-common STATIC @@ -143,85 +92,11 @@ add_library(protobuf-test-common STATIC target_link_libraries(protobuf-test-common libprotobuf GTest::gmock) 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/bootstrap_unittest.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message_size_unittest.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/metadata_test.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/move_unittest.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/plugin_unittest.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/unittest.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/unittest.inc - ${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/doc_comment_unittest.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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/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_test_files} + ${compiler_test_files} + ${io_test_files} + ${util_test_files} + ${stubs_test_files} ) if(protobuf_ABSOLUTE_TEST_PLUGIN_PATH) @@ -257,33 +132,20 @@ endif() target_link_libraries(tests protobuf-lite-test-common protobuf-test-common 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 + ${mock_code_generator_srcs} + ${testing_srcs} + ${test_plugin_srcs} ) 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 -) -add_executable(lite-test ${lite_test_files}) +add_executable(lite-test ${protobuf_lite_test_files}) target_link_libraries(lite-test protobuf-lite-test-common libprotobuf-lite GTest::gmock_main) add_test(NAME lite-test COMMAND lite-test ${protobuf_GTEST_ARGS}) -set(lite_arena_test_files - ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_arena_unittest.cc -) -add_executable(lite-arena-test ${lite_arena_test_files}) -target_link_libraries(lite-arena-test protobuf-lite-test-common libprotobuf-lite GTest::gmock_main) - -add_test(NAME lite-arena-test - COMMAND lite-arena-test ${protobuf_GTEST_ARGS}) - add_custom_target(check COMMAND tests DEPENDS tests test_plugin diff --git a/src/Makefile.am b/src/Makefile.am index 75806b7576..f88b75e6f4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -542,6 +542,7 @@ EXTRA_DIST = \ $(protoc_inputs) \ BUILD.bazel \ README.md \ + file_lists.cmake \ google/protobuf/BUILD.bazel \ google/protobuf/compiler/BUILD.bazel \ google/protobuf/compiler/cpp/BUILD.bazel \ diff --git a/src/file_lists.cmake b/src/file_lists.cmake new file mode 100644 index 0000000000..c59778c9d1 --- /dev/null +++ b/src/file_lists.cmake @@ -0,0 +1,492 @@ +# Source file lists +# +# This file should be included from other cmake definitions. + +set(libprotobuf_srcs + ${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_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_hdrs + ${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_internal.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 +) + +set(libprotobuf_lite_srcs + ${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_hdrs + ${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/endian.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 +) + +set(libprotoc_srcs + ${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/enum.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/enum_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/extension.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/file.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/generator.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/helpers.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/map_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/padding_optimizer.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/parse_function_generator.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/primitive_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/service.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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/context.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/doc_comment.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_field_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/extension.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/extension_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/file.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/generator.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/generator_factory.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/helpers.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/kotlin_generator.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/map_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/map_field_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_builder.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_builder_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_field_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/name_resolver.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/primitive_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/primitive_field_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/service.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/shared_code_generator.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/string_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/string_field_lite.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_file.cc + ${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_message.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc + ${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/generator.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/helpers.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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 +) + +set(libprotoc_hdrs + ${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_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/file.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/helpers.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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/generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/kotlin_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/names.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/generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/pyi_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator.h +) + +set(lite_test_util_srcs + ${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(test_util_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_tester.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util.cc +) + +set(test_util_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test_util.inc +) + +set(protobuf_test_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/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/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/text_format_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unknown_field_set_unittest.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 +) + +set(protobuf_test_protos_proto_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/any_test.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_proto2_unittest.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_unittest.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_arena.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_custom_options.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_drop_unknown_fields.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_embed_optimize_for.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_empty.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_enormous_descriptor.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_custom_option.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_enum.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite_imports_nonlite.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset_wire_format.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_field_presence.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_generic_services.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_optimize_for.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum2.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena_lite.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_lite.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_optional.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_well_known_types.proto +) + +set(protobuf_lite_test_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_arena_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_unittest.cc +) + +set(protobuf_lite_test_protos_proto_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_lite_unittest.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_lite.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public_lite.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite.proto +) + +set(compiler_test_files + ${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/bootstrap_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message_size_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/metadata_test.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/move_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/plugin_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/unittest.inc + ${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/doc_comment_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/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/plugin_unittest.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc +) + +set(mock_code_generator_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc +) + +set(test_plugin_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/test_plugin.cc +) + +set(compiler_test_protos_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/test_bad_identifiers.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/test_large_enum_value.proto +) + +set(io_test_files + ${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 +) + +set(testing_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/file.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/googletest.cc +) + +set(util_test_files + ${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 +) + +set(util_test_protos_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/anys.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/books.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/default_value.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/default_value_test.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/field_mask.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/maps.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/oneofs.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/proto3.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/struct.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/timestamp_duration.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/wrappers.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/json_format.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/json_format_proto3.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/message_differencer_unittest.proto +) + +set(stubs_test_files + ${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 +) From bd85edfbd9ba449f7a7bda61b8f7e7b9986c0dc1 Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Tue, 31 May 2022 17:52:26 -0700 Subject: [PATCH 29/32] [Bazel] Add a doc explaining our C++ build systems and distribution archives. (#10073) --- docs/cpp_build_systems.md | 344 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 344 insertions(+) create mode 100644 docs/cpp_build_systems.md diff --git a/docs/cpp_build_systems.md b/docs/cpp_build_systems.md new file mode 100644 index 0000000000..812ddef22f --- /dev/null +++ b/docs/cpp_build_systems.md @@ -0,0 +1,344 @@ +# How Protobuf supports multiple C++ build systems + +This document explains how the Protobuf project supports multiple C++ build +systems. + +## Background + +Protobuf primarily uses [Bazel](https://bazel.build) to build the Protobuf C++ +runtime and Protobuf compiler[^historical_sot]. However, there are several +different build systems in common use for C++, each one of which requires +essentially a complete copy of the same build definitions. + +[^historical_sot]: + On a historical note, prior to its [release as Open Source + Software](https://opensource.googleblog.com/2008/07/protocol-buffers-googles-data.html), + the Protobuf project was developed using Google's internal build system, which + was the predecessor to Bazel (the vast majority of Google's contributions + continue to be developed this way). The Open Source Protobuf project, however, + historically used Autoconf to build the C++ implementation. + Over time, other build systems (including Bazel) have been added, thanks in + large part to substantial contributions from the Open Source community. Since + the Protobuf project deals with multiple languages (all of which ultimately + rely upon C++, for the Protobuf compiler), Bazel is a natural choice for a + project-wide build system -- in fact, Bazel (and its predecessor, Blaze) + was designed in large part to support exactly this type of rich, + multi-language build. + +Currently, C++ Protobuf can be built with Bazel, Autotools, and CMake. Each of +these build systems has different semantics and structure, but share in common +the list of files needed to build the runtime and compiler. + +## Design + +### Extracting information from Bazel + +Bazel's Starlark API provides [aspects](https://bazel.build/rules/aspects) to +traverse the build graph, inspect build rules, define additional actions, and +expose information through +[providers](https://bazel.build/rules/rules#providers). For example, the +`cc_proto_library` rule uses an aspect to traverse the dependency graph of +`proto_library` rules, and dynamically attaches actions to generate C++ code +using the Protobuf compiler and compile using the C++ compiler. + +In order to support multiple build systems, the overall build structure is +defined once for each system, and expose frequently-changing metadata +from Bazel in a way that can be included from the build definition. Primarily, +this means exposing the list of source files in a way that can be included +in other build definitions. + +Two aspects are used to extract this information from the Bazel build +definitions: + +* `cc_file_list_aspect` extracts `srcs`, `hdrs`, and `textual_hdrs` from build + rules like `cc_library`. The sources are exposed through a provider named + `CcFileList`. +* `proto_file_list_aspect` extracts the `srcs` from a `proto_library`, and + also generates the expected filenames that would be generated by the + Protobuf compiler. This information is exposed through a provider named + `ProtoFileList`. + +On their own, these aspects have limited utility. However, they can be +instantiated by custom rules, so that an ordinary `BUILD.bazel` target can +produce outputs based on the information gleaned from these aspects. + +### (Aside) Distribution libraries + +Bazel's native `cc_library` rule is typically used on a "fine-grained" level, so +that, for example, lightweight unit tests can be written with narrow scope. +Although Bazel does build library artifacts (such as `.so` and `.a` files on +Linux), they correspond to `cc_library` rules. + +Since the entire "Protobuf library" includes many constituent `cc_library` +rules, a special rule, `cc_dist_library`, combines several fine-grained +libraries into a single, monolithic library. + +For the Protobuf project, these "distribution libraries" are intended to match +the granularity of the Autotools- and CMake-based builds. Since the Bazel-built +distribution library covers the rules with the source files needed by other +builds, the `cc_dist_library` rule invokes the `cc_file_list_aspect` on its +input libraries. The result is that a `cc_dist_library` rule not only produces +composite library artifacts, but also collect and provide the list of sources +that were inputs. + +For example: + +``` +$ cat cc_dist_library_example/BUILD.bazel +load("@rules_cc//cc:defs.bzl", "cc_library") +load("//pkg:cc_dist_library.bzl", "cc_dist_library") + +cc_library( + name = "a", + srcs = ["a.cc"], +) + +cc_library( + name = "b", + srcs = ["b.cc"], + deps = [":c"], +) + +# N.B.: not part of the cc_dist_library, even though it is in the deps of 'b': +cc_library( + name = "c", + srcs = ["c.cc"], +) + +cc_dist_library( + name = "lib", + deps = [ + ":a", + ":b", + ], + visbility = ["//visibility:public"], +) + +# Note: the output below has been formatted for clarity: +$ bazel cquery //cc_dist_library_example:lib \ + --output=starlark \ + --starlark:expr='providers(target)["//pkg:cc_dist_library.bzl%CcFileList"]' +struct( + hdrs = depset([]), + internal_hdrs = depset([]), + srcs = depset([ + , + , + ]), + textual_hdrs = depset([]), +) +``` + +The upshot is that the "coarse-grained" library can be defined by the Bazel +build, and then export the list of source files that are needed to reproduce the +library in a different build system. + +One major difference from most Bazel rule types is that the file list aspects do +not propagate. In other words, they only expose the immediate dependency's +sources, not transitive sources. This is for two reasons: + +1. Immediate dependencies are conceptually simple, while transitivity requires + substantially more thought. For example, if transitive dependencies were + considered, then some way would be needed to exclude dependencies that + should not be part of the final library (for example, a distribution library + for `//:protobuf` could be defined not to include all of + `//:protobuf_lite`). While dependency elision is an interesting design + problem, the protobuf library is small enough that directly listing + dependencies should not be problematic. +2. Dealing only with immediate dependencies gives finer-grained control over + what goes into the composite library. For example, a Starlark `select()` + could conditionally add fine-grained libraries to some builds, but not + others. + +Another subtlety for tests is due to Bazel internals. Internally, a slightly +different configuration is used when evaluating `cc_test` rules as compared to +`cc_dist_library`. If `cc_test` targets are included in a `cc_dist_library` +rule, and both are evaluated by Bazel, this can result in a build-time error: +the config used for the test contains additional options that tell Bazel how to +execute the test that the `cc_file_list_aspect` build config does not. Bazel +detects this as two conflicting actions generating the same outputs. (For +`cc_test` rules, the simplest workaround is to provide sources through a +`filegroup` or similar.) + +### File list generation + +Lists of input files are generated by Bazel in a format that can be imported to +other build systems. Currently, Automake- and CMake-style files can be +generated. + +The lists of files are derived from Bazel build targets. The sources can be: +* `cc_dist_library` rules (as described above) +* `proto_library` rules +* individual files +* `filegroup` rules +* `pkg_files` or `pkg_filegroup` rules from + https://github.com/bazelbuild/rules_pkg + +For example: + +``` +$ cat gen_file_lists_example/BUILD.bazel +load("@rules_proto//proto:defs.bzl", "proto_library") +load("//pkg:build_systems.bzl", "gen_cmake_file_lists") + +filegroup( + name = "doc_files", + srcs = [ + "README.md", + "englilsh_paper.md", + ], +) + +proto_library( + name = "message", + srcs = ["message.proto"], +) + +gen_cmake_file_lists( + name = "source_lists", + out = "source_lists.cmake", + src_libs = { + ":doc_files": "docs", + ":message": "buff", + "//cc_dist_library_example:c": "distlib", + }, +) + +$ bazel build gen_file_lists_example:source_lists +$ cat bazel-bin/gen_file_lists_example/source_lists.cmake +# Auto-generated by //gen_file_lists_example:source_lists +# +# This file contains lists of sources based on Bazel rules. It should +# be included from a hand-written CMake file that defines targets. +# +# Changes to this file will be overwritten based on Bazel definitions. + +if(${CMAKE_VERSION} VERSION_GREATER 3.10 OR ${CMAKE_VERSION} VERSION_EQUAL 3.10) + include_guard() +endif() + +# //gen_file_lists_example:doc_files +set(docs_files + gen_file_lists_example/README.md + gen_file_lists_example/englilsh_paper.md +) + +# //gen_file_lists_example:message +set(buff_proto_srcs + gen_file_lists_example/message.proto +) + +# //gen_file_lists_example:message +set(buff_srcs + gen_file_lists_example/message.proto.pb.cc +) + +# //gen_file_lists_example:message +set(buff_hdrs + gen_file_lists_example/message.proto.pb.h +) + +# //gen_file_lists_example:message +set(buff_files + gen_file_lists_example/message-descriptor-set.proto.bin +) + +# //cc_dist_library_example:c +set(distlib_srcs + cc_dist_library_example/a.cc + cc_dist_library_example/b.cc +) + +# //cc_dist_library_example:c +set(distlib_hdrs + +) +``` + +A hand-written CMake build rule could then use the generated file to define +libraries, such as: + +``` +include(source_lists.cmake) +add_library(distlib ${distlib_srcs} ${buff_srcs}) +``` + +In addition to `gen_cmake_file_lists`, there is also a `gen_automake_file_lists` +rule. These rules actually share most of the same implementation, but define +different file headers and different Starlark "fragment generator" functions +which format the generated list variables. + +### Protobuf usage + +The main C++ runtimes (lite and full) and the Protobuf compiler use their +corresponding `cc_dist_library` rules to generate file lists. For +`proto_library` targets, the file list generation can extract the source files +directly. For other targets, notably `cc_test` targets, the file list generators +use `filegroup` rules. + +In general, adding new targets to a non-Bazel build system in Protobuf (or +adding a new build system altogether) requires some one-time setup: + +1. The overall structure of the new build system has to be defined. It should + import lists of files and refer to them by variable, instead of listing + files directly. +2. (Only if the build system is new) A new rule type has to be added to + `//pkg:build_systems.bzl`. Most of the implementation is shared, but a + "fragment generator" is need to declare a file list variable, and the rule + type itself has to be defined and call the shared implementation. + +When files are added or deleted, or when the Protobuf Bazel structure is +changed, these changes may need to be reflected in the file list logic. These +are some example scenarios: + +* Files are added to (or removed from) the `srcs` of an existing `cc_library`: + no changes needed. If the `cc_library` is already part of a + `cc_dist_library`, then regenerating the source lists will reflect the + change. +* A `cc_library` is added: the new target may need to be added to the Protobuf + `cc_dist_library` targets, as appropriate. +* A `cc_library` is deleted: if a `cc_dist_library` depends upon the deleted + target, then a build-time error will result. The library needs to be removed + from the `cc_dist_library`. +* A `cc_test` is added or deleted: test sources are handled by `filegroup` + rules defined in the same package as the `cc_test` rule. The `filegroup`s + are usually given a name like `"test_srcs"`, and often use `glob()` to find + sources. This means that adding or removing a test may not require any extra + work, but this can be verified within the same package as the test rule. +* Test-only proto files are added: the `proto_library` might need to be added + to the file list map in `//pkg:BUILD.bazel`, and then the file added to + various build systems. However, most test-only protos are already exposed + through libraries like `//src/google/protobuf:test_protos`. + +If there are changes, then the regenerated file lists need to be copied back +into the repo. That way, the corresponding build systems can be used with a git +checkout, without needing to run Bazel first. + +### (Aside) Distribution archives + +A very similar set of rules is defined in `//pkg` to build source distribution +archives for releases. In addition to the full sources, Protobuf releases also +include source archives sliced by language, so that, for example, a Ruby-based +project can get just the sources needed to build the Ruby runtime. (The +per-language slices also include sources needed to build the protobuf compiler, +so they all effectively include the C++ runtime.) + +These archives are defined using rules from the +[rules_pkg](https://github.com/bazelbuild/rules_pkg) project. Although they are +similar to `cc_dist_library` and the file list generation rules, the goals are +different: the build system file lists described above only apply to C++, and +are organized according to what should or should not be included in different +parts of the build (e.g., no tests are included in the main library). On the +other hand, the distribution archives deal with languages other than C++, and +contain all the files that need to be distributed as part of a release (even for +C++, this is more than just the C++ sources). + +While it might be possible to use information from the `CcFileList` and +`ProtoFileList` providers to define the distribution files, additional files +(such as the various `BUILD.bazel` files) are also needed in the distribution +archive. The lists of distribution files can usually be generated by `glob()`, +anyhow, so sharing logic with the file list aspects may not be beneficial. + +Currently, all of the file lists are checked in. However, it would be possible +to build the file lists on-the-fly and include them in the distribution +archives, rather than checking them in. From 45b7f62b1b448471618ef279a001ce8189b15eef Mon Sep 17 00:00:00 2001 From: appledragon Date: Thu, 2 Jun 2022 05:18:16 +0800 Subject: [PATCH 30/32] use char to find instead of string (#10094) * [Bazel] Add a doc explaining our C++ build systems and distribution archives. (#10073) * use char to find instead of string Co-authored-by: David L. Jones --- .../compiler/csharp/csharp_helpers.cc | 6 +++--- .../compiler/objectivec/objectivec_enum.cc | 2 +- .../compiler/objectivec/objectivec_helpers.cc | 6 +++--- .../protobuf/compiler/php/php_generator.cc | 20 +++++++++---------- .../protobuf/compiler/ruby/ruby_generator.cc | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/google/protobuf/compiler/csharp/csharp_helpers.cc b/src/google/protobuf/compiler/csharp/csharp_helpers.cc index 73ca86805c..42d952721e 100644 --- a/src/google/protobuf/compiler/csharp/csharp_helpers.cc +++ b/src/google/protobuf/compiler/csharp/csharp_helpers.cc @@ -107,7 +107,7 @@ CSharpType GetCSharpType(FieldDescriptor::Type type) { } std::string StripDotProto(const std::string& proto_file) { - int lastindex = proto_file.find_last_of("."); + int lastindex = proto_file.find_last_of('.'); return proto_file.substr(0, lastindex); } @@ -122,7 +122,7 @@ std::string GetFileNamespace(const FileDescriptor* descriptor) { // input of "google/protobuf/foo_bar.proto" would result in "FooBar". std::string GetFileNameBase(const FileDescriptor* descriptor) { std::string proto_file = descriptor->name(); - int lastslash = proto_file.find_last_of("/"); + int lastslash = proto_file.find_last_of('/'); std::string base = proto_file.substr(lastslash + 1); return UnderscoresToPascalCase(StripDotProto(base)); } @@ -422,7 +422,7 @@ std::string GetOutputFile(const FileDescriptor* descriptor, return ""; // This will be ignored, because we've set an error. } namespace_suffix = ns.substr(base_namespace.length()); - if (namespace_suffix.find(".") == 0) { + if (namespace_suffix.find('.') == 0) { namespace_suffix = namespace_suffix.substr(1); } } diff --git a/src/google/protobuf/compiler/objectivec/objectivec_enum.cc b/src/google/protobuf/compiler/objectivec/objectivec_enum.cc index ea8f394ebe..31f5d4b9f1 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_enum.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_enum.cc @@ -128,7 +128,7 @@ void EnumGenerator::GenerateHeader(io::Printer* printer) { continue; } if (all_values_[i]->GetSourceLocation(&location)) { - std::string comments = BuildCommentsString(location, true).c_str(); + std::string comments = BuildCommentsString(location, true); if (comments.length() > 0) { if (i > 0) { printer->Print("\n"); diff --git a/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc b/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc index b15f580954..7f7ee34c48 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc @@ -990,9 +990,9 @@ static std::string HandleExtremeFloatingPoint(std::string val, return "-INFINITY"; } else { // float strings with ., e or E need to have f appended - if (add_float_suffix && (val.find(".") != std::string::npos || - val.find("e") != std::string::npos || - val.find("E") != std::string::npos)) { + if (add_float_suffix && (val.find('.') != std::string::npos || + val.find('e') != std::string::npos || + val.find('E') != std::string::npos)) { val += "f"; } return val; diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index 807082b102..7c9a3e3db6 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -334,7 +334,7 @@ std::string GeneratedMetadataFileName(const FileDescriptor* file, const Options& options) { const std::string& proto_file = file->name(); int start_index = 0; - int first_index = proto_file.find_first_of("/", start_index); + int first_index = proto_file.find_first_of('/', start_index); std::string result = ""; std::string segment = ""; @@ -347,7 +347,7 @@ std::string GeneratedMetadataFileName(const FileDescriptor* file, // Append directory name. std::string file_no_suffix; - int lastindex = proto_file.find_last_of("."); + int lastindex = proto_file.find_last_of('.'); if (proto_file == kEmptyFile) { return kEmptyMetadataFile; } else { @@ -371,12 +371,12 @@ std::string GeneratedMetadataFileName(const FileDescriptor* file, file_no_suffix.substr(start_index, first_index - start_index), true); result += ReservedNamePrefix(segment, file) + segment + "/"; start_index = first_index + 1; - first_index = file_no_suffix.find_first_of("/", start_index); + first_index = file_no_suffix.find_first_of('/', start_index); } } // Append file name. - int file_name_start = file_no_suffix.find_last_of("/"); + int file_name_start = file_no_suffix.find_last_of('/'); if (file_name_start == std::string::npos) { file_name_start = 0; } else { @@ -475,7 +475,7 @@ std::string PhpSetterTypeName(const FieldDescriptor* field, } if (field->is_repeated()) { // accommodate for edge case with multiple types. - size_t start_pos = type.find("|"); + size_t start_pos = type.find('|'); if (start_pos != std::string::npos) { type.replace(start_pos, 1, ">|array<"); } @@ -1207,7 +1207,7 @@ void GenerateHead(const FileDescriptor* file, io::Printer* printer) { } std::string FilenameToClassname(const std::string& filename) { - int lastindex = filename.find_last_of("."); + int lastindex = filename.find_last_of('.'); std::string result = filename.substr(0, lastindex); for (int i = 0; i < result.size(); i++) { if (result[i] == '/') { @@ -1227,7 +1227,7 @@ void GenerateMetadataFile(const FileDescriptor* file, const Options& options, GenerateHead(file, &printer); std::string fullname = FilenameToClassname(filename); - int lastindex = fullname.find_last_of("\\"); + int lastindex = fullname.find_last_of('\\'); if (lastindex != std::string::npos) { printer.Print( @@ -1263,7 +1263,7 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en, GenerateHead(file, &printer); std::string fullname = FilenameToClassname(filename); - int lastindex = fullname.find_last_of("\\"); + int lastindex = fullname.find_last_of('\\'); if (lastindex != std::string::npos) { printer.Print( @@ -1391,7 +1391,7 @@ void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message, GenerateHead(file, &printer); std::string fullname = FilenameToClassname(filename); - int lastindex = fullname.find_last_of("\\"); + int lastindex = fullname.find_last_of('\\'); if (lastindex != std::string::npos) { printer.Print( @@ -1508,7 +1508,7 @@ void GenerateServiceFile( GenerateHead(file, &printer); std::string fullname = FilenameToClassname(filename); - int lastindex = fullname.find_last_of("\\"); + int lastindex = fullname.find_last_of('\\'); if (!file->options().php_namespace().empty() || (!file->options().has_php_namespace() && !file->package().empty()) || diff --git a/src/google/protobuf/compiler/ruby/ruby_generator.cc b/src/google/protobuf/compiler/ruby/ruby_generator.cc index d4a53d5632..1e9e5c59da 100644 --- a/src/google/protobuf/compiler/ruby/ruby_generator.cc +++ b/src/google/protobuf/compiler/ruby/ruby_generator.cc @@ -68,7 +68,7 @@ std::string NumberToString(numeric_type value) { } std::string GetRequireName(const std::string& proto_file) { - int lastindex = proto_file.find_last_of("."); + int lastindex = proto_file.find_last_of('.'); return proto_file.substr(0, lastindex) + "_pb"; } @@ -421,7 +421,7 @@ int GeneratePackageModules(const FileDescriptor* file, io::Printer* printer) { // -> A.B.C if (package_name.find("::") != std::string::npos) { need_change_to_module = false; - } else if (package_name.find(".") != std::string::npos) { + } else if (package_name.find('.') != std::string::npos) { GOOGLE_LOG(WARNING) << "ruby_package option should be in the form of:" << " 'A::B::C' and not 'A.B.C'"; } From dc14b4be421431575d8fa139fa8a0825166e3d51 Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Wed, 1 Jun 2022 18:23:05 -0700 Subject: [PATCH 31/32] Change update_file_lists.sh to work based on Bazel-generated file lists (#10091) This commit changes update_file_lists.sh to use Bazel as the source of truth. Currently, only the cmake build is actually affected, but Automake should be fairly straightforward to convert. The file lists were originally factored out in PR#10027. This commit actually switches over to the Bazel-generated lists. --- cmake/libprotobuf.cmake | 1 - cmake/tests.cmake | 3 +- src/file_lists.cmake | 417 ++++++++++++++++++++++++++++++++++++++-- update_file_lists.sh | 195 +------------------ 4 files changed, 407 insertions(+), 209 deletions(-) diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake index eff3676d47..aa3efc9a68 100644 --- a/cmake/libprotobuf.cmake +++ b/cmake/libprotobuf.cmake @@ -3,7 +3,6 @@ include(${protobuf_SOURCE_DIR}/src/file_lists.cmake) add_library(libprotobuf ${protobuf_SHARED_OR_STATIC} - ${libprotobuf_lite_srcs} ${libprotobuf_srcs} ${libprotobuf_hdrs} ${protobuf_version_rc_file}) diff --git a/cmake/tests.cmake b/cmake/tests.cmake index 7fe7d3a93e..be1d429ab8 100644 --- a/cmake/tests.cmake +++ b/cmake/tests.cmake @@ -94,6 +94,7 @@ target_link_libraries(protobuf-test-common libprotobuf GTest::gmock) set(tests_files ${protobuf_test_files} ${compiler_test_files} + ${annotation_test_util_srcs} ${io_test_files} ${util_test_files} ${stubs_test_files} @@ -132,9 +133,9 @@ endif() target_link_libraries(tests protobuf-lite-test-common protobuf-test-common libprotoc libprotobuf GTest::gmock_main) set(test_plugin_files + ${test_plugin_files} ${mock_code_generator_srcs} ${testing_srcs} - ${test_plugin_srcs} ) add_executable(test_plugin ${test_plugin_files}) diff --git a/src/file_lists.cmake b/src/file_lists.cmake index c59778c9d1..620755aa29 100644 --- a/src/file_lists.cmake +++ b/src/file_lists.cmake @@ -1,11 +1,23 @@ -# Source file lists +# Auto-generated by //pkg:gen_src_file_lists_cmake # -# This file should be included from other cmake definitions. +# This file contains lists of sources based on Bazel rules. It should +# be included from a hand-written CMake file that defines targets. +# +# Changes to this file will be overwritten based on Bazel definitions. + +if(${CMAKE_VERSION} VERSION_GREATER 3.10 OR ${CMAKE_VERSION} VERSION_EQUAL 3.10) + include_guard() +endif() +# //pkg:protobuf set(libprotobuf_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/any.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/any.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/any_lite.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/api.pb.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/compiler/importer.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/parser.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.cc @@ -14,21 +26,48 @@ set(libprotobuf_srcs ${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.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_enum_util.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/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/gzip_stream.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/io/io_win32.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/io/printer.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/io/strtod.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/io/tokenizer.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/map_field.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/message.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/reflection_ops.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/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/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/substitute.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/time.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 @@ -54,12 +93,19 @@ set(libprotobuf_srcs ${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/wire_format_lite.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/wrappers.pb.cc ) +# //pkg:protobuf set(libprotobuf_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/any.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/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/compiler/importer.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/parser.h ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.h @@ -68,25 +114,76 @@ set(libprotobuf_hdrs ${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/endian.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/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_enum_util.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/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/gzip_stream.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/io/io_win32.h ${protobuf_SOURCE_DIR}/src/google/protobuf/io/printer.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/io/strtod.h ${protobuf_SOURCE_DIR}/src/google/protobuf/io/tokenizer.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.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_entry_lite.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/map_field_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_type_handler.h ${protobuf_SOURCE_DIR}/src/google/protobuf/message.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/message_lite.h ${protobuf_SOURCE_DIR}/src/google/protobuf/metadata.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/reflection.h ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_internal.h ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_ops.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/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/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/int128.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/mathutil.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/status_macros.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/statusor.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/stringprintf.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/strutil.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/substitute.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/template_util.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/time.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 @@ -94,15 +191,34 @@ set(libprotobuf_hdrs ${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/internal/datapiece.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/default_value_objectwriter.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/error_listener.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/field_mask_utility.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_escaping.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_objectwriter.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/json_stream_parser.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/location_tracker.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/object_location_tracker.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/object_source.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/object_writer.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/proto_writer.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/protostream_objectsource.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/protostream_objectwriter.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/structured_objectwriter.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/type_info.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/utility.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/wire_format_lite.h ${protobuf_SOURCE_DIR}/src/google/protobuf/wrappers.pb.h ) +# //pkg:protobuf_lite set(libprotobuf_lite_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/any_lite.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/arena.cc @@ -116,7 +232,6 @@ set(libprotobuf_lite_srcs ${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 @@ -138,6 +253,7 @@ set(libprotobuf_lite_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format_lite.cc ) +# //pkg:protobuf_lite set(libprotobuf_lite_hdrs ${protobuf_SOURCE_DIR}/src/google/protobuf/any.h ${protobuf_SOURCE_DIR}/src/google/protobuf/arena.h @@ -157,7 +273,6 @@ set(libprotobuf_lite_hdrs ${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 @@ -176,21 +291,28 @@ set(libprotobuf_lite_hdrs ${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/int128.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/mathutil.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/status_macros.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/statusor.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/stringprintf.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/stubs/time.h ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format_lite.h ) +# //pkg:protoc set(libprotoc_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/code_generator.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/command_line_interface.cc @@ -277,47 +399,192 @@ set(libprotoc_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/zip_writer.cc ) +# //pkg:protoc set(libprotoc_hdrs ${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_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/enum.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/enum_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/extension.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/field.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/file.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/generator.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/helpers.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/map_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message_layout_helper.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/names.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/options.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/padding_optimizer.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/parse_function_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/primitive_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/service.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/string_field.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_doc_comment.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_enum.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_enum_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_field_base.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_helpers.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_map_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_message.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_message_field.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/csharp/csharp_primitive_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_reflection_class.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_source_generator_base.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/csharp/csharp_wrapper_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/context.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/doc_comment.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_field_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/enum_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/extension.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/extension_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/file.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/java_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/generator_factory.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/helpers.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/kotlin_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/map_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/map_field_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_builder.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_builder_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_field_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/message_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/name_resolver.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/names.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/options.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/primitive_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/primitive_field_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/service.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/shared_code_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/string_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/java/string_field_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_extension.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_file.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/objectivec/objectivec_map_field.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_message.h + ${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.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.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/plugin.pb.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/helpers.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/pyi_generator.h - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/python/python_generator.h ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/scc.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/subprocess.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/zip_writer.h +) + +# //src/google/protobuf:well_known_type_protos +set(wkt_protos_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/any.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/api.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/duration.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/empty.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/field_mask.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/source_context.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/struct.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/timestamp.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/type.proto + ${protobuf_SOURCE_DIR}/src/google/protobuf/wrappers.proto ) +# //src/google/protobuf:descriptor_proto +set(descriptor_proto_proto_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.proto +) + +# //src/google/protobuf:descriptor_proto +set(descriptor_proto_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.proto.pb.cc +) + +# //src/google/protobuf:descriptor_proto +set(descriptor_proto_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor.proto.pb.h +) + +# //src/google/protobuf:descriptor_proto +set(descriptor_proto_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/descriptor_proto-descriptor-set.proto.bin +) + +# //src/google/protobuf/compiler:plugin_proto +set(plugin_proto_proto_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/plugin.proto +) + +# //src/google/protobuf/compiler:plugin_proto +set(plugin_proto_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/plugin.proto.pb.cc +) + +# //src/google/protobuf/compiler:plugin_proto +set(plugin_proto_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/plugin.proto.pb.h +) + +# //src/google/protobuf/compiler:plugin_proto +set(plugin_proto_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/plugin_proto-descriptor-set.proto.bin +) + +# //pkg:lite_test_util set(lite_test_util_srcs ${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 ) +# //pkg:lite_test_util +set(lite_test_util_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/arena_test_util.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_lite_test_util.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test_util_impl.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/proto3_lite_unittest.inc + ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util_lite.h +) + +# //pkg:test_util set(test_util_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_tester.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util.cc ) +# //pkg:test_util set(test_util_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test.inc + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test_util.h ${protobuf_SOURCE_DIR}/src/google/protobuf/map_test_util.inc + ${protobuf_SOURCE_DIR}/src/google/protobuf/message_unittest.inc + ${protobuf_SOURCE_DIR}/src/google/protobuf/reflection_tester.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util.inc + ${protobuf_SOURCE_DIR}/src/google/protobuf/test_util_lite.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/wire_format_unittest.inc ) +# //src/google/protobuf:full_test_srcs set(protobuf_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/any_test.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/arena_unittest.cc @@ -333,15 +600,12 @@ set(protobuf_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/inlined_string_field_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 @@ -349,9 +613,9 @@ set(protobuf_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/unknown_field_set_unittest.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 ) +# //src/google/protobuf:test_protos set(protobuf_test_protos_proto_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/any_test.proto ${protobuf_SOURCE_DIR}/src/google/protobuf/map_proto2_unittest.proto @@ -384,11 +648,84 @@ set(protobuf_test_protos_proto_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_well_known_types.proto ) +# //src/google/protobuf:test_protos +set(protobuf_test_protos_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/any_test.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_proto2_unittest.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_unittest.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_arena.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_custom_options.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_drop_unknown_fields.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_embed_optimize_for.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_empty.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_enormous_descriptor.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_custom_option.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_enum.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite_imports_nonlite.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset_wire_format.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_field_presence.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_generic_services.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_optimize_for.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum2.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena_lite.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_lite.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_optional.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_well_known_types.proto.pb.cc +) + +# //src/google/protobuf:test_protos +set(protobuf_test_protos_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/any_test.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_proto2_unittest.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_unittest.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_arena.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_custom_options.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_drop_unknown_fields.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_embed_optimize_for.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_empty.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_enormous_descriptor.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_custom_option.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lazy_dependencies_enum.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite_imports_nonlite.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_mset_wire_format.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_field_presence.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_no_generic_services.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_optimize_for.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_preserve_unknown_enum2.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_arena_lite.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_lite.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_proto3_optional.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_well_known_types.proto.pb.h +) + +# //src/google/protobuf:test_protos +set(protobuf_test_protos_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/test_protos-descriptor-set.proto.bin +) + +# //src/google/protobuf:lite_test_srcs set(protobuf_lite_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_arena_unittest.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_unittest.cc ) +# //src/google/protobuf:lite_test_protos set(protobuf_lite_test_protos_proto_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/map_lite_unittest.proto ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_lite.proto @@ -396,9 +733,29 @@ set(protobuf_lite_test_protos_proto_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite.proto ) +# //src/google/protobuf:lite_test_protos +set(protobuf_lite_test_protos_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_lite_unittest.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_lite.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public_lite.proto.pb.cc + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite.proto.pb.cc +) + +# //src/google/protobuf:lite_test_protos +set(protobuf_lite_test_protos_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/map_lite_unittest.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_lite.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_import_public_lite.proto.pb.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/unittest_lite.proto.pb.h +) + +# //src/google/protobuf:lite_test_protos +set(protobuf_lite_test_protos_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/lite_test_protos-descriptor-set.proto.bin +) + +# //src/google/protobuf/compiler:test_srcs set(compiler_test_files - ${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/bootstrap_unittest.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/message_size_unittest.cc @@ -406,7 +763,6 @@ set(compiler_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/move_unittest.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/plugin_unittest.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/unittest.cc - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/unittest.inc ${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 @@ -418,19 +774,38 @@ set(compiler_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc ) +# //pkg:compiler_annotation_test_util +set(annotation_test_util_srcs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/annotation_test_util.cc +) + +# //pkg:compiler_annotation_test_util +set(annotation_test_util_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/annotation_test_util.h +) + +# //pkg:compiler_mock_code_generator set(mock_code_generator_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.cc ) -set(test_plugin_srcs - ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/test_plugin.cc +# //pkg:compiler_mock_code_generator +set(mock_code_generator_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/mock_code_generator.h ) +# //src/google/protobuf/compiler:test_proto_srcs set(compiler_test_protos_files ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/test_bad_identifiers.proto ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/cpp/test_large_enum_value.proto ) +# //src/google/protobuf/compiler:test_plugin_srcs +set(test_plugin_files + ${protobuf_SOURCE_DIR}/src/google/protobuf/compiler/test_plugin.cc +) + +# //src/google/protobuf/io:test_srcs set(io_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/io/coded_stream_unittest.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/io/io_win32_unittest.cc @@ -439,11 +814,19 @@ set(io_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/io/zero_copy_stream_unittest.cc ) +# //pkg:testinglib set(testing_srcs ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/file.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/googletest.cc ) +# //pkg:testinglib +set(testing_hdrs + ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/file.h + ${protobuf_SOURCE_DIR}/src/google/protobuf/testing/googletest.h +) + +# //src/google/protobuf/util:test_srcs set(util_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/util/delimited_message_util_test.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/util/field_comparator_test.cc @@ -460,6 +843,7 @@ set(util_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/util/type_resolver_util_test.cc ) +# //src/google/protobuf/util:test_proto_srcs set(util_test_protos_files ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/anys.proto ${protobuf_SOURCE_DIR}/src/google/protobuf/util/internal/testdata/books.proto @@ -477,6 +861,7 @@ set(util_test_protos_files ${protobuf_SOURCE_DIR}/src/google/protobuf/util/message_differencer_unittest.proto ) +# //src/google/protobuf/stubs:test_srcs set(stubs_test_files ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/bytestream_unittest.cc ${protobuf_SOURCE_DIR}/src/google/protobuf/stubs/common_unittest.cc diff --git a/update_file_lists.sh b/update_file_lists.sh index 3ef366dafe..2678614ede 100755 --- a/update_file_lists.sh +++ b/update_file_lists.sh @@ -1,195 +1,8 @@ #!/bin/bash -u -# This script copies source file lists from src/Makefile.am to cmake files. +# This script generates file lists from Bazel, e.g., for cmake. -get_variable_value() { - local FILENAME=$1 - local VARNAME=$2 - awk " - BEGIN { start = 0; } - /^$VARNAME =/ { start = 1; } - { if (start) { print \$0; } } - /\\\\\$/ { next; } - { start = 0; } - " $FILENAME \ - | sed "s/^$VARNAME =//" \ - | sed "s/[ \\]//g" \ - | grep -v "^\\$" \ - | grep -v "^$" \ - | LC_ALL=C sort | uniq -} - -get_header_files() { - get_variable_value $@ | grep '\.h$' -} - -get_source_files() { - get_variable_value $@ | grep "cc$\|inc$" -} - -get_proto_files() { - get_variable_value $@ | grep "pb.cc$" | sed "s/pb.cc/proto/" -} - -sort_files() { - for FILE in $@; do - echo $FILE - done | LC_ALL=C sort | uniq -} - -MAKEFILE=src/Makefile.am - -[ -f "$MAKEFILE" ] || { - echo "Cannot find: $MAKEFILE" - exit 1 -} - -# Extract file lists from src/Makefile.am -GZHEADERS=$(get_variable_value $MAKEFILE GZHEADERS) -LIBPROTOBUF_HEADERS=$(get_variable_value $MAKEFILE nobase_include_HEADERS | grep -v /compiler/) -LIBPROTOBUF_HEADERS=$(sort_files $GZHEADERS $LIBPROTOBUF_HEADERS) -LIBPROTOBUF_LITE_SOURCES=$(get_source_files $MAKEFILE libprotobuf_lite_la_SOURCES) -LIBPROTOBUF_SOURCES=$(get_source_files $MAKEFILE libprotobuf_la_SOURCES) -LIBPROTOC_SOURCES=$(get_source_files $MAKEFILE libprotoc_la_SOURCES) -LIBPROTOC_HEADERS=$(get_variable_value $MAKEFILE nobase_include_HEADERS | grep /compiler/) -LITE_PROTOS=$(get_proto_files $MAKEFILE protoc_lite_outputs) -PROTOS=$(get_proto_files $MAKEFILE protoc_outputs) -WKT_PROTOS=$(get_variable_value $MAKEFILE nobase_dist_proto_DATA) -COMMON_TEST_SOURCES=$(get_source_files $MAKEFILE COMMON_TEST_SOURCES) -COMMON_LITE_TEST_SOURCES=$(get_source_files $MAKEFILE COMMON_LITE_TEST_SOURCES) -TEST_SOURCES=$(get_source_files $MAKEFILE protobuf_test_SOURCES) -NON_MSVC_TEST_SOURCES=$(get_source_files $MAKEFILE NON_MSVC_TEST_SOURCES) -LITE_TEST_SOURCES=$(get_source_files $MAKEFILE protobuf_lite_test_SOURCES) -LITE_ARENA_TEST_SOURCES=$(get_source_files $MAKEFILE protobuf_lite_arena_test_SOURCES) -TEST_PLUGIN_SOURCES=$(get_source_files $MAKEFILE test_plugin_SOURCES) - -################################################################################ -# Update cmake files. -################################################################################ - -CMAKE_DIR=cmake -EXTRACT_INCLUDES_BAT=cmake/extract_includes.bat.in -[ -d "$CMAKE_DIR" ] || { - echo "Cannot find: $CMAKE_DIR" - exit 1 -} - -[ -f "$EXTRACT_INCLUDES_BAT" ] || { - echo "Cannot find: $EXTRACT_INCLUDES_BAT" - exit 1 -} - -set_cmake_value() { - local FILENAME=$1 - local VARNAME=$2 - local PREFIX=$3 - shift - shift - shift - awk -v values="$*" -v prefix="$PREFIX" " - BEGIN { start = 0; } - /^set\\($VARNAME/ { - start = 1; - print \$0; - len = split(values, vlist, \" \"); - for (i = 1; i <= len; ++i) { - printf(\" \"); - if (vlist[i] !~ /^\\\$/) { - printf(\"%s\", prefix); - } - printf(\"%s\\n\", vlist[i]); - } - next; - } - start && /^\\)/ { - start = 0; - } - !start { - print \$0; - } - " $FILENAME > /tmp/$$ - cp /tmp/$$ $FILENAME -} - - -# Replace file lists in cmake files. -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 -set_cmake_value $CMAKE_DIR/libprotoc.cmake libprotoc_headers $CMAKE_PREFIX $LIBPROTOC_HEADERS -set_cmake_value $CMAKE_DIR/tests.cmake lite_test_protos "" $LITE_PROTOS -set_cmake_value $CMAKE_DIR/tests.cmake tests_protos "" $PROTOS -set_cmake_value $CMAKE_DIR/tests.cmake common_test_files $CMAKE_PREFIX '${common_lite_test_files}' $COMMON_TEST_SOURCES -set_cmake_value $CMAKE_DIR/tests.cmake common_lite_test_files $CMAKE_PREFIX $COMMON_LITE_TEST_SOURCES -set_cmake_value $CMAKE_DIR/tests.cmake tests_files $CMAKE_PREFIX $TEST_SOURCES -set_cmake_value $CMAKE_DIR/tests.cmake non_msvc_tests_files $CMAKE_PREFIX $NON_MSVC_TEST_SOURCES -set_cmake_value $CMAKE_DIR/tests.cmake lite_test_files $CMAKE_PREFIX $LITE_TEST_SOURCES -set_cmake_value $CMAKE_DIR/tests.cmake lite_arena_test_files $CMAKE_PREFIX $LITE_ARENA_TEST_SOURCES - -# Generate extract_includes.bat -echo "mkdir include" > $EXTRACT_INCLUDES_BAT -for INCLUDE in $LIBPROTOBUF_HEADERS $LIBPROTOC_HEADERS $WKT_PROTOS; do - INCLUDE_DIR=$(dirname "$INCLUDE") - while [ ! "$INCLUDE_DIR" = "." ]; do - echo "mkdir include\\${INCLUDE_DIR//\//\\}" - INCLUDE_DIR=$(dirname "$INCLUDE_DIR") - done -done | sort | uniq >> $EXTRACT_INCLUDES_BAT -for INCLUDE in $(sort_files $LIBPROTOBUF_HEADERS $LIBPROTOC_HEADERS) $WKT_PROTOS; do - WINPATH=${INCLUDE//\//\\} - echo "copy \"\${PROTOBUF_SOURCE_WIN32_PATH}\\..\\src\\$WINPATH\" include\\$WINPATH" >> $EXTRACT_INCLUDES_BAT -done - -################################################################################ -# Update bazel BUILD files. -################################################################################ - -set_bazel_value() { - local FILENAME=$1 - local VARNAME=$2 - local PREFIX=$3 - shift - shift - shift - awk -v values="$*" -v prefix="$PREFIX" " - BEGIN { start = 0; } - /# AUTOGEN\\($VARNAME\\)/ { - start = 1; - print \$0; - # replace \$0 with indent. - sub(/#.*/, \"\", \$0) - len = split(values, vlist, \" \"); - for (i = 1; i <= len; ++i) { - printf(\"%s\\\"%s%s\\\",\n\", \$0, prefix, vlist[i]); - } - next; - } - start && /\]/ { - start = 0 - } - !start { - print \$0; - } - " $FILENAME > /tmp/$$ - cp /tmp/$$ $FILENAME -} - - -BAZEL_BUILD=./BUILD -BAZEL_PREFIX="src/" -if [ -f "$BAZEL_BUILD" ]; then - set_bazel_value $BAZEL_BUILD protobuf_lite_srcs $BAZEL_PREFIX $LIBPROTOBUF_LITE_SOURCES - set_bazel_value $BAZEL_BUILD protobuf_srcs $BAZEL_PREFIX $LIBPROTOBUF_SOURCES - set_bazel_value $BAZEL_BUILD protoc_lib_srcs $BAZEL_PREFIX $LIBPROTOC_SOURCES - set_bazel_value $BAZEL_BUILD lite_test_protos "" $LITE_PROTOS - set_bazel_value $BAZEL_BUILD well_known_protos "" $WKT_PROTOS - set_bazel_value $BAZEL_BUILD test_protos "" $PROTOS - set_bazel_value $BAZEL_BUILD common_test_srcs $BAZEL_PREFIX $COMMON_LITE_TEST_SOURCES $COMMON_TEST_SOURCES - set_bazel_value $BAZEL_BUILD test_srcs $BAZEL_PREFIX $TEST_SOURCES - set_bazel_value $BAZEL_BUILD non_msvc_test_srcs $BAZEL_PREFIX $NON_MSVC_TEST_SOURCES - set_bazel_value $BAZEL_BUILD test_plugin_srcs $BAZEL_PREFIX $TEST_PLUGIN_SOURCES -else - echo "Skipped BUILD file update." -fi +set -e +bazel build //pkg:gen_src_file_lists +cp -v bazel-bin/pkg/src_file_lists.cmake src/file_lists.cmake From 67f46d249565b5002795c164625eb237437c966a Mon Sep 17 00:00:00 2001 From: "David L. Jones" Date: Wed, 1 Jun 2022 18:24:53 -0700 Subject: [PATCH 32/32] Switch normal macos build to use cmake. (#10092) --- kokoro/macos/cpp/build.sh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/kokoro/macos/cpp/build.sh b/kokoro/macos/cpp/build.sh index bae2ebbc5f..fae3b3012a 100755 --- a/kokoro/macos/cpp/build.sh +++ b/kokoro/macos/cpp/build.sh @@ -2,10 +2,29 @@ # # Build file to set up and run tests -# Change to repo root +set -eux +set -o pipefail + +if [[ -h /tmpfs ]] && [[ ${PWD} == /tmpfs/src ]]; then + # Workaround for internal Kokoro bug: b/227401944 + cd /Volumes/BuildData/tmpfs/src +fi + +# Default environment variables used by cmake build: +: ${CMAKE_CONFIG_TYPE:=Debug} +export CMAKE_CONFIG_TYPE +: ${CTEST_PARALLEL_LEVEL:=4} +export CTEST_PARALLEL_LEVEL + +# Run from the project root directory. cd $(dirname $0)/../../.. -# Prepare worker environment to run tests -source kokoro/macos/prepare_build_macos_rc +# +# Update submodules +# +git submodule update --init --recursive -./tests.sh cpp +# +# Run build +# +kokoro/common/cmake.sh