Split the JSON rules out of the main BUILD file and removed obsolete forwarding headers
PiperOrigin-RevId: 541016462
diff --git a/BUILD b/BUILD
index 045f187..549ef0b 100644
--- a/BUILD
+++ b/BUILD
@@ -743,29 +743,10 @@
],
)
-# TODO(b/232091617): Once we can delete the deprecated forwarding headers
-# (= everything in upb/) we can move this build target down into json/
-cc_library(
+alias(
name = "json",
- srcs = [
- "upb/json/decode.c",
- "upb/json/encode.c",
- ],
- hdrs = [
- "upb/json/decode.h",
- "upb/json/encode.h",
- "upb/json_decode.h",
- "upb/json_encode.h",
- ],
- copts = UPB_DEFAULT_COPTS,
+ actual = "//upb/json",
visibility = ["//visibility:public"],
- deps = [
- ":collections",
- ":lex",
- ":port",
- ":reflection",
- ":upb",
- ],
)
# Tests ########################################################################
@@ -790,53 +771,6 @@
],
)
-proto_library(
- name = "json_test_proto",
- testonly = 1,
- srcs = ["upb/json/test.proto"],
- deps = ["@com_google_protobuf//:struct_proto"],
-)
-
-upb_proto_library(
- name = "json_test_upb_proto",
- testonly = 1,
- deps = [":json_test_proto"],
-)
-
-upb_proto_reflection_library(
- name = "json_test_upb_proto_reflection",
- testonly = 1,
- deps = [":json_test_proto"],
-)
-
-cc_test(
- name = "json_decode_test",
- srcs = ["upb/json/decode_test.cc"],
- deps = [
- ":json",
- ":json_test_upb_proto",
- ":json_test_upb_proto_reflection",
- ":reflection",
- ":struct_upb_proto",
- ":upb",
- "@com_google_googletest//:gtest_main",
- ],
-)
-
-cc_test(
- name = "json_encode_test",
- srcs = ["upb/json/encode_test.cc"],
- deps = [
- ":json",
- ":json_test_upb_proto",
- ":json_test_upb_proto_reflection",
- ":reflection",
- ":struct_upb_proto",
- ":upb",
- "@com_google_googletest//:gtest_main",
- ],
-)
-
cc_test(
name = "collections_test",
srcs = ["upb/collections/test.cc"],
@@ -856,6 +790,7 @@
":message_test_upb_proto_reflection",
":reflection",
":upb",
+ "//upb/json",
"//upb/test:fuzz_util",
"//upb/test:test_messages_proto3_upb_proto",
"@com_google_googletest//:gtest_main",
@@ -881,11 +816,6 @@
deps = [":message_test_proto"],
)
-upb_proto_library(
- name = "struct_upb_proto",
- deps = ["@com_google_protobuf//:struct_proto"],
-)
-
cc_test(
name = "atoi_test",
srcs = ["upb/lex/atoi_test.cc"],
diff --git a/cmake/make_cmakelists.py b/cmake/make_cmakelists.py
index b925913..7b2851f 100755
--- a/cmake/make_cmakelists.py
+++ b/cmake/make_cmakelists.py
@@ -227,6 +227,9 @@
def bootstrap_cc_library(self, **kwargs):
pass
+ def alias(self, **kwargs):
+ pass
+
class WorkspaceFileFunctions(object):
def __init__(self, converter):
diff --git a/upb/conformance/BUILD b/upb/conformance/BUILD
index 3420557..74b2fc0 100644
--- a/upb/conformance/BUILD
+++ b/upb/conformance/BUILD
@@ -92,6 +92,7 @@
"//:reflection",
"//:textformat",
"//:wire",
+ "//upb/json",
],
)
@@ -141,6 +142,7 @@
"//:reflection",
"//:textformat",
"//:wire",
+ "//upb/json",
],
)
diff --git a/upb/json/BUILD b/upb/json/BUILD
new file mode 100644
index 0000000..facb3aa
--- /dev/null
+++ b/upb/json/BUILD
@@ -0,0 +1,84 @@
+# TODO(haberman): describe this package.
+
+load(
+ "//bazel:build_defs.bzl",
+ "UPB_DEFAULT_COPTS",
+)
+load(
+ "//bazel:upb_proto_library.bzl",
+ "upb_proto_library",
+ "upb_proto_reflection_library",
+)
+
+cc_library(
+ name = "json",
+ srcs = [
+ "decode.c",
+ "encode.c",
+ ],
+ hdrs = [
+ "decode.h",
+ "encode.h",
+ ],
+ copts = UPB_DEFAULT_COPTS,
+ visibility = ["//visibility:public"],
+ deps = [
+ "//:collections",
+ "//:lex",
+ "//:port",
+ "//:reflection",
+ "//:upb",
+ ],
+)
+
+cc_test(
+ name = "encode_test",
+ srcs = ["encode_test.cc"],
+ deps = [
+ ":json",
+ ":json_test_upb_proto",
+ ":json_test_upb_proto_reflection",
+ ":struct_upb_proto",
+ "//:reflection",
+ "//:upb",
+ "@com_google_googletest//:gtest_main",
+ ],
+)
+
+proto_library(
+ name = "json_test_proto",
+ testonly = 1,
+ srcs = ["test.proto"],
+ deps = ["@com_google_protobuf//:struct_proto"],
+)
+
+upb_proto_library(
+ name = "json_test_upb_proto",
+ testonly = 1,
+ deps = [":json_test_proto"],
+)
+
+upb_proto_reflection_library(
+ name = "json_test_upb_proto_reflection",
+ testonly = 1,
+ deps = [":json_test_proto"],
+)
+
+cc_test(
+ name = "json_decode_test",
+ srcs = ["decode_test.cc"],
+ deps = [
+ ":json",
+ ":json_test_upb_proto",
+ ":json_test_upb_proto_reflection",
+ ":struct_upb_proto",
+ "//:reflection",
+ "//:upb",
+ "@com_google_googletest//:gtest_main",
+ ],
+)
+
+upb_proto_library(
+ name = "struct_upb_proto",
+ deps = ["@com_google_protobuf//:struct_proto"],
+)
diff --git a/upb/json_decode.h b/upb/json_decode.h
deleted file mode 100644
index 816bf01..0000000
--- a/upb/json_decode.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2009-2021, Google LLC
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Google LLC nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// This header is deprecated, use upb/json/decode.h instead
-// IWYU pragma: private, include "upb/json/decode.h"
-
-#ifndef UPB_JSONDECODE_H_
-#define UPB_JSONDECODE_H_
-
-#include "upb/json/decode.h"
-
-#endif /* UPB_JSONDECODE_H_ */
diff --git a/upb/json_encode.h b/upb/json_encode.h
deleted file mode 100644
index 8189956..0000000
--- a/upb/json_encode.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2009-2021, Google LLC
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Google LLC nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// This header is deprecated, use upb/json/encode.h instead
-// IWYU pragma: private, include "upb/json/encode.h"
-
-#ifndef UPB_JSONENCODE_H_
-#define UPB_JSONENCODE_H_
-
-#include "upb/json/encode.h"
-
-#endif /* UPB_JSONENCODE_H_ */
diff --git a/upb/test/BUILD b/upb/test/BUILD
index 6fbf7bf..9d8b658 100644
--- a/upb/test/BUILD
+++ b/upb/test/BUILD
@@ -169,6 +169,7 @@
"//:json",
"//:port",
"//:reflection",
+ "//upb/json",
"@com_google_googletest//:gtest_main",
],
)
diff --git a/upb/util/required_fields_test.cc b/upb/util/required_fields_test.cc
index 7d44ef7..a7b4998 100644
--- a/upb/util/required_fields_test.cc
+++ b/upb/util/required_fields_test.cc
@@ -30,7 +30,7 @@
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "absl/strings/string_view.h"
-#include "upb/json_decode.h"
+#include "upb/json/decode.h"
#include "upb/reflection/def.hpp"
#include "upb/upb.hpp"
#include "upb/util/required_fields_test.upb.h"
diff --git a/upbc/BUILD b/upbc/BUILD
index ef348b5..4283699 100644
--- a/upbc/BUILD
+++ b/upbc/BUILD
@@ -228,6 +228,7 @@
"//:mini_table",
"//:port",
"//:reflection",
+ "//upb/json",
],
)