aboutsummaryrefslogtreecommitdiff
path: root/BUILD
diff options
context:
space:
mode:
authorJisi Liu <jisi.liu@gmail.com>2015-10-14 17:12:11 -0700
committerJisi Liu <jisi.liu@gmail.com>2015-10-14 17:12:11 -0700
commit39362b35b236242729cc5a0cb6fb0f7233fecd5e (patch)
treec2d7c8ecf471fb2b8cee0ab092334ff6d5f1e9dc /BUILD
parentd8a926ebf2eb9a0dbd4a8593b84d154c85eb23f0 (diff)
downloadprotobuf-39362b35b236242729cc5a0cb6fb0f7233fecd5e.tar.gz
protobuf-39362b35b236242729cc5a0cb6fb0f7233fecd5e.tar.bz2
protobuf-39362b35b236242729cc5a0cb6fb0f7233fecd5e.zip
Extract protoc action into .bzl for cc.
This is needed to support python bazel build.
Diffstat (limited to 'BUILD')
-rw-r--r--BUILD49
1 files changed, 24 insertions, 25 deletions
diff --git a/BUILD b/BUILD
index 1aca02cf..a060f06e 100644
--- a/BUILD
+++ b/BUILD
@@ -18,6 +18,8 @@ COPTS = [
# Bazel should provide portable link_opts for pthread.
LINK_OPTS = ["-lpthread"]
+load("protobuf", "cc_proto_library")
+
cc_library(
name = "protobuf_lite",
srcs = [
@@ -140,6 +142,14 @@ WELL_KNOWN_PROTOS = [
"google/protobuf/wrappers.proto",
]
+cc_proto_library(
+ name = "cc_wkt_protos",
+ srcs = ["src/" + s for s in WELL_KNOWN_PROTOS],
+ internal_bootstrap_hack = 1,
+ prefix = "src",
+ deps = ":protobuf",
+)
+
################################################################################
# Protocol Buffers Compiler
################################################################################
@@ -258,23 +268,22 @@ cc_binary(
################################################################################
genrule(
name = "generate_java_descriptor_proto",
- tools = [":protoc"],
- srcs = [ "src/google/protobuf/descriptor.proto", ],
- outs = [ "com/google/protobuf/DescriptorProtos.java" ],
+ srcs = ["src/google/protobuf/descriptor.proto"],
+ outs = ["com/google/protobuf/DescriptorProtos.java"],
cmd = "$(location :protoc) --java_out=$(@D)/../../.. $<",
+ tools = [":protoc"],
)
java_library(
name = "java_proto",
- visibility = ["//visibility:public"],
srcs = glob([
- "java/src/main/java/com/google/protobuf/*.java"
+ "java/src/main/java/com/google/protobuf/*.java",
]) + [
- ":generate_java_descriptor_proto",
- ]
+ ":generate_java_descriptor_proto",
+ ],
+ visibility = ["//visibility:public"],
)
-
################################################################################
# Tests
################################################################################
@@ -328,22 +337,11 @@ TEST_PROTOS = [
"google/protobuf/util/json_format_proto3.proto",
]
-PROTOS = LITE_TEST_PROTOS + TEST_PROTOS
-
-INPUTS = PROTOS + WELL_KNOWN_PROTOS
-
-OUTPUTS = ["src/" + x[:-5] + "pb.h" for x in PROTOS] + \
- ["src/" + x[:-5] + "pb.cc" for x in PROTOS]
-
-genrule(
- name = "gen_test_protos",
- srcs = ["src/" + x for x in INPUTS],
- outs = OUTPUTS,
- cmd =
- "$(location :protoc) --cpp_out=$(@D)/src" +
- "".join([" -I" + x + "=$(location src/" + x + ")" for x in INPUTS]) +
- "".join([" $(location src/" + x + ")" for x in PROTOS]),
- tools = [":protoc"],
+cc_proto_library(
+ name = "cc_test_protos",
+ srcs = ["src/" + s for s in (LITE_TEST_PROTOS + TEST_PROTOS)],
+ prefix = "src",
+ proto_deps = [":cc_wkt_protos"],
)
COMMON_TEST_SRCS = [
@@ -372,7 +370,7 @@ cc_binary(
cc_test(
name = "protobuf_test",
- srcs = OUTPUTS + COMMON_TEST_SRCS + [
+ srcs = COMMON_TEST_SRCS + [
# AUTOGEN(test_srcs)
"src/google/protobuf/any_test.cc",
"src/google/protobuf/arena_unittest.cc",
@@ -449,6 +447,7 @@ cc_test(
deps = [
":protobuf",
":protoc_lib",
+ ":cc_test_protos",
"//external:gtest_main",
],
)