summaryrefslogtreecommitdiff
path: root/BUILD
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2019-04-24 17:36:17 +0000
committerJoshua Haberman <jhaberman@gmail.com>2019-04-24 17:36:17 +0000
commit985145ca16e4926420416e3a5f41f3e6e736c590 (patch)
tree5828b42ca49dbf656b651770714375620a720639 /BUILD
parentd6e466e943f4454396a3d1f8001e927bfb740213 (diff)
Fixed amalgamation and CMake build.
Diffstat (limited to 'BUILD')
-rw-r--r--BUILD58
1 files changed, 46 insertions, 12 deletions
diff --git a/BUILD b/BUILD
index 6222187..60bb94e 100644
--- a/BUILD
+++ b/BUILD
@@ -11,6 +11,7 @@ load(
"upb_amalgamation",
"upb_proto_library",
"upb_proto_reflection_library",
+ "upb_proto_srcs",
)
licenses(["notice"]) # BSD (Google-authored w/ possible external contributions)
@@ -395,6 +396,11 @@ py_binary(
srcs = ["tools/amalgamate.py"],
)
+upb_proto_srcs(
+ name = "descriptor_upbproto_srcs",
+ deps = ["@com_google_protobuf//:descriptor_proto"],
+)
+
upb_amalgamation(
name = "gen_amalgamation",
outs = [
@@ -404,6 +410,7 @@ upb_amalgamation(
amalgamator = ":amalgamate",
libs = [
":upb",
+ ":descriptor_upbproto_srcs",
":reflection",
":handlers",
":upb_pb",
@@ -477,22 +484,29 @@ lua_test(
# Test the CMake build #########################################################
+filegroup(
+ name = "cmake_files",
+ srcs = glob([
+ "CMakeLists.txt",
+ "generated_for_cmake/**/*",
+ "google/**/*",
+ "upbc/**/*",
+ "upb/**/*",
+ "tests/**/*",
+ ])
+)
+
make_shell_script(
name = "gen_run_cmake_build",
out = "run_cmake_build.sh",
- contents = "mkdir build && cd build && cmake .. && make -j8 && make test",
+ contents = "find . && mkdir build && cd build && cmake .. && make -j8 && make test",
)
sh_test(
name = "cmake_build",
srcs = ["run_cmake_build.sh"],
- data = glob([
- "CMakeLists.txt",
- "google/**/*",
- "upbc/**/*",
- "upb/**/*",
- "tests/**/*",
- ]) + [
+ data = [
+ ":cmake_files",
"@bazel_tools//tools/bash/runfiles",
],
)
@@ -517,8 +531,9 @@ genrule(
srcs = [
"BUILD",
"WORKSPACE",
+ ":cmake_files",
],
- outs = ["generated/CMakeLists.txt"],
+ outs = ["generated-in/CMakeLists.txt"],
cmd = "$(location :make_cmakelists) $@",
tools = [":make_cmakelists"],
)
@@ -526,18 +541,37 @@ genrule(
genrule(
name = "generate_json_ragel",
srcs = ["upb/json/parser.rl"],
- outs = ["generated/upb/json/parser.c"],
+ outs = ["upb/json/parser.c"],
cmd = "$(location @ragel//:ragel) -C -o upb/json/parser.c $< && mv upb/json/parser.c $@",
tools = ["@ragel"],
)
+genrule(
+ name = "copy_json_ragel",
+ srcs = ["upb/json/parser.c"],
+ outs = ["generated-in/generated_for_cmake/upb/json/parser.c"],
+ cmd = "cp $< $@",
+)
+
+genrule(
+ name = "copy_protos",
+ srcs = [":descriptor_upbproto_srcs"],
+ outs = [
+ "generated-in/generated_for_cmake/google/protobuf/descriptor.upb.c",
+ "generated-in/generated_for_cmake/google/protobuf/descriptor.upb.h",
+ ],
+ cmd = "cp $(SRCS) $(@D)/generated-in/generated_for_cmake/google/protobuf",
+)
+
generated_file_staleness_test(
name = "test_generated_files",
outs = [
"CMakeLists.txt",
- "upb/json/parser.c",
+ "generated_for_cmake/upb/json/parser.c",
+ "generated_for_cmake/google/protobuf/descriptor.upb.c",
+ "generated_for_cmake/google/protobuf/descriptor.upb.h",
],
- generated_pattern = "generated/%s",
+ generated_pattern = "generated-in/%s",
)
# copybara:strip_end
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback