Hid generated-code-only headers inside a separate library.

pull/13171/head
Joshua Haberman 6 years ago
parent 9f49efef62
commit ba29af3a6a
  1. 24
      BUILD
  2. 9
      CMakeLists.txt
  3. 5
      bazel/upb_proto_library.bzl

24
BUILD

@ -50,7 +50,11 @@ cc_library(
srcs = [
"upb/decode.c",
"upb/encode.c",
"upb/generated_util.h",
"upb/msg.c",
"upb/msg.h",
"upb/port_def.inc",
"upb/port_undef.inc",
"upb/table.c",
"upb/table.int.h",
"upb/upb.c",
@ -58,16 +62,30 @@ cc_library(
hdrs = [
"upb/decode.h",
"upb/encode.h",
"upb/generated_util.h",
"upb/msg.h",
"upb/upb.h",
],
copts = COPTS,
# Internal-only, but we have to make them public for generated code.
visibility = ["//visibility:public"],
)
# Common support routines used by generated code. This library has no
# implementation, but depends on :upb and exposes a few more hdrs.
#
# This is public only because we have no way of visibility-limiting it to
# upb_proto_library() only. This interface is not stable and by using it you
# give up any backward compatibility guarantees.
cc_library(
name = "generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
textual_hdrs = [
"upb/port_def.inc",
"upb/port_undef.inc",
],
hdrs = [
"upb/generated_util.h",
"upb/msg.h",
],
deps = [":upb"],
copts = COPTS,
visibility = ["//visibility:public"],
)

@ -63,15 +63,20 @@ enable_testing()
add_library(upb
upb/decode.c
upb/encode.c
upb/generated_util.h
upb/msg.c
upb/msg.h
upb/port_def.inc
upb/port_undef.inc
upb/table.c
upb/table.int.h
upb/upb.c
upb/decode.h
upb/encode.h
upb/generated_util.h
upb/msg.h
upb/upb.h)
add_library(generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me INTERFACE)
target_link_libraries(generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me INTERFACE
upb)
add_library(reflection
upb/def.c
upb/msgfactory.c

@ -229,7 +229,10 @@ _upb_proto_library_aspect = aspect(
"_cc_toolchain": attr.label(
default = "@bazel_tools//tools/cpp:current_cc_toolchain",
),
"_upb": attr.label_list(default = ["//:upb"]),
"_upb": attr.label_list(default = [
"//:generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
"//:upb"
]),
"_ext": attr.string(default = ".upb"),
}),
implementation = _upb_proto_aspect_impl,

Loading…
Cancel
Save