diff --git a/BUILD b/BUILD index 3122dc0a321b665f4ee91a25039f06434a1a402c..2c9a6f35a17525f1c061042ecb2c32316e442917 100644 --- a/BUILD +++ b/BUILD @@ -1078,6 +1078,7 @@ grpc_cc_library( "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/core_codegen.cc", "src/cpp/common/rpc_method.cc", + "src/cpp/common/version_cc.cc", "src/cpp/server/async_generic_service.cc", "src/cpp/server/create_default_thread_pool.cc", "src/cpp/server/dynamic_thread_pool.cc", @@ -1086,6 +1087,7 @@ grpc_cc_library( "src/cpp/server/server_context.cc", "src/cpp/server/server_credentials.cc", "src/cpp/server/server_posix.cc", + "src/cpp/thread_manager/thread_manager.cc", "src/cpp/util/byte_buffer_cc.cc", "src/cpp/util/slice_cc.cc", "src/cpp/util/status.cc", diff --git a/bazel/BUILD b/bazel/BUILD index 940a379404f7b429aa36e281288fd997ab84230e..44a1673212e540e603520cb84ae4913770f498ae 100644 --- a/bazel/BUILD +++ b/bazel/BUILD @@ -2,8 +2,14 @@ package(default_visibility = ["//:__subpackages__"]) load(":cc_grpc_library.bzl", "cc_grpc_library") +proto_library( + name = "well_known_protos_list", + srcs = ["@submodule_protobuf//:well_known_protos"], +) + cc_grpc_library( name = "well_known_protos", - srcs = "@submodule_protobuf//:well_known_protos", + srcs = "well_known_protos_list", + deps = [], proto_only = True, ) diff --git a/bazel/cc_grpc_library.bzl b/bazel/cc_grpc_library.bzl index e1dd27b0c3fdae7e79d2801a2f5a298503b2b022..9020eacb740453cbb4f96250aa13d8e2c184e586 100644 --- a/bazel/cc_grpc_library.bzl +++ b/bazel/cc_grpc_library.bzl @@ -44,7 +44,6 @@ def cc_grpc_library(name, srcs, deps, proto_only, **kwargs): **kwargs ) - if not proto_only: native.cc_library( name = name, srcs = [":" + codegen_grpc_target, ":" + codegen_target], diff --git a/bazel/generate_cc.bzl b/bazel/generate_cc.bzl index 3665733681e1f85b87c6247d3b87d06f7716d1f5..d49cbe8d7289e8f4355f59f8f794d5dcaa2b303b 100644 --- a/bazel/generate_cc.bzl +++ b/bazel/generate_cc.bzl @@ -24,13 +24,15 @@ def generate_cc_impl(ctx): if ctx.executable.plugin: arguments += ["--plugin=protoc-gen-PLUGIN=" + ctx.executable.plugin.path] arguments += ["--PLUGIN_out=" + ",".join(ctx.attr.flags) + ":" + dir_out] + additional_input = [ctx.executable.plugin] else: arguments += ["--cpp_out=" + ",".join(ctx.attr.flags) + ":" + dir_out] + additional_input = [] arguments += ["-I{0}={0}".format(include.path) for include in includes] arguments += [proto.path for proto in protos] ctx.action( - inputs = protos + includes, + inputs = protos + includes + additional_input, outputs = out_files, executable = ctx.executable._protoc, arguments = arguments, diff --git a/examples/cpp/helloworld/BUILD b/examples/cpp/helloworld/BUILD new file mode 100644 index 0000000000000000000000000000000000000000..b9c3f5dfbed91b87a6a2911ae689980e589efc2d --- /dev/null +++ b/examples/cpp/helloworld/BUILD @@ -0,0 +1,42 @@ +# Copyright 2017, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cc_binary( + name = "greeter_client", + srcs = ["greeter_client.cc"], + deps = ["//examples/protos:helloworld"], + defines = ["BAZEL_BUILD"], +) + +cc_binary( + name = "greeter_server", + srcs = ["greeter_server.cc"], + deps = ["//examples/protos:helloworld"], + defines = ["BAZEL_BUILD"], +) diff --git a/examples/cpp/helloworld/greeter_client.cc b/examples/cpp/helloworld/greeter_client.cc index 61f3953056a8478dceb8689f308a16e3d4c41363..8ee33b1383b3ec63ca08bfc0476b29be14087d29 100644 --- a/examples/cpp/helloworld/greeter_client.cc +++ b/examples/cpp/helloworld/greeter_client.cc @@ -37,7 +37,11 @@ #include <grpc++/grpc++.h> +#ifdef BAZEL_BUILD +#include "examples/protos/helloworld.grpc.pb.h" +#else #include "helloworld.grpc.pb.h" +#endif using grpc::Channel; using grpc::ClientContext; diff --git a/examples/cpp/helloworld/greeter_server.cc b/examples/cpp/helloworld/greeter_server.cc index 9eab32c62b481ef45135797b64f4619ed3420399..c8a6d8ae86aff1f6c1550f8db2ffc88e0ecc6dd0 100644 --- a/examples/cpp/helloworld/greeter_server.cc +++ b/examples/cpp/helloworld/greeter_server.cc @@ -37,7 +37,11 @@ #include <grpc++/grpc++.h> +#ifdef BAZEL_BUILD +#include "examples/protos/helloworld.grpc.pb.h" +#else #include "helloworld.grpc.pb.h" +#endif using grpc::Server; using grpc::ServerBuilder; diff --git a/examples/protos/BUILD b/examples/protos/BUILD new file mode 100644 index 0000000000000000000000000000000000000000..2ffdf64f9af540d48fbebd64581e11226af18421 --- /dev/null +++ b/examples/protos/BUILD @@ -0,0 +1,52 @@ +# Copyright 2017, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package(default_visibility = ["//visibility:public"]) + +load("//bazel:grpc_build_system.bzl", "grpc_proto_library") + +grpc_proto_library( + name = "auth_sample", + srcs = ["auth_sample.proto"], +) + +grpc_proto_library( + name = "hellostreamingworld", + srcs = ["hellostreamingworld.proto"], +) + +grpc_proto_library( + name = "helloworld", + srcs = ["helloworld.proto"], +) + +grpc_proto_library( + name = "route_guide", + srcs = ["route_guide.proto"], +) diff --git a/tools/jenkins/run_bazel_basic_in_docker.sh b/tools/jenkins/run_bazel_basic_in_docker.sh index 51aaa90ff82e7244829917dc2bf97434efd1a087..b1d498a07d35ffa3623be7d15a95a50ff388bb20 100755 --- a/tools/jenkins/run_bazel_basic_in_docker.sh +++ b/tools/jenkins/run_bazel_basic_in_docker.sh @@ -39,4 +39,4 @@ git clone /var/local/jenkins/grpc /var/local/git/grpc && git submodule update --init --reference /var/local/jenkins/grpc/${name} \ ${name}') cd /var/local/git/grpc -bazel build --spawn_strategy=standalone --genrule_strategy=standalone :all test/... +bazel build --spawn_strategy=standalone --genrule_strategy=standalone :all test/... examples/cpp/...