Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.1 KiB
71 lines
2.1 KiB
load("@rules_cc//cc:defs.bzl", "cc_binary") |
|
load("@rules_python//python:defs.bzl", "py_library", "py_binary") |
|
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") |
|
load("//benchmarks:internal.bzl", "internal_benchmark_test") |
|
|
|
cc_binary( |
|
name = "libbenchmark_messages.so", |
|
srcs = ["python_benchmark_messages.cc"], |
|
deps = [ |
|
"@local_config_python//:python_headers", |
|
"//external:python_headers", |
|
"//benchmarks:benchmarks_cc_proto", |
|
"//benchmarks/datasets:cc_protos", |
|
], |
|
linkshared = True, |
|
linkstatic = True, |
|
visibility = ["//visibility:private"], |
|
) |
|
|
|
# The benchmark binary which can be run over any dataset. |
|
py_binary( |
|
name = "python_benchmark", |
|
srcs = ["py_benchmark.py"], |
|
main = "py_benchmark.py", |
|
data = ["libbenchmark_messages.so"], |
|
deps = [ |
|
"//:protobuf_python", |
|
"//benchmarks:benchmarks_py_proto", |
|
"//benchmarks/datasets:py_protos", |
|
], |
|
env = select({ |
|
"//python:use_fast_cpp_protos": {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "cpp"}, |
|
"//conditions:default": {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "python"}, |
|
}), |
|
) |
|
|
|
# Pre-configured binaries using the checked in datasets. |
|
|
|
internal_benchmark_test( |
|
name = "python", |
|
binary = ":python_benchmark", |
|
datasets = ["//benchmarks/datasets"], |
|
env_vars = ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python"], |
|
) |
|
|
|
# Note: this requires --define=use_fast_cpp_protos=true |
|
internal_benchmark_test( |
|
name = "cpp_reflection", |
|
binary = ":python_benchmark", |
|
datasets = ["//benchmarks/datasets"], |
|
env_vars = ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp"], |
|
) |
|
|
|
# Note: this requires --define=use_fast_cpp_protos=true |
|
internal_benchmark_test( |
|
name = "cpp_generated_code", |
|
binary = ":python_benchmark", |
|
datasets = ["//benchmarks/datasets"], |
|
env_vars = ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp"], |
|
args = ["--cpp_generated"], |
|
) |
|
|
|
pkg_files( |
|
name = "dist_files", |
|
srcs = glob(["*.py"]) + [ |
|
"BUILD.bazel", |
|
"python_benchmark_messages.cc", |
|
], |
|
strip_prefix = strip_prefix.from_root(""), |
|
visibility = ["//benchmarks:__pkg__"], |
|
)
|
|
|