• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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