Skip to content
Snippets Groups Projects
Commit 6626a869 authored by makdharma's avatar makdharma Committed by GitHub
Browse files

Merge pull request #10687 from makdharma/fixbazel

.proto and BUILD files can now in differnt dirs
parents 365c52b4 326345ee
No related branches found
No related tags found
No related merge requests found
...@@ -9,18 +9,18 @@ def generate_cc_impl(ctx): ...@@ -9,18 +9,18 @@ def generate_cc_impl(ctx):
protos = [f for src in ctx.attr.srcs for f in src.proto.direct_sources] protos = [f for src in ctx.attr.srcs for f in src.proto.direct_sources]
includes = [f for src in ctx.attr.srcs for f in src.proto.transitive_imports] includes = [f for src in ctx.attr.srcs for f in src.proto.transitive_imports]
outs = [] outs = []
# label_len is length of the path from WORKSPACE root to the location of this build file
label_len = len(ctx.label.package) + 1
if ctx.executable.plugin: if ctx.executable.plugin:
outs += [proto.basename[:-len(".proto")] + ".grpc.pb.h" for proto in protos] outs += [proto.path[label_len:-len(".proto")] + ".grpc.pb.h" for proto in protos]
outs += [proto.basename[:-len(".proto")] + ".grpc.pb.cc" for proto in protos] outs += [proto.path[label_len:-len(".proto")] + ".grpc.pb.cc" for proto in protos]
if ctx.attr.generate_mock: if ctx.attr.generate_mock:
outs += [proto.basename[:-len(".proto")] + "_mock.grpc.pb.h" for proto in protos] outs += [proto.path[label_len:-len(".proto")] + "_mock.grpc.pb.h" for proto in protos]
else: else:
outs += [proto.basename[:-len(".proto")] + ".pb.h" for proto in protos] outs += [proto.path[label_len:-len(".proto")] + ".pb.h" for proto in protos]
outs += [proto.basename[:-len(".proto")] + ".pb.cc" for proto in protos] outs += [proto.path[label_len:-len(".proto")] + ".pb.cc" for proto in protos]
out_files = [ctx.new_file(out) for out in outs] out_files = [ctx.new_file(out) for out in outs]
# The following should be replaced with ctx.configuration.buildout dir_out = str(ctx.genfiles_dir.path)
# whenever this is added to Skylark.
dir_out = out_files[0].dirname[:-len(protos[0].dirname)]
arguments = [] arguments = []
if ctx.executable.plugin: if ctx.executable.plugin:
......
...@@ -33,20 +33,34 @@ load("//bazel:grpc_build_system.bzl", "grpc_proto_library") ...@@ -33,20 +33,34 @@ load("//bazel:grpc_build_system.bzl", "grpc_proto_library")
grpc_proto_library( grpc_proto_library(
name = "auth_sample", name = "auth_sample",
srcs = ["auth_sample.proto"], srcs = ["protos/auth_sample.proto"],
) )
grpc_proto_library( grpc_proto_library(
name = "hellostreamingworld", name = "hellostreamingworld",
srcs = ["hellostreamingworld.proto"], srcs = ["protos/hellostreamingworld.proto"],
) )
grpc_proto_library( grpc_proto_library(
name = "helloworld", name = "helloworld",
srcs = ["helloworld.proto"], srcs = ["protos/helloworld.proto"],
) )
grpc_proto_library( grpc_proto_library(
name = "route_guide", name = "route_guide",
srcs = ["route_guide.proto"], srcs = ["protos/route_guide.proto"],
)
cc_binary(
name = "greeter_client",
srcs = ["cpp/helloworld/greeter_client.cc"],
deps = ["helloworld"],
defines = ["BAZEL_BUILD"],
)
cc_binary(
name = "greeter_server",
srcs = ["cpp/helloworld/greeter_server.cc"],
deps = ["helloworld"],
defines = ["BAZEL_BUILD"],
) )
# 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"],
)
...@@ -39,4 +39,4 @@ git clone /var/local/jenkins/grpc /var/local/git/grpc ...@@ -39,4 +39,4 @@ git clone /var/local/jenkins/grpc /var/local/git/grpc
&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \ && git submodule update --init --reference /var/local/jenkins/grpc/${name} \
${name}') ${name}')
cd /var/local/git/grpc cd /var/local/git/grpc
bazel build --spawn_strategy=standalone --genrule_strategy=standalone :all test/... examples/cpp/... bazel build --spawn_strategy=standalone --genrule_strategy=standalone :all test/... examples/...
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment