Split the JSON rules out of the main BUILD file and removed obsolete forwarding headers

PiperOrigin-RevId: 541016462
pull/13171/head
Joshua Haberman 1 year ago committed by Copybara-Service
parent ee24ef2300
commit ba500734c3
  1. 76
      BUILD
  2. 3
      cmake/make_cmakelists.py
  3. 2
      upb/conformance/BUILD
  4. 84
      upb/json/BUILD
  5. 36
      upb/json_decode.h
  6. 36
      upb/json_encode.h
  7. 1
      upb/test/BUILD
  8. 2
      upb/util/required_fields_test.cc
  9. 1
      upbc/BUILD

76
BUILD

@ -743,29 +743,10 @@ cc_library(
],
)
# 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 @@ cc_test(
],
)
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 @@ cc_test(
":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 @@ upb_proto_reflection_library(
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"],

@ -227,6 +227,9 @@ class BuildFileFunctions(object):
def bootstrap_cc_library(self, **kwargs):
pass
def alias(self, **kwargs):
pass
class WorkspaceFileFunctions(object):
def __init__(self, converter):

@ -92,6 +92,7 @@ cc_binary(
"//:reflection",
"//:textformat",
"//:wire",
"//upb/json",
],
)
@ -141,6 +142,7 @@ cc_binary(
"//:reflection",
"//:textformat",
"//:wire",
"//upb/json",
],
)

@ -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"],
)

@ -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_ */

@ -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_ */

@ -169,6 +169,7 @@ cc_test(
"//:json",
"//:port",
"//:reflection",
"//upb/json",
"@com_google_googletest//:gtest_main",
],
)

@ -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"

@ -228,6 +228,7 @@ cc_library(
"//:mini_table",
"//:port",
"//:reflection",
"//upb/json",
],
)

Loading…
Cancel
Save