mirror of https://github.com/grpc/grpc-java.git
java_grpc_library: Add support for protobuf lite
gRPC's protobuf-lite auto-selects between full and lite protobuf based on the value of crosstool_top. If the user is specifying their own --android_crosstool_top, then it will not auto-detect correctly. One day, platforms will fix problems like this, but for the moment it seems we get to live with it.
This commit is contained in:
parent
b1d91b9f60
commit
bace06fe9f
|
|
@ -109,14 +109,15 @@ def java_grpc_library(name, srcs, deps, flavor=None,
|
||||||
added_deps = [
|
added_deps = [
|
||||||
"@io_grpc_grpc_java//core",
|
"@io_grpc_grpc_java//core",
|
||||||
"@io_grpc_grpc_java//stub",
|
"@io_grpc_grpc_java//stub",
|
||||||
"@io_grpc_grpc_java//protobuf",
|
|
||||||
"@com_google_guava_guava//jar",
|
"@com_google_guava_guava//jar",
|
||||||
]
|
]
|
||||||
if flavor == "normal":
|
if flavor == "normal":
|
||||||
added_deps += ["@com_google_protobuf//:protobuf_java"]
|
added_deps += [
|
||||||
|
"@com_google_protobuf//:protobuf_java",
|
||||||
|
"@io_grpc_grpc_java//protobuf",
|
||||||
|
]
|
||||||
elif flavor == "lite":
|
elif flavor == "lite":
|
||||||
# TODO: This is currently blocked on https://github.com/google/protobuf/issues/2762
|
added_deps += ["@io_grpc_grpc_java//protobuf-lite"]
|
||||||
added_deps += ["@com_google_protobuf_java_lite//:protobuf_java_lite"]
|
|
||||||
else:
|
else:
|
||||||
fail("Unknown flavor type", "flavor")
|
fail("Unknown flavor type", "flavor")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,26 @@
|
||||||
java_library(
|
java_library(
|
||||||
name = "protobuf_lite",
|
name = "protobuf-lite",
|
||||||
srcs = glob([
|
srcs = glob([
|
||||||
"src/main/java/**/*.java",
|
"src/main/java/**/*.java",
|
||||||
]),
|
]),
|
||||||
# TOOD(zdapeng): fix visibility and deps (https://github.com/google/protobuf/issues/2762)
|
visibility = ["//visibility:public"],
|
||||||
visibility = ["//protobuf:__pkg__"],
|
|
||||||
deps = [
|
deps = [
|
||||||
"//core",
|
"//core",
|
||||||
"@com_google_code_findbugs_jsr305//jar",
|
"@com_google_code_findbugs_jsr305//jar",
|
||||||
"@com_google_guava_guava//jar",
|
"@com_google_guava_guava//jar",
|
||||||
"@com_google_protobuf//:protobuf_java",
|
] + select({
|
||||||
],
|
":android": ["@com_google_protobuf_javalite//:protobuf_java_lite"],
|
||||||
|
"//conditions:default": ["@com_google_protobuf//:protobuf_java"],
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
|
# This config is not fully-reliable. If it breaks, it is probably because you
|
||||||
|
# are changing --android_crosstool_top. Instead of doing that, you can bind
|
||||||
|
# your own toolchain on top of the default android/crosstool, as mentioned at
|
||||||
|
# https://github.com/bazelbuild/bazel/issues/3924#issuecomment-338704582
|
||||||
|
config_setting(
|
||||||
|
name = "android",
|
||||||
|
values = {
|
||||||
|
"crosstool_top": "//external:android/crosstool",
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ java_library(
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//core",
|
"//core",
|
||||||
"//protobuf-lite:protobuf_lite",
|
"//protobuf-lite",
|
||||||
"@com_google_api_grpc_proto_google_common_protos//jar",
|
"@com_google_api_grpc_proto_google_common_protos//jar",
|
||||||
"@com_google_code_findbugs_jsr305//jar",
|
"@com_google_code_findbugs_jsr305//jar",
|
||||||
"@com_google_guava_guava//jar",
|
"@com_google_guava_guava//jar",
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ def grpc_java_repositories(
|
||||||
omit_com_google_guava=False,
|
omit_com_google_guava=False,
|
||||||
omit_com_google_protobuf=False,
|
omit_com_google_protobuf=False,
|
||||||
omit_com_google_protobuf_java=False,
|
omit_com_google_protobuf_java=False,
|
||||||
|
omit_com_google_protobuf_javalite=False,
|
||||||
omit_com_google_protobuf_nano_protobuf_javanano=False,
|
omit_com_google_protobuf_nano_protobuf_javanano=False,
|
||||||
omit_com_google_truth_truth=False,
|
omit_com_google_truth_truth=False,
|
||||||
omit_com_squareup_okhttp=False,
|
omit_com_squareup_okhttp=False,
|
||||||
|
|
@ -45,6 +46,8 @@ def grpc_java_repositories(
|
||||||
com_google_protobuf()
|
com_google_protobuf()
|
||||||
if omit_com_google_protobuf_java:
|
if omit_com_google_protobuf_java:
|
||||||
fail("omit_com_google_protobuf_java is no longer supported and must be not be passed to grpc_java_repositories()")
|
fail("omit_com_google_protobuf_java is no longer supported and must be not be passed to grpc_java_repositories()")
|
||||||
|
if not omit_com_google_protobuf_javalite:
|
||||||
|
com_google_protobuf_javalite()
|
||||||
if not omit_com_google_protobuf_nano_protobuf_javanano:
|
if not omit_com_google_protobuf_nano_protobuf_javanano:
|
||||||
com_google_protobuf_nano_protobuf_javanano()
|
com_google_protobuf_nano_protobuf_javanano()
|
||||||
if not omit_com_google_truth_truth:
|
if not omit_com_google_truth_truth:
|
||||||
|
|
@ -146,6 +149,15 @@ def com_google_protobuf():
|
||||||
urls = ["https://github.com/google/protobuf/archive/v3.5.1.zip"],
|
urls = ["https://github.com/google/protobuf/archive/v3.5.1.zip"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def com_google_protobuf_javalite():
|
||||||
|
# java_lite_proto_library rules implicitly depend on @com_google_protobuf_javalite
|
||||||
|
native.http_archive(
|
||||||
|
name = "com_google_protobuf_javalite",
|
||||||
|
sha256 = "d8a2fed3708781196f92e1e7e7e713cf66804bd2944894401057214aff4f468e",
|
||||||
|
strip_prefix = "protobuf-5e8916e881c573c5d83980197a6f783c132d4276",
|
||||||
|
urls = ["https://github.com/google/protobuf/archive/5e8916e881c573c5d83980197a6f783c132d4276.zip"],
|
||||||
|
)
|
||||||
|
|
||||||
def com_google_protobuf_nano_protobuf_javanano():
|
def com_google_protobuf_nano_protobuf_javanano():
|
||||||
native.maven_jar(
|
native.maven_jar(
|
||||||
name = "com_google_protobuf_nano_protobuf_javanano",
|
name = "com_google_protobuf_nano_protobuf_javanano",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue