diff --git a/BUILD.bazel b/BUILD.bazel index cf3352b06d..637882c49e 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -322,7 +322,7 @@ proto_lang_toolchain( "//:descriptor_proto", ], command_line = "--cpp_out=$(OUT)", - runtime = ":protobuf", + runtime = "//src/google/protobuf:protobuf_nowkt", visibility = ["//visibility:public"], ) diff --git a/conformance/BUILD.bazel b/conformance/BUILD.bazel index 5330bf04d4..dde5202281 100644 --- a/conformance/BUILD.bazel +++ b/conformance/BUILD.bazel @@ -139,6 +139,9 @@ cc_library( deps = [ ":conformance_cc_proto", "//src/google/protobuf:descriptor_legacy", + "//src/google/protobuf/util:differencer", + "//src/google/protobuf/util:json_util", + "//src/google/protobuf/util:type_resolver_util", "@com_google_absl//absl/strings", "@com_google_absl//absl/strings:str_format", ], diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel index d5a719ca88..265a0b978d 100644 --- a/examples/BUILD.bazel +++ b/examples/BUILD.bazel @@ -36,13 +36,19 @@ cc_proto_library( cc_binary( name = "add_person_cpp", srcs = ["add_person.cc"], - deps = [":addressbook_cc_proto"], + deps = [ + ":addressbook_cc_proto", + "@com_google_protobuf//:protobuf", + ], ) cc_binary( name = "list_people_cpp", srcs = ["list_people.cc"], - deps = [":addressbook_cc_proto"], + deps = [ + ":addressbook_cc_proto", + "@com_google_protobuf//:protobuf", + ], ) # Similar to cc_proto_library but for Java. diff --git a/pkg/BUILD.bazel b/pkg/BUILD.bazel index bd1796b44b..57a39bc509 100644 --- a/pkg/BUILD.bazel +++ b/pkg/BUILD.bazel @@ -163,7 +163,7 @@ cc_dist_library( deps = [ "//src/google/protobuf:arena_align", "//src/google/protobuf:protobuf_nowkt", - "//src/google/protobuf:wkt_cc_proto", + "//src/google/protobuf:cmake_wkt_cc_proto", "//src/google/protobuf/compiler:importer", "//src/google/protobuf/json", "//src/google/protobuf/util:delimited_message_util", @@ -200,7 +200,7 @@ cc_dist_library( testonly = 1, tags = ["manual"], deps = ["//src/google/protobuf:lite_test_util"], - dist_deps = [":protobuf_lite"], + dist_deps = [":protobuf"], ) cc_dist_library( diff --git a/src/google/protobuf/BUILD.bazel b/src/google/protobuf/BUILD.bazel index 69b881db13..908bf6811b 100644 --- a/src/google/protobuf/BUILD.bazel +++ b/src/google/protobuf/BUILD.bazel @@ -107,6 +107,18 @@ WELL_KNOWN_TYPES = [ "wrappers", ] +proto_library( + name = "wkt_proto", + visibility = ["//visibility:private"], + deps = [wkt + "_proto" for wkt in WELL_KNOWN_TYPES], +) + +cc_proto_library( + name = "wkt_cc_proto", + visibility = ["//pkg:__pkg__"], + deps = ["wkt_proto"], +) + # When we generate code for the well-known types, we put the resulting files in # wkt/google/protobuf and add ./wkt to the include paths below. This is a # somewhat strange setup but is necessary to satisfy these two constraints: @@ -121,12 +133,12 @@ genrule( ["wkt/google/protobuf/" + wkt + ".pb.h" for wkt in WELL_KNOWN_TYPES] + ["wkt/google/protobuf/" + wkt + ".pb.cc" for wkt in WELL_KNOWN_TYPES], cmd = """ - $(execpath //src/google/protobuf/compiler:protoc_nowkt) \ + $(execpath //:protoc) \ --cpp_out=dllexport_decl=PROTOBUF_EXPORT:$(RULEDIR)/wkt \ --proto_path=$$(dirname $$(dirname $$(dirname $(location any.proto)))) \ $(SRCS) """, - exec_tools = ["//src/google/protobuf/compiler:protoc_nowkt"], + exec_tools = ["//:protoc"], visibility = ["//visibility:private"], ) @@ -139,8 +151,11 @@ staleness_test( tags = ["manual"], ) +# This is necessary for our generated cmake configs to pick up the checked in +# WKT files. +# TODO(b/246826624) Remove this once we generate WKT code from cmake. cc_library( - name = "wkt_cc_proto", + name = "cmake_wkt_cc_proto", srcs = ["wkt/google/protobuf/" + wkt + ".pb.cc" for wkt in WELL_KNOWN_TYPES], hdrs = ["wkt/google/protobuf/" + wkt + ".pb.h" for wkt in WELL_KNOWN_TYPES], copts = COPTS, @@ -466,6 +481,7 @@ cc_library( include_prefix = "google/protobuf", linkopts = LINK_OPTS, visibility = [ + "//:__pkg__", "//pkg:__pkg__", "//src/google/protobuf:__subpackages__", ], @@ -841,6 +857,7 @@ cc_library( visibility = ["//:__subpackages__"], deps = [ "//src/google/protobuf/io", + "//src/google/protobuf/util:differencer", "@com_google_googletest//:gtest", ], ) @@ -993,9 +1010,11 @@ cc_test( ":cc_test_protos", ":protobuf", ":test_util", + ":test_util2", "//src/google/protobuf/io", "//src/google/protobuf/stubs", "//src/google/protobuf/testing", + "//src/google/protobuf/util:differencer", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", ], @@ -1115,6 +1134,9 @@ cc_test( ":cc_test_protos", ":protobuf", ":test_util", + ":test_util2", + "//src/google/protobuf/util:differencer", + "//src/google/protobuf/util:time_util", "@com_google_absl//absl/container:flat_hash_map", "@com_google_absl//absl/container:flat_hash_set", "@com_google_googletest//:gtest", @@ -1136,6 +1158,7 @@ cc_test( "//src/google/protobuf/io", "//src/google/protobuf/stubs", "//src/google/protobuf/testing", + "//src/google/protobuf/util:differencer", "@com_google_absl//absl/log:scoped_mock_log", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", @@ -1294,6 +1317,7 @@ cc_test( "//src/google/protobuf/io", "//src/google/protobuf/stubs", "//src/google/protobuf/testing", + "@com_google_absl//absl/log:die_if_null", "@com_google_absl//absl/log:scoped_mock_log", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", @@ -1356,6 +1380,7 @@ cc_test( "//src/google/protobuf/io", "//src/google/protobuf/stubs", "//src/google/protobuf/testing", + "//src/google/protobuf/util:differencer", "@com_google_absl//absl/log:scoped_mock_log", "@com_google_googletest//:gtest", "@com_google_googletest//:gtest_main", @@ -1368,7 +1393,9 @@ cc_test( deps = [ ":cc_test_protos", ":protobuf", + "//src/google/protobuf/compiler:importer", "//src/google/protobuf/compiler:retention", + "//src/google/protobuf/util:differencer", "@com_google_googletest//:gtest_main", ], ) diff --git a/src/google/protobuf/compiler/BUILD.bazel b/src/google/protobuf/compiler/BUILD.bazel index aefe2161af..a2171c806d 100644 --- a/src/google/protobuf/compiler/BUILD.bazel +++ b/src/google/protobuf/compiler/BUILD.bazel @@ -102,11 +102,15 @@ cc_library( ) cc_library( - name = "protoc_lib_nowkt", + name = "protoc_lib", srcs = [ "main.cc", ], copts = COPTS, + visibility = [ + "//:__pkg__", + "//pkg:__pkg__", + ], deps = [ ":code_generator", ":command_line_interface", @@ -124,29 +128,6 @@ cc_library( ], ) -cc_binary( - name = "protoc_nowkt", - copts = COPTS, - linkopts = LINK_OPTS, - visibility = [ - "//src/google/protobuf:__pkg__", - ], - deps = [":protoc_lib_nowkt"], -) - -cc_library( - name = "protoc_lib", - copts = COPTS, - visibility = [ - "//:__pkg__", - "//pkg:__pkg__", - ], - deps = [ - ":protoc_lib_nowkt", - "//:protobuf", - ], -) - # Note: this is an alias for now. In the future, this rule will become the # cc_binary for protoc, and //:protoc will become an alias. alias( diff --git a/src/google/protobuf/util/BUILD.bazel b/src/google/protobuf/util/BUILD.bazel index d25694c7c0..3afe464cff 100644 --- a/src/google/protobuf/util/BUILD.bazel +++ b/src/google/protobuf/util/BUILD.bazel @@ -214,15 +214,6 @@ proto_library( testonly = 1, srcs = ["json_format.proto"], strip_import_prefix = "/src", - deps = [ - "//:any_proto", - "//:duration_proto", - "//:field_mask_proto", - "//:struct_proto", - "//:test_protos", - "//:timestamp_proto", - "//:wrappers_proto", - ], ) cc_proto_library( diff --git a/src/google/protobuf/util/json_format.proto b/src/google/protobuf/util/json_format.proto index a2703ce029..26c53dd9b2 100644 --- a/src/google/protobuf/util/json_format.proto +++ b/src/google/protobuf/util/json_format.proto @@ -38,9 +38,6 @@ syntax = "proto2"; package protobuf_unittest; -import "google/protobuf/any.proto"; -import "google/protobuf/struct.proto"; - message TestFlagsAndStrings { required int32 A = 1; repeated group RepeatedGroup = 2 {