# Protocol Buffers - Google's data interchange format # Copyright 2023 Google LLC. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file or at # https://developers.google.com/open-source/licenses/bsd load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix") load("@rules_rust//rust:defs.bzl", "rust_library") load("//bazel:proto_library.bzl", "proto_library") load( "//rust:defs.bzl", "rust_cc_proto_library", "rust_proto_library", "rust_upb_proto_library", ) package( default_visibility = ["//rust:__subpackages__"], ) pkg_files( name = "test_proto_srcs", srcs = glob(["*.proto"]), prefix = "proto", strip_prefix = strip_prefix.from_root(""), ) pkg_files( name = "google_protobuf_proto_srcs", srcs = [ "//src/google/protobuf:cpp_features_proto_srcs", "//src/google/protobuf:descriptor_proto_srcs", ], prefix = "proto", strip_prefix = strip_prefix.from_root("src"), ) proto_library( name = "parent_proto", srcs = ["parent.proto"], ) proto_library( name = "child_proto", testonly = True, srcs = ["child.proto"], exports = [":parent_proto"], deps = [":parent_proto"], ) rust_upb_proto_library( name = "parent_upb_rust_proto", testonly = True, deps = [":parent_proto"], ) rust_upb_proto_library( name = "child_upb_rust_proto", testonly = True, deps = [":child_proto"], ) rust_cc_proto_library( name = "parent_cpp_rust_proto", testonly = True, deps = [":parent_proto"], ) rust_cc_proto_library( name = "child_cpp_rust_proto", testonly = True, deps = [":child_proto"], ) proto_library( name = "dots_in_package_proto", testonly = True, srcs = ["dots_in_package.proto"], ) rust_cc_proto_library( name = "dots_in_package_cpp_rust_proto", testonly = True, deps = [":dots_in_package_proto"], ) rust_upb_proto_library( name = "dots_in_package_upb_rust_proto", testonly = True, deps = [":dots_in_package_proto"], ) proto_library( name = "edition2023_proto", testonly = True, srcs = ["edition2023.proto"], deps = ["//src/google/protobuf:cpp_features_proto"], ) rust_cc_proto_library( name = "edition2023_cpp_rust_proto", testonly = True, deps = [":edition2023_proto"], ) rust_upb_proto_library( name = "edition2023_upb_rust_proto", testonly = True, deps = [":edition2023_proto"], ) proto_library( name = "enums_proto", testonly = True, srcs = ["enums.proto"], ) rust_cc_proto_library( name = "enums_cpp_rust_proto", testonly = True, deps = [":enums_proto"], ) rust_upb_proto_library( name = "enums_upb_rust_proto", testonly = True, deps = [":enums_proto"], ) proto_library( name = "extensions_proto", testonly = True, srcs = ["extensions.proto"], ) rust_cc_proto_library( name = "extensions_cpp_rust_proto", testonly = True, deps = [":extensions_proto"], ) rust_upb_proto_library( name = "extensions_upb_rust_proto", testonly = True, deps = [":extensions_proto"], ) proto_library( name = "extensions_separate_file_proto", testonly = True, srcs = ["extensions_separate_file.proto"], deps = [":extensions_proto"], ) rust_cc_proto_library( name = "extensions_separate_file_cpp_rust_proto", testonly = True, deps = [":extensions_separate_file_proto"], ) rust_upb_proto_library( name = "extensions_separate_file_upb_rust_proto", testonly = True, deps = [":extensions_separate_file_proto"], ) proto_library( name = "import_public_grandparent_proto", testonly = True, srcs = [":import_public_grandparent.proto"], ) proto_library( name = "import_public_primary_src_proto", testonly = True, srcs = ["import_public_primary_src.proto"], exports = [":import_public_grandparent_proto"], deps = [":import_public_grandparent_proto"], ) proto_library( name = "import_public_non_primary_src_proto", testonly = True, srcs = [ "import_public_non_primary_src1.proto", "import_public_non_primary_src2.proto", ], ) proto_library( name = "import_public_proto", testonly = True, srcs = [ "import_public.proto", "import_public2.proto", ], exports = [ ":import_public_non_primary_src_proto", ":import_public_primary_src_proto", ], deps = [ ":import_public_non_primary_src_proto", ":import_public_primary_src_proto", ], ) rust_cc_proto_library( name = "import_public_cpp_rust_proto", testonly = True, deps = [":import_public_proto"], ) rust_upb_proto_library( name = "import_public_upb_rust_proto", testonly = True, deps = [":import_public_proto"], ) proto_library( name = "no_package_import_proto", testonly = True, srcs = ["no_package_import.proto"], deps = [ ], ) proto_library( name = "no_package_proto", testonly = True, srcs = [ "no_package.proto", "no_package_other.proto", ], exports = [":no_package_import_proto"], deps = [ ":no_package_import_proto", ], ) rust_cc_proto_library( name = "no_package_cpp_rust_proto", testonly = True, deps = [":no_package_proto"], ) rust_upb_proto_library( name = "no_package_upb_rust_proto", testonly = True, deps = [":no_package_proto"], ) proto_library( name = "package_import_proto", testonly = True, srcs = ["package_import.proto"], ) proto_library( name = "package_proto", testonly = True, srcs = [ "package.proto", "package_other.proto", "package_other_different.proto", ], exports = [":package_import_proto"], deps = [":package_import_proto"], ) rust_cc_proto_library( name = "package_cpp_rust_proto", testonly = True, deps = [":package_proto"], ) rust_upb_proto_library( name = "package_upb_rust_proto", testonly = True, deps = [":package_proto"], ) proto_library( name = "package_disabiguation_proto", testonly = True, srcs = [ "package_disabiguation1.proto", # TODO: b/321220129 - Uncomment once we support ambiguous messages. # "package_disabiguation2.proto", ], ) rust_upb_proto_library( name = "package_disabiguation_upb_rust_proto", testonly = True, deps = [":package_disabiguation_proto"], ) rust_cc_proto_library( name = "package_disabiguation_cpp_rust_proto", testonly = True, deps = [":package_disabiguation_proto"], ) proto_library( name = "bad_names_proto", testonly = True, srcs = [ "bad_names.proto", "more_test_protos/bad_names.proto", ], ) rust_cc_proto_library( name = "bad_names_cpp_rust_proto", testonly = True, deps = [":bad_names_proto"], ) rust_upb_proto_library( name = "bad_names_upb_rust_proto", testonly = True, deps = [":bad_names_proto"], ) proto_library( name = "nested_proto", testonly = True, srcs = ["nested.proto"], ) rust_cc_proto_library( name = "nested_cpp_rust_proto", testonly = True, deps = [":nested_proto"], ) rust_upb_proto_library( name = "nested_upb_rust_proto", testonly = True, deps = [":nested_proto"], ) proto_library( name = "map_unittest_proto", srcs = [ "map_unittest.proto", ], deps = [ ":unittest_proto", ], ) rust_cc_proto_library( name = "map_unittest_cpp_rust_proto", testonly = True, deps = [":map_unittest_proto"], ) rust_upb_proto_library( name = "map_unittest_upb_rust_proto", testonly = True, deps = [":map_unittest_proto"], ) proto_library( name = "imported_types_proto", testonly = True, srcs = ["imported_types.proto"], ) rust_cc_proto_library( name = "imported_types_cpp_rust_proto", testonly = True, deps = [":imported_types_proto"], ) rust_upb_proto_library( name = "imported_types_upb_rust_proto", testonly = True, deps = [":imported_types_proto"], ) proto_library( # Test '-' occurrences are replaced with '_'. name = "fields-with-imported-types_proto", testonly = True, srcs = ["fields_with_imported_types.proto"], deps = [":imported_types_proto"], ) rust_cc_proto_library( name = "fields_with_imported_types_cpp_rust_proto", testonly = True, deps = [":fields-with-imported-types_proto"], ) rust_upb_proto_library( name = "fields_with_imported_types_upb_rust_proto", testonly = True, deps = [":fields-with-imported-types_proto"], ) proto_library( name = "unittest_proto", srcs = ["unittest.proto"], deps = [":unittest_import_proto"], ) rust_upb_proto_library( name = "unittest_upb_rust_proto", testonly = True, deps = [":unittest_proto"], ) rust_cc_proto_library( name = "unittest_cpp_rust_proto", testonly = True, deps = ["unittest_proto"], ) proto_library( name = "unittest_import_proto", srcs = ["unittest_import.proto"], ) rust_upb_proto_library( name = "unittest_import_upb_rust_proto", testonly = True, deps = [":unittest_import_proto"], ) rust_cc_proto_library( name = "unittest_import_cpp_rust_proto", testonly = True, deps = ["unittest_import_proto"], ) proto_library( name = "unittest_proto3_proto", srcs = ["unittest_proto3.proto"], deps = [":unittest_import_proto"], ) rust_upb_proto_library( name = "unittest_proto3_upb_rust_proto", testonly = True, deps = [":unittest_proto3_proto"], ) rust_cc_proto_library( name = "unittest_proto3_cpp_rust_proto", testonly = True, deps = ["unittest_proto3_proto"], ) proto_library( name = "unittest_proto3_optional_proto", srcs = ["unittest_proto3_optional.proto"], ) rust_upb_proto_library( name = "unittest_proto3_optional_upb_rust_proto", testonly = True, deps = [":unittest_proto3_optional_proto"], ) rust_cc_proto_library( name = "unittest_proto3_optional_cpp_rust_proto", testonly = True, deps = ["unittest_proto3_optional_proto"], ) proto_library( name = "srcsless_library_test_child_proto", testonly = True, srcs = ["srcsless_library_test_child.proto"], ) proto_library( name = "srcsless_library_test_alias_proto", testonly = True, deps = [":srcsless_library_test_child_proto"], ) proto_library( name = "srcsless_library_test_parent_proto", testonly = True, srcs = ["srcsless_library_test_parent.proto"], deps = [":srcsless_library_test_alias_proto"], ) rust_cc_proto_library( name = "srcsless_library_test_parent_cpp_rust_proto", testonly = True, deps = [":srcsless_library_test_parent_proto"], ) rust_upb_proto_library( name = "srcsless_library_test_parent_upb_rust_proto", testonly = True, deps = [":srcsless_library_test_parent_proto"], ) # Eventually we should have a Rust target for descriptor.proto directly # alongside that file. This is currently difficult to do, because many of our # CI jobs are not prepared to handle a Rust dependency in # //src/google/protobuf. rust_upb_proto_library( name = "descriptor_upb_rust_proto", testonly = True, deps = ["//src/google/protobuf:descriptor_proto"], ) proto_library( name = "same_name_direct_deps_proto", testonly = True, srcs = ["same_name_direct_deps.proto"], deps = [ "//rust/test/p:parent_proto", "//rust/test/q:parent_proto", ], ) rust_proto_library( name = "same_name_direct_deps_rust_proto", testonly = True, deps = [":same_name_direct_deps_proto"], ) rust_library( name = "same_name_direct_deps_rust_consumer", testonly = True, srcs = ["same_name_direct_deps_consumer.rs"], deps = [":same_name_direct_deps_rust_proto"], ) proto_library( name = "same_name_exported_deps_proto", testonly = True, srcs = ["same_name_exported_deps.proto"], deps = [ "//rust/test/p:child_proto", "//rust/test/q:child_proto", ], ) rust_proto_library( name = "same_name_exported_deps_rust_proto", testonly = True, deps = [":same_name_exported_deps_proto"], ) rust_library( name = "same_name_exported_deps_rust_consumer", testonly = True, srcs = ["same_name_exported_deps_consumer.rs"], deps = [":same_name_exported_deps_rust_proto"], ) proto_library( name = "same_name_double_alias_exported_deps_proto", testonly = True, srcs = ["same_name_double_alias_exported_deps.proto"], deps = [ "//rust/test/p:grandchild_proto", "//rust/test/q:grandchild_proto", ], ) rust_proto_library( name = "same_name_double_alias_exported_deps_rust_proto", testonly = True, deps = [":same_name_double_alias_exported_deps_proto"], ) rust_library( name = "same_name_double_alias_exported_deps_rust_consumer", testonly = True, srcs = ["same_name_double_alias_exported_deps_consumer.rs"], deps = [":same_name_double_alias_exported_deps_rust_proto"], ) rust_cc_proto_library( name = "layering_check_test_rust_proto", testonly = True, # Ensure this library builds even when layering check is disabled. features = ["-layering_check"], deps = [":unittest_proto"], )