Joshua Haberman | 823eb09 | 2021-04-05 12:26:41 -0700 | [diff] [blame] | 1 | # Copyright (c) 2009-2021, Google LLC |
Joshua Haberman | e59d2c8 | 2021-04-05 10:47:53 -0700 | [diff] [blame] | 2 | # All rights reserved. |
| 3 | # |
| 4 | # Redistribution and use in source and binary forms, with or without |
| 5 | # modification, are permitted provided that the following conditions are met: |
| 6 | # * Redistributions of source code must retain the above copyright |
| 7 | # notice, this list of conditions and the following disclaimer. |
| 8 | # * Redistributions in binary form must reproduce the above copyright |
| 9 | # notice, this list of conditions and the following disclaimer in the |
| 10 | # documentation and/or other materials provided with the distribution. |
| 11 | # * Neither the name of Google LLC nor the |
| 12 | # names of its contributors may be used to endorse or promote products |
| 13 | # derived from this software without specific prior written permission. |
| 14 | # |
| 15 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
| 16 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 17 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 18 | # DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY |
| 19 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 20 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 21 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 22 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 23 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 24 | # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 25 | |
Josh Haberman | 2655ed9 | 2018-11-03 13:04:10 -0700 | [diff] [blame] | 26 | load( |
Joshua Haberman | 5611ff2 | 2019-05-16 11:35:00 -0700 | [diff] [blame] | 27 | "//bazel:build_defs.bzl", |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 28 | "UPB_DEFAULT_COPTS", |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 29 | "UPB_DEFAULT_CPPOPTS", |
| 30 | "make_shell_script", |
Joshua Haberman | 2c16649 | 2020-10-17 15:49:11 -0700 | [diff] [blame] | 31 | "upb_amalgamation", # copybara:strip_for_google3 |
Joshua Haberman | 06b90f9 | 2019-05-14 15:58:58 -0700 | [diff] [blame] | 32 | ) |
Joshua Haberman | 06b90f9 | 2019-05-14 15:58:58 -0700 | [diff] [blame] | 33 | load( |
Joshua Haberman | 5611ff2 | 2019-05-16 11:35:00 -0700 | [diff] [blame] | 34 | "//bazel:upb_proto_library.bzl", |
Joshua Haberman | a345af9 | 2020-10-18 13:39:13 -0700 | [diff] [blame] | 35 | "upb_fasttable_enabled", |
Josh Haberman | a7ebe54 | 2018-11-03 18:18:47 -0700 | [diff] [blame] | 36 | "upb_proto_library", |
Joshua Haberman | a274ad7 | 2020-10-28 13:06:30 -0700 | [diff] [blame] | 37 | "upb_proto_library_copts", |
Joshua Haberman | e8f9eac | 2020-10-28 22:50:03 -0700 | [diff] [blame] | 38 | "upb_proto_reflection_library", |
Josh Haberman | 2655ed9 | 2018-11-03 13:04:10 -0700 | [diff] [blame] | 39 | ) |
Joshua Haberman | 0dc2394 | 2020-06-05 09:17:33 -0700 | [diff] [blame] | 40 | |
Joshua Haberman | 83c0edb | 2021-02-28 16:56:49 -0800 | [diff] [blame] | 41 | licenses(["notice"]) |
Joshua Haberman | 7f9f722 | 2019-01-23 17:10:22 -0800 | [diff] [blame] | 42 | |
| 43 | exports_files([ |
| 44 | "LICENSE", |
| 45 | "build_defs", |
| 46 | ]) |
| 47 | |
Joshua Haberman | 00f96cb | 2019-03-27 12:13:59 -0700 | [diff] [blame] | 48 | config_setting( |
Nicolas "Pixel" Noble | ce3ba4d | 2019-07-18 01:12:00 +0200 | [diff] [blame] | 49 | name = "windows", |
| 50 | constraint_values = ["@bazel_tools//platforms:windows"], |
Eli Schleifer | 231daa3 | 2021-12-20 16:01:23 -0800 | [diff] [blame] | 51 | visibility = ["//visibility:public"], |
Nicolas "Pixel" Noble | ce3ba4d | 2019-07-18 01:12:00 +0200 | [diff] [blame] | 52 | ) |
| 53 | |
Joshua Haberman | a345af9 | 2020-10-18 13:39:13 -0700 | [diff] [blame] | 54 | upb_fasttable_enabled( |
| 55 | name = "fasttable_enabled", |
Joshua Haberman | b928696 | 2020-10-26 21:23:16 -0700 | [diff] [blame] | 56 | build_setting_default = False, |
Joshua Haberman | a345af9 | 2020-10-18 13:39:13 -0700 | [diff] [blame] | 57 | visibility = ["//visibility:public"], |
| 58 | ) |
| 59 | |
Joshua Haberman | e8f9eac | 2020-10-28 22:50:03 -0700 | [diff] [blame] | 60 | config_setting( |
| 61 | name = "fasttable_enabled_setting", |
| 62 | flag_values = {"//:fasttable_enabled": "true"}, |
| 63 | ) |
| 64 | |
Joshua Haberman | a274ad7 | 2020-10-28 13:06:30 -0700 | [diff] [blame] | 65 | upb_proto_library_copts( |
| 66 | name = "upb_proto_library_copts__for_generated_code_only_do_not_use", |
| 67 | copts = UPB_DEFAULT_COPTS, |
| 68 | visibility = ["//visibility:public"], |
| 69 | ) |
| 70 | |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 71 | # Public C/C++ libraries ####################################################### |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 72 | |
| 73 | cc_library( |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 74 | name = "port", |
Joshua Haberman | 558315a | 2020-10-28 17:13:13 -0700 | [diff] [blame] | 75 | copts = UPB_DEFAULT_COPTS, |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 76 | textual_hdrs = [ |
| 77 | "upb/port_def.inc", |
| 78 | "upb/port_undef.inc", |
| 79 | ], |
Matt Kulukundis | c49e6df | 2022-02-21 20:12:58 -0500 | [diff] [blame] | 80 | visibility = ["//:__subpackages__"], |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 81 | ) |
| 82 | |
| 83 | cc_library( |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 84 | name = "upb", |
| 85 | srcs = [ |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 86 | "upb/decode.c", |
Joshua Haberman | 3881393 | 2021-04-05 16:00:25 -0700 | [diff] [blame] | 87 | "upb/decode_internal.h", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 88 | "upb/encode.c", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 89 | "upb/msg.c", |
Joshua Haberman | 3881393 | 2021-04-05 16:00:25 -0700 | [diff] [blame] | 90 | "upb/msg_internal.h", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 91 | "upb/table.c", |
Joshua Haberman | 3881393 | 2021-04-05 16:00:25 -0700 | [diff] [blame] | 92 | "upb/table_internal.h", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 93 | "upb/upb.c", |
Joshua Haberman | 3881393 | 2021-04-05 16:00:25 -0700 | [diff] [blame] | 94 | "upb/upb_internal.h", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 95 | ], |
| 96 | hdrs = [ |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 97 | "upb/decode.h", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 98 | "upb/encode.h", |
Joshua Haberman | 1674f28 | 2021-04-04 18:43:24 -0700 | [diff] [blame] | 99 | "upb/msg.h", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 100 | "upb/upb.h", |
Joshua Haberman | 2559e78 | 2020-04-09 14:36:24 -0700 | [diff] [blame] | 101 | "upb/upb.hpp", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 102 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 103 | copts = UPB_DEFAULT_COPTS, |
Joshua Haberman | ba29af3 | 2019-06-01 19:27:49 -0700 | [diff] [blame] | 104 | visibility = ["//visibility:public"], |
Joshua Haberman | efd576b | 2020-10-26 21:37:17 -0700 | [diff] [blame] | 105 | deps = [ |
| 106 | ":fastdecode", |
| 107 | ":port", |
Joshua Haberman | 4307f5d | 2021-10-11 23:02:32 -0700 | [diff] [blame] | 108 | "//third_party/utf8_range", |
Joshua Haberman | efd576b | 2020-10-26 21:37:17 -0700 | [diff] [blame] | 109 | ], |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 110 | ) |
| 111 | |
| 112 | cc_library( |
Joshua Haberman | 970c645 | 2022-03-08 17:44:06 -0800 | [diff] [blame^] | 113 | name = "mini_table_internal", |
| 114 | hdrs = ["upb/msg_internal.h"], |
| 115 | deps = [ |
| 116 | ":port", |
| 117 | ":table", |
| 118 | ":upb", |
| 119 | ], |
| 120 | ) |
| 121 | |
| 122 | cc_library( |
Joshua Haberman | 8ede0d5 | 2022-03-05 18:33:27 -0800 | [diff] [blame] | 123 | name = "mini_table", |
| 124 | srcs = ["upb/mini_table.c"], |
| 125 | hdrs = [ |
| 126 | "upb/mini_table.h", |
| 127 | "upb/mini_table.hpp", |
| 128 | ], |
| 129 | copts = UPB_DEFAULT_COPTS, |
| 130 | visibility = ["//visibility:public"], |
Joshua Haberman | 970c645 | 2022-03-08 17:44:06 -0800 | [diff] [blame^] | 131 | deps = [ |
| 132 | ":mini_table_internal", |
| 133 | ":port", |
| 134 | ":upb", |
| 135 | ], |
Joshua Haberman | 8ede0d5 | 2022-03-05 18:33:27 -0800 | [diff] [blame] | 136 | ) |
| 137 | |
| 138 | cc_test( |
| 139 | name = "mini_table_test", |
| 140 | srcs = ["upb/mini_table_test.cc"], |
| 141 | deps = [ |
| 142 | ":mini_table", |
Joshua Haberman | 970c645 | 2022-03-08 17:44:06 -0800 | [diff] [blame^] | 143 | ":mini_table_internal", |
| 144 | ":upb", |
Joshua Haberman | 8ede0d5 | 2022-03-05 18:33:27 -0800 | [diff] [blame] | 145 | "@com_google_absl//absl/container:flat_hash_set", |
Joshua Haberman | 970c645 | 2022-03-08 17:44:06 -0800 | [diff] [blame^] | 146 | "@com_google_googletest//:gtest_main", |
Joshua Haberman | 8ede0d5 | 2022-03-05 18:33:27 -0800 | [diff] [blame] | 147 | ], |
| 148 | ) |
| 149 | |
| 150 | cc_library( |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 151 | name = "fastdecode", |
| 152 | srcs = [ |
Joshua Haberman | 3d437bb | 2021-10-13 09:53:36 -0700 | [diff] [blame] | 153 | "upb/decode.h", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 154 | "upb/decode_fast.c", |
| 155 | "upb/decode_fast.h", |
Matt Kulukundis | 61b0905 | 2022-02-19 19:35:58 -0500 | [diff] [blame] | 156 | "upb/decode_internal.h", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 157 | "upb/msg.h", |
Joshua Haberman | 3881393 | 2021-04-05 16:00:25 -0700 | [diff] [blame] | 158 | "upb/msg_internal.h", |
| 159 | "upb/upb_internal.h", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 160 | ], |
Joshua Haberman | e86541a | 2020-10-28 17:53:09 -0700 | [diff] [blame] | 161 | copts = UPB_DEFAULT_COPTS, |
Joshua Haberman | efd576b | 2020-10-26 21:37:17 -0700 | [diff] [blame] | 162 | deps = [ |
| 163 | ":port", |
| 164 | ":table", |
Joshua Haberman | 4307f5d | 2021-10-11 23:02:32 -0700 | [diff] [blame] | 165 | "//third_party/utf8_range", |
Joshua Haberman | efd576b | 2020-10-26 21:37:17 -0700 | [diff] [blame] | 166 | ], |
Joshua Haberman | ba29af3 | 2019-06-01 19:27:49 -0700 | [diff] [blame] | 167 | ) |
| 168 | |
| 169 | # Common support routines used by generated code. This library has no |
| 170 | # implementation, but depends on :upb and exposes a few more hdrs. |
| 171 | # |
| 172 | # This is public only because we have no way of visibility-limiting it to |
| 173 | # upb_proto_library() only. This interface is not stable and by using it you |
| 174 | # give up any backward compatibility guarantees. |
| 175 | cc_library( |
| 176 | name = "generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", |
Joshua Haberman | ba29af3 | 2019-06-01 19:27:49 -0700 | [diff] [blame] | 177 | hdrs = [ |
Joshua Haberman | 8c530f9 | 2022-02-22 14:50:55 -0800 | [diff] [blame] | 178 | "upb/decode.h", |
Joshua Haberman | aec762e | 2020-10-11 23:14:50 -0700 | [diff] [blame] | 179 | "upb/decode_fast.h", |
Joshua Haberman | 8c530f9 | 2022-02-22 14:50:55 -0800 | [diff] [blame] | 180 | "upb/encode.h", |
Joshua Haberman | ba29af3 | 2019-06-01 19:27:49 -0700 | [diff] [blame] | 181 | "upb/msg.h", |
Joshua Haberman | 42bdfcb | 2021-04-06 09:25:28 -0700 | [diff] [blame] | 182 | "upb/msg_internal.h", |
Anna R | a27429f | 2020-01-09 14:50:03 -0800 | [diff] [blame] | 183 | "upb/port_def.inc", |
| 184 | "upb/port_undef.inc", |
Joshua Haberman | ba29af3 | 2019-06-01 19:27:49 -0700 | [diff] [blame] | 185 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 186 | copts = UPB_DEFAULT_COPTS, |
Vishal Powar | 7031f77 | 2018-11-28 15:32:16 -0800 | [diff] [blame] | 187 | visibility = ["//visibility:public"], |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 188 | deps = [ |
Joshua Haberman | 4b8c04e | 2020-02-18 16:50:25 -0800 | [diff] [blame] | 189 | ":table", |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 190 | ":upb", |
| 191 | ], |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 192 | ) |
| 193 | |
Joshua Haberman | 8c530f9 | 2022-02-22 14:50:55 -0800 | [diff] [blame] | 194 | cc_library( |
| 195 | name = "generated_reflection_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", |
| 196 | hdrs = [ |
| 197 | "upb/def.h", |
| 198 | "upb/port_def.inc", |
| 199 | "upb/port_undef.inc", |
| 200 | ], |
| 201 | copts = UPB_DEFAULT_COPTS, |
| 202 | visibility = ["//visibility:public"], |
| 203 | deps = [ |
| 204 | ":descriptor_upb_proto", |
| 205 | ":reflection", |
| 206 | ":table", |
| 207 | ], |
| 208 | ) |
| 209 | |
Josh Haberman | cd9e1e6 | 2019-04-17 15:23:00 -0700 | [diff] [blame] | 210 | upb_proto_library( |
Joshua Haberman | 543a0ce | 2020-05-26 22:30:50 -0700 | [diff] [blame] | 211 | name = "descriptor_upb_proto", |
| 212 | visibility = ["//visibility:public"], |
| 213 | deps = ["@com_google_protobuf//:descriptor_proto"], |
| 214 | ) |
| 215 | |
| 216 | upb_proto_reflection_library( |
| 217 | name = "descriptor_upb_proto_reflection", |
Joshua Haberman | c58541e | 2019-05-15 09:49:29 -0700 | [diff] [blame] | 218 | visibility = ["//visibility:public"], |
Google-Autofuzz | 8f19667 | 2019-06-25 20:14:14 -0400 | [diff] [blame] | 219 | deps = ["@com_google_protobuf//:descriptor_proto"], |
Josh Haberman | cd9e1e6 | 2019-04-17 15:23:00 -0700 | [diff] [blame] | 220 | ) |
| 221 | |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 222 | cc_library( |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 223 | name = "reflection", |
| 224 | srcs = [ |
| 225 | "upb/def.c", |
Joshua Haberman | 58010a3 | 2020-02-18 16:53:21 -0800 | [diff] [blame] | 226 | "upb/msg.h", |
Joshua Haberman | 9a360ad | 2019-11-12 08:08:46 -0800 | [diff] [blame] | 227 | "upb/reflection.c", |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 228 | ], |
| 229 | hdrs = [ |
| 230 | "upb/def.h", |
Joshua Haberman | 2559e78 | 2020-04-09 14:36:24 -0700 | [diff] [blame] | 231 | "upb/def.hpp", |
Joshua Haberman | 9a360ad | 2019-11-12 08:08:46 -0800 | [diff] [blame] | 232 | "upb/reflection.h", |
Joshua Haberman | 5e550e8 | 2021-01-09 15:45:44 -0800 | [diff] [blame] | 233 | "upb/reflection.hpp", |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 234 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 235 | copts = UPB_DEFAULT_COPTS, |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 236 | visibility = ["//visibility:public"], |
Josh Haberman | cd9e1e6 | 2019-04-17 15:23:00 -0700 | [diff] [blame] | 237 | deps = [ |
Joshua Haberman | 543a0ce | 2020-05-26 22:30:50 -0700 | [diff] [blame] | 238 | ":descriptor_upb_proto", |
Anna R | fc49411 | 2020-01-09 14:16:25 -0800 | [diff] [blame] | 239 | ":port", |
Joshua Haberman | 9b07311 | 2019-05-14 11:12:13 -0700 | [diff] [blame] | 240 | ":table", |
Joshua Haberman | 9a66356 | 2019-05-13 16:13:39 -0700 | [diff] [blame] | 241 | ":upb", |
Josh Haberman | cd9e1e6 | 2019-04-17 15:23:00 -0700 | [diff] [blame] | 242 | ], |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 243 | ) |
| 244 | |
Joshua Haberman | ce1a399 | 2020-02-04 06:22:09 -0800 | [diff] [blame] | 245 | cc_library( |
| 246 | name = "textformat", |
| 247 | srcs = [ |
Joshua Haberman | 02c89a8 | 2020-02-10 14:56:27 -0800 | [diff] [blame] | 248 | "upb/text_encode.c", |
Matt Kulukundis | c8f823e | 2022-02-20 14:29:19 -0500 | [diff] [blame] | 249 | "upb/upb_internal.h", |
Joshua Haberman | ce1a399 | 2020-02-04 06:22:09 -0800 | [diff] [blame] | 250 | ], |
| 251 | hdrs = [ |
Joshua Haberman | 02c89a8 | 2020-02-10 14:56:27 -0800 | [diff] [blame] | 252 | "upb/text_encode.h", |
Joshua Haberman | ce1a399 | 2020-02-04 06:22:09 -0800 | [diff] [blame] | 253 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 254 | copts = UPB_DEFAULT_COPTS, |
Joshua Haberman | ce1a399 | 2020-02-04 06:22:09 -0800 | [diff] [blame] | 255 | visibility = ["//visibility:public"], |
| 256 | deps = [ |
Joshua Haberman | 4b8c04e | 2020-02-18 16:50:25 -0800 | [diff] [blame] | 257 | ":port", |
Joshua Haberman | ce1a399 | 2020-02-04 06:22:09 -0800 | [diff] [blame] | 258 | ":reflection", |
Matt Kulukundis | edd1dd3 | 2022-02-20 17:44:27 -0500 | [diff] [blame] | 259 | ":table", |
Joshua Haberman | ce1a399 | 2020-02-04 06:22:09 -0800 | [diff] [blame] | 260 | ], |
| 261 | ) |
| 262 | |
Joshua Haberman | 6e9db7d | 2020-02-15 19:31:51 -0800 | [diff] [blame] | 263 | cc_library( |
| 264 | name = "json", |
| 265 | srcs = [ |
Joshua Haberman | d49c1db | 2020-02-23 19:49:39 -0800 | [diff] [blame] | 266 | "upb/json_decode.c", |
Joshua Haberman | 6e9db7d | 2020-02-15 19:31:51 -0800 | [diff] [blame] | 267 | "upb/json_encode.c", |
Matt Kulukundis | c8f823e | 2022-02-20 14:29:19 -0500 | [diff] [blame] | 268 | "upb/upb_internal.h", |
Joshua Haberman | 6e9db7d | 2020-02-15 19:31:51 -0800 | [diff] [blame] | 269 | ], |
| 270 | hdrs = [ |
Joshua Haberman | d49c1db | 2020-02-23 19:49:39 -0800 | [diff] [blame] | 271 | "upb/json_decode.h", |
Joshua Haberman | 6e9db7d | 2020-02-15 19:31:51 -0800 | [diff] [blame] | 272 | "upb/json_encode.h", |
| 273 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 274 | copts = UPB_DEFAULT_COPTS, |
Lidi Zheng | f72c26c | 2020-12-10 16:23:08 -0800 | [diff] [blame] | 275 | visibility = ["//visibility:public"], |
Joshua Haberman | 6e9db7d | 2020-02-15 19:31:51 -0800 | [diff] [blame] | 276 | deps = [ |
Joshua Haberman | 4b8c04e | 2020-02-18 16:50:25 -0800 | [diff] [blame] | 277 | ":port", |
Joshua Haberman | 6e9db7d | 2020-02-15 19:31:51 -0800 | [diff] [blame] | 278 | ":reflection", |
Joshua Haberman | 4b8c04e | 2020-02-18 16:50:25 -0800 | [diff] [blame] | 279 | ":upb", |
Joshua Haberman | 6e9db7d | 2020-02-15 19:31:51 -0800 | [diff] [blame] | 280 | ], |
| 281 | ) |
| 282 | |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 283 | # Tests ######################################################################## |
| 284 | |
| 285 | cc_test( |
| 286 | name = "test_generated_code", |
| 287 | srcs = ["upb/test_generated_code.cc"], |
| 288 | deps = [ |
| 289 | ":empty_upbdefs_proto", |
| 290 | ":test_messages_proto3_proto_upb", |
| 291 | ":test_upb_proto", |
Matt Kulukundis | edd1dd3 | 2022-02-20 17:44:27 -0500 | [diff] [blame] | 292 | ":upb", |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 293 | "@com_google_googletest//:gtest_main", |
| 294 | ], |
| 295 | ) |
| 296 | |
| 297 | proto_library( |
| 298 | name = "test_proto", |
| 299 | testonly = 1, |
| 300 | srcs = ["upb/test.proto"], |
| 301 | ) |
| 302 | |
| 303 | upb_proto_library( |
| 304 | name = "test_upb_proto", |
| 305 | testonly = 1, |
| 306 | deps = [":test_proto"], |
| 307 | ) |
| 308 | |
| 309 | proto_library( |
| 310 | name = "empty_proto", |
| 311 | srcs = ["upb/empty.proto"], |
| 312 | ) |
| 313 | |
| 314 | upb_proto_reflection_library( |
| 315 | name = "empty_upbdefs_proto", |
| 316 | testonly = 1, |
| 317 | deps = [":empty_proto"], |
| 318 | ) |
| 319 | |
| 320 | upb_proto_library( |
| 321 | name = "test_messages_proto3_proto_upb", |
| 322 | testonly = 1, |
| 323 | deps = ["@com_google_protobuf//:test_messages_proto3_proto"], |
| 324 | ) |
Matt Kulukundis | 61b0905 | 2022-02-19 19:35:58 -0500 | [diff] [blame] | 325 | |
Joshua Haberman | ce012b7 | 2021-10-01 16:34:42 -0700 | [diff] [blame] | 326 | cc_test( |
| 327 | name = "msg_test", |
| 328 | srcs = ["upb/msg_test.cc"], |
| 329 | deps = [ |
Joshua Haberman | ce012b7 | 2021-10-01 16:34:42 -0700 | [diff] [blame] | 330 | ":json", |
Matt Kulukundis | a3bd5f8 | 2022-02-21 23:47:27 -0500 | [diff] [blame] | 331 | ":msg_test_upb_proto", |
Matt Kulukundis | 61b0905 | 2022-02-19 19:35:58 -0500 | [diff] [blame] | 332 | ":msg_test_upb_proto_reflection", |
Matt Kulukundis | a3bd5f8 | 2022-02-21 23:47:27 -0500 | [diff] [blame] | 333 | ":reflection", |
Matt Kulukundis | 42c121e | 2022-02-21 23:58:17 -0500 | [diff] [blame] | 334 | ":test_messages_proto3_proto_upb", |
Matt Kulukundis | a3bd5f8 | 2022-02-21 23:47:27 -0500 | [diff] [blame] | 335 | ":upb", |
Matt Kulukundis | 61b0905 | 2022-02-19 19:35:58 -0500 | [diff] [blame] | 336 | "@com_google_googletest//:gtest_main", |
Joshua Haberman | ce012b7 | 2021-10-01 16:34:42 -0700 | [diff] [blame] | 337 | ], |
| 338 | ) |
| 339 | |
| 340 | proto_library( |
| 341 | name = "msg_test_proto", |
Matt Kulukundis | 61b0905 | 2022-02-19 19:35:58 -0500 | [diff] [blame] | 342 | testonly = 1, |
Joshua Haberman | ce012b7 | 2021-10-01 16:34:42 -0700 | [diff] [blame] | 343 | srcs = ["upb/msg_test.proto"], |
| 344 | deps = ["@com_google_protobuf//:test_messages_proto3_proto"], |
| 345 | ) |
| 346 | |
Matt Kulukundis | a3bd5f8 | 2022-02-21 23:47:27 -0500 | [diff] [blame] | 347 | upb_proto_library( |
| 348 | name = "msg_test_upb_proto", |
| 349 | testonly = 1, |
| 350 | deps = [":msg_test_proto"], |
| 351 | ) |
| 352 | |
Joshua Haberman | ce012b7 | 2021-10-01 16:34:42 -0700 | [diff] [blame] | 353 | upb_proto_reflection_library( |
| 354 | name = "msg_test_upb_proto_reflection", |
Matt Kulukundis | 61b0905 | 2022-02-19 19:35:58 -0500 | [diff] [blame] | 355 | testonly = 1, |
Joshua Haberman | ce012b7 | 2021-10-01 16:34:42 -0700 | [diff] [blame] | 356 | deps = [":msg_test_proto"], |
| 357 | ) |
| 358 | |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 359 | proto_library( |
| 360 | name = "test_cpp_proto", |
| 361 | srcs = ["upb/test_cpp.proto"], |
Matt Kulukundis | 61b0905 | 2022-02-19 19:35:58 -0500 | [diff] [blame] | 362 | deps = ["@com_google_protobuf//:timestamp_proto"], |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 363 | ) |
| 364 | |
| 365 | upb_proto_library( |
| 366 | name = "test_cpp_upb_proto", |
| 367 | deps = ["test_cpp_proto"], |
| 368 | ) |
| 369 | |
| 370 | upb_proto_reflection_library( |
| 371 | name = "test_cpp_upb_proto_reflection", |
| 372 | deps = ["test_cpp_proto"], |
| 373 | ) |
| 374 | |
Matt Kulukundis | 92d71a4 | 2022-02-20 15:20:48 -0500 | [diff] [blame] | 375 | upb_proto_library( |
| 376 | name = "timestamp_upb_proto", |
| 377 | deps = ["@com_google_protobuf//:timestamp_proto"], |
| 378 | ) |
| 379 | |
| 380 | upb_proto_reflection_library( |
| 381 | name = "timestamp_upb_proto_reflection", |
| 382 | deps = ["@com_google_protobuf//:timestamp_proto"], |
| 383 | ) |
| 384 | |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 385 | cc_test( |
| 386 | name = "test_cpp", |
| 387 | srcs = ["upb/test_cpp.cc"], |
| 388 | copts = UPB_DEFAULT_CPPOPTS, |
| 389 | deps = [ |
| 390 | ":test_cpp_upb_proto", |
| 391 | ":test_cpp_upb_proto_reflection", |
Matt Kulukundis | 92d71a4 | 2022-02-20 15:20:48 -0500 | [diff] [blame] | 392 | ":timestamp_upb_proto", |
| 393 | ":timestamp_upb_proto_reflection", |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 394 | "//:json", |
| 395 | "//:port", |
| 396 | "//:reflection", |
| 397 | "//:upb", |
| 398 | "@com_google_googletest//:gtest_main", |
| 399 | ], |
| 400 | ) |
| 401 | |
| 402 | cc_test( |
| 403 | name = "test_table", |
| 404 | srcs = ["upb/test_table.cc"], |
| 405 | copts = UPB_DEFAULT_CPPOPTS, |
| 406 | deps = [ |
| 407 | "//:port", |
| 408 | "//:table", |
| 409 | "//:upb", |
| 410 | "@com_google_googletest//:gtest_main", |
| 411 | ], |
| 412 | ) |
| 413 | |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 414 | upb_proto_library( |
| 415 | name = "conformance_proto_upb", |
| 416 | testonly = 1, |
| 417 | deps = ["@com_google_protobuf//:conformance_proto"], |
| 418 | ) |
| 419 | |
| 420 | upb_proto_reflection_library( |
| 421 | name = "conformance_proto_upbdefs", |
| 422 | testonly = 1, |
| 423 | deps = ["@com_google_protobuf//:conformance_proto"], |
| 424 | ) |
| 425 | |
| 426 | upb_proto_reflection_library( |
| 427 | name = "test_messages_proto2_upbdefs", |
| 428 | testonly = 1, |
| 429 | deps = ["@com_google_protobuf//:test_messages_proto2_proto"], |
| 430 | ) |
| 431 | |
| 432 | upb_proto_reflection_library( |
| 433 | name = "test_messages_proto3_upbdefs", |
| 434 | testonly = 1, |
| 435 | deps = ["@com_google_protobuf//:test_messages_proto3_proto"], |
| 436 | ) |
| 437 | |
| 438 | cc_binary( |
| 439 | name = "conformance_upb", |
| 440 | testonly = 1, |
| 441 | srcs = ["upb/conformance_upb.c"], |
| 442 | copts = UPB_DEFAULT_COPTS, |
| 443 | data = ["upb/conformance_upb_failures.txt"], |
| 444 | deps = [ |
| 445 | ":conformance_proto_upb", |
| 446 | ":conformance_proto_upbdefs", |
| 447 | ":test_messages_proto2_upbdefs", |
| 448 | ":test_messages_proto3_upbdefs", |
| 449 | "//:json", |
| 450 | "//:port", |
| 451 | "//:reflection", |
| 452 | "//:textformat", |
| 453 | "//:upb", |
| 454 | ], |
| 455 | ) |
| 456 | |
| 457 | make_shell_script( |
| 458 | name = "gen_test_conformance_upb", |
| 459 | out = "test_conformance_upb.sh", |
| 460 | contents = "external/com_google_protobuf/conformance_test_runner " + |
| 461 | " --enforce_recommended " + |
| 462 | " --failure_list ./upb/conformance_upb_failures.txt" + |
| 463 | " ./conformance_upb", |
| 464 | ) |
| 465 | |
| 466 | sh_test( |
| 467 | name = "test_conformance_upb", |
| 468 | srcs = ["test_conformance_upb.sh"], |
| 469 | data = [ |
| 470 | "upb/conformance_upb_failures.txt", |
| 471 | ":conformance_upb", |
| 472 | "@com_google_protobuf//:conformance_test_runner", |
| 473 | ], |
| 474 | deps = ["@bazel_tools//tools/bash/runfiles"], |
| 475 | ) |
| 476 | |
Joshua Haberman | 50c1298 | 2022-03-08 15:52:37 -0800 | [diff] [blame] | 477 | cc_binary( |
| 478 | name = "conformance_upb_dynamic_minitable", |
| 479 | testonly = 1, |
| 480 | srcs = ["upb/conformance_upb.c"], |
| 481 | copts = UPB_DEFAULT_COPTS + [ |
Joshua Haberman | 970c645 | 2022-03-08 17:44:06 -0800 | [diff] [blame^] | 482 | "-DREBUILD_MINITABLES", |
Joshua Haberman | 50c1298 | 2022-03-08 15:52:37 -0800 | [diff] [blame] | 483 | ], |
| 484 | data = ["upb/conformance_upb_failures.txt"], |
| 485 | deps = [ |
| 486 | ":conformance_proto_upb", |
| 487 | ":conformance_proto_upbdefs", |
| 488 | ":test_messages_proto2_upbdefs", |
| 489 | ":test_messages_proto3_upbdefs", |
| 490 | "//:json", |
| 491 | "//:port", |
| 492 | "//:reflection", |
| 493 | "//:textformat", |
| 494 | "//:upb", |
| 495 | ], |
| 496 | ) |
| 497 | |
| 498 | make_shell_script( |
| 499 | name = "gen_test_conformance_upb_dynamic_minitable", |
| 500 | out = "test_conformance_upb_dynamic_minitable.sh", |
| 501 | contents = "external/com_google_protobuf/conformance_test_runner " + |
| 502 | " --enforce_recommended " + |
| 503 | " --failure_list ./upb/conformance_upb_failures.txt" + |
| 504 | " ./conformance_upb_dynamic_minitable", |
| 505 | ) |
| 506 | |
| 507 | sh_test( |
| 508 | name = "test_conformance_upb_dynamic_minitable", |
| 509 | srcs = ["test_conformance_upb_dynamic_minitable.sh"], |
| 510 | data = [ |
| 511 | "upb/conformance_upb_failures.txt", |
| 512 | ":conformance_upb_dynamic_minitable", |
| 513 | "@com_google_protobuf//:conformance_test_runner", |
| 514 | ], |
| 515 | deps = ["@bazel_tools//tools/bash/runfiles"], |
| 516 | ) |
| 517 | |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 518 | # Internal C/C++ libraries ##################################################### |
| 519 | |
| 520 | cc_library( |
| 521 | name = "table", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 522 | hdrs = [ |
Joshua Haberman | 3881393 | 2021-04-05 16:00:25 -0700 | [diff] [blame] | 523 | "upb/table_internal.h", |
Joshua Haberman | efd576b | 2020-10-26 21:37:17 -0700 | [diff] [blame] | 524 | "upb/upb.h", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 525 | ], |
Joshua Haberman | dfc07a8 | 2022-02-26 21:51:59 -0800 | [diff] [blame] | 526 | visibility = [ |
| 527 | "//python:__pkg__", |
| 528 | "//tests:__pkg__", |
| 529 | ], |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 530 | deps = [ |
| 531 | ":port", |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 532 | ], |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 533 | ) |
| 534 | |
Joshua Haberman | 77371f0 | 2019-01-23 16:26:13 -0800 | [diff] [blame] | 535 | # Amalgamation ################################################################# |
| 536 | |
Joshua Haberman | 83c0edb | 2021-02-28 16:56:49 -0800 | [diff] [blame] | 537 | # copybara:strip_for_google3_begin |
| 538 | |
Joshua Haberman | 77371f0 | 2019-01-23 16:26:13 -0800 | [diff] [blame] | 539 | upb_amalgamation( |
| 540 | name = "gen_amalgamation", |
| 541 | outs = [ |
| 542 | "upb.c", |
| 543 | "upb.h", |
| 544 | ], |
Joshua Haberman | 77371f0 | 2019-01-23 16:26:13 -0800 | [diff] [blame] | 545 | libs = [ |
| 546 | ":upb", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 547 | ":fastdecode", |
Joshua Haberman | 543a0ce | 2020-05-26 22:30:50 -0700 | [diff] [blame] | 548 | ":descriptor_upb_proto", |
Joshua Haberman | 928ef7f | 2019-03-27 12:52:33 -0700 | [diff] [blame] | 549 | ":reflection", |
Anna R | de1bc11 | 2020-01-07 15:45:19 -0800 | [diff] [blame] | 550 | ":port", |
Joshua Haberman | 77371f0 | 2019-01-23 16:26:13 -0800 | [diff] [blame] | 551 | ], |
| 552 | ) |
| 553 | |
| 554 | cc_library( |
| 555 | name = "amalgamation", |
| 556 | srcs = ["upb.c"], |
| 557 | hdrs = ["upb.h"], |
Joshua Haberman | e86541a | 2020-10-28 17:53:09 -0700 | [diff] [blame] | 558 | copts = UPB_DEFAULT_COPTS, |
Joshua Haberman | 4307f5d | 2021-10-11 23:02:32 -0700 | [diff] [blame] | 559 | deps = ["//third_party/utf8_range"], |
Joshua Haberman | 77371f0 | 2019-01-23 16:26:13 -0800 | [diff] [blame] | 560 | ) |
| 561 | |
Joshua Haberman | 16facab | 2020-05-08 16:40:24 -0700 | [diff] [blame] | 562 | upb_amalgamation( |
Joshua Haberman | 543a0ce | 2020-05-26 22:30:50 -0700 | [diff] [blame] | 563 | name = "gen_php_amalgamation", |
Joshua Haberman | 16facab | 2020-05-08 16:40:24 -0700 | [diff] [blame] | 564 | outs = [ |
Joshua Haberman | 543a0ce | 2020-05-26 22:30:50 -0700 | [diff] [blame] | 565 | "php-upb.c", |
| 566 | "php-upb.h", |
Joshua Haberman | 16facab | 2020-05-08 16:40:24 -0700 | [diff] [blame] | 567 | ], |
Joshua Haberman | 16facab | 2020-05-08 16:40:24 -0700 | [diff] [blame] | 568 | libs = [ |
| 569 | ":upb", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 570 | ":fastdecode", |
Joshua Haberman | 543a0ce | 2020-05-26 22:30:50 -0700 | [diff] [blame] | 571 | ":descriptor_upb_proto", |
| 572 | ":descriptor_upb_proto_reflection", |
Joshua Haberman | 16facab | 2020-05-08 16:40:24 -0700 | [diff] [blame] | 573 | ":reflection", |
| 574 | ":port", |
| 575 | ":json", |
| 576 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 577 | prefix = "php-", |
Joshua Haberman | 16facab | 2020-05-08 16:40:24 -0700 | [diff] [blame] | 578 | ) |
| 579 | |
| 580 | cc_library( |
Joshua Haberman | 543a0ce | 2020-05-26 22:30:50 -0700 | [diff] [blame] | 581 | name = "php_amalgamation", |
| 582 | srcs = ["php-upb.c"], |
| 583 | hdrs = ["php-upb.h"], |
Joshua Haberman | e86541a | 2020-10-28 17:53:09 -0700 | [diff] [blame] | 584 | copts = UPB_DEFAULT_COPTS, |
Joshua Haberman | 4307f5d | 2021-10-11 23:02:32 -0700 | [diff] [blame] | 585 | deps = ["//third_party/utf8_range"], |
Joshua Haberman | 16facab | 2020-05-08 16:40:24 -0700 | [diff] [blame] | 586 | ) |
| 587 | |
Joshua Haberman | efefbff | 2020-08-03 10:12:31 -0700 | [diff] [blame] | 588 | upb_amalgamation( |
| 589 | name = "gen_ruby_amalgamation", |
Joshua Haberman | efefbff | 2020-08-03 10:12:31 -0700 | [diff] [blame] | 590 | outs = [ |
| 591 | "ruby-upb.c", |
| 592 | "ruby-upb.h", |
| 593 | ], |
Joshua Haberman | efefbff | 2020-08-03 10:12:31 -0700 | [diff] [blame] | 594 | libs = [ |
| 595 | ":upb", |
Joshua Haberman | cb234e6 | 2020-10-17 17:48:32 -0700 | [diff] [blame] | 596 | ":fastdecode", |
Joshua Haberman | efefbff | 2020-08-03 10:12:31 -0700 | [diff] [blame] | 597 | ":descriptor_upb_proto", |
| 598 | ":reflection", |
| 599 | ":port", |
| 600 | ":json", |
| 601 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 602 | prefix = "ruby-", |
Joshua Haberman | efefbff | 2020-08-03 10:12:31 -0700 | [diff] [blame] | 603 | ) |
| 604 | |
| 605 | cc_library( |
| 606 | name = "ruby_amalgamation", |
| 607 | srcs = ["ruby-upb.c"], |
| 608 | hdrs = ["ruby-upb.h"], |
Joshua Haberman | e86541a | 2020-10-28 17:53:09 -0700 | [diff] [blame] | 609 | copts = UPB_DEFAULT_COPTS, |
Joshua Haberman | 4307f5d | 2021-10-11 23:02:32 -0700 | [diff] [blame] | 610 | deps = ["//third_party/utf8_range"], |
Joshua Haberman | efefbff | 2020-08-03 10:12:31 -0700 | [diff] [blame] | 611 | ) |
| 612 | |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 613 | exports_files( |
| 614 | [ |
| 615 | "upb/json/parser.rl", |
| 616 | "BUILD", |
| 617 | "WORKSPACE", |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 618 | ], |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 619 | visibility = ["//cmake:__pkg__"], |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 620 | ) |
| 621 | |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 622 | exports_files( |
| 623 | [ |
Joshua Haberman | bfc86d3 | 2019-12-04 16:56:40 -0800 | [diff] [blame] | 624 | "third_party/lunit/console.lua", |
| 625 | "third_party/lunit/lunit.lua", |
| 626 | ], |
Joshua Haberman | 11b6df0 | 2022-02-15 19:55:44 -0800 | [diff] [blame] | 627 | visibility = ["//upb/bindings/lua:__pkg__"], |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 628 | ) |
| 629 | |
Joshua Haberman | 985145c | 2019-04-24 17:36:17 +0000 | [diff] [blame] | 630 | filegroup( |
| 631 | name = "cmake_files", |
| 632 | srcs = glob([ |
Joshua Haberman | 985145c | 2019-04-24 17:36:17 +0000 | [diff] [blame] | 633 | "google/**/*", |
| 634 | "upbc/**/*", |
| 635 | "upb/**/*", |
| 636 | "tests/**/*", |
Joshua Haberman | 4f901b6 | 2020-10-14 16:32:43 -0700 | [diff] [blame] | 637 | "third_party/**/*", |
Joshua Haberman | 9a66356 | 2019-05-13 16:13:39 -0700 | [diff] [blame] | 638 | ]), |
Joshua Haberman | e3f41de | 2020-10-17 13:15:58 -0700 | [diff] [blame] | 639 | visibility = ["//cmake:__pkg__"], |
Josh Haberman | 01ed4ce | 2018-11-02 12:49:15 -0700 | [diff] [blame] | 640 | ) |
Joshua Haberman | 83c0edb | 2021-02-28 16:56:49 -0800 | [diff] [blame] | 641 | |
| 642 | # copybara:strip_end |