1# Copyright 2024 Google LLC 2# 3# Use of this source code is governed by a BSD-style 4# license that can be found in the LICENSE file or at 5# https://developers.google.com/open-source/licenses/bsd 6 7load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix") 8load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") 9 10package(default_applicable_licenses = ["//:license"]) 11 12rust_library( 13 name = "upb", 14 srcs = [ 15 "arena.rs", 16 "array.rs", 17 "associated_mini_table.rs", 18 "ctype.rs", 19 "extension_registry.rs", 20 "lib.rs", 21 "map.rs", 22 "message.rs", 23 "message_value.rs", 24 "mini_table.rs", 25 "opaque_pointee.rs", 26 "owned_arena_box.rs", 27 "string_view.rs", 28 "text.rs", 29 "wire.rs", 30 ], 31 rustc_flags = ["--cfg=bzl"], 32 visibility = [ 33 "//rust:__subpackages__", 34 "//src/google/protobuf:__subpackages__", 35 ], 36 deps = [":upb_c_api"], 37) 38 39rust_test( 40 name = "upb_rs_crate_test", 41 crate = ":upb", 42 deps = [ 43 "@crate_index//:googletest", 44 ], 45) 46 47cc_library( 48 name = "upb_c_api", 49 srcs = ["upb_api.c"], 50 deps = [ 51 "//upb:mem", 52 "//upb:message", 53 "//upb:message_compare", 54 "//upb:message_copy", 55 "//upb/mini_table", 56 "//upb/text:debug", 57 ], 58) 59 60pkg_files( 61 name = "rust_protobuf_upb_src", 62 srcs = glob( 63 [ 64 "*", 65 ], 66 ), 67 strip_prefix = strip_prefix.from_root("rust"), 68 visibility = ["//rust:__pkg__"], 69) 70