summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2019-06-01 19:27:49 -0700
committerJoshua Haberman <jhaberman@gmail.com>2019-06-01 19:27:49 -0700
commitba29af3a6af9c2e4dfc32ad0230f889e117908b3 (patch)
tree45826d7e62eb36ede8e5fde8cb049ca3dc4e8b58
parent9f49efef6203973931894a4ed9b862b3e3d639f0 (diff)
Hid generated-code-only headers inside a separate library.
-rw-r--r--BUILD24
-rw-r--r--CMakeLists.txt9
-rw-r--r--bazel/upb_proto_library.bzl5
3 files changed, 32 insertions, 6 deletions
diff --git a/BUILD b/BUILD
index 11156c8..70ef137 100644
--- a/BUILD
+++ b/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"],
)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2573173..c1c45df 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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
diff --git a/bazel/upb_proto_library.bzl b/bazel/upb_proto_library.bzl
index 09d557c..e68f340 100644
--- a/bazel/upb_proto_library.bzl
+++ b/bazel/upb_proto_library.bzl
@@ -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,
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback