diff options
Diffstat (limited to 'templates/BUILD.template')
-rw-r--r-- | templates/BUILD.template | 454 |
1 files changed, 228 insertions, 226 deletions
diff --git a/templates/BUILD.template b/templates/BUILD.template index 8b565a0dc0..bb18c353b1 100644 --- a/templates/BUILD.template +++ b/templates/BUILD.template @@ -1,227 +1,229 @@ -# GRPC Bazel BUILD file. -# This currently builds C, C++ and Objective-C code. -# This file has been automatically generated from a template file. -# Please look at the templates directory instead. -# This file can be regenerated from the template by running -# tools/buildgen/generate_projects.sh - -# Copyright 2015, 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. - -licenses(["notice"]) # 3-clause BSD - -package(default_visibility = ["//visibility:public"]) - -<%! -def get_deps(target_dict): - deps = [] - if target_dict.get('secure', 'no') == 'yes': +%YAML 1.2 +--- | + # GRPC Bazel BUILD file. + # This currently builds C, C++ and Objective-C code. + # This file has been automatically generated from a template file. + # Please look at the templates directory instead. + # This file can be regenerated from the template by running + # tools/buildgen/generate_projects.sh + + # Copyright 2015, 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. + + licenses(["notice"]) # 3-clause BSD + + package(default_visibility = ["//visibility:public"]) + + <%! + def get_deps(target_dict): + deps = [] + if target_dict.get('secure', False): + deps = [ + "//external:libssl", + ] + if target_dict.get('build', None) == 'protoc': + deps.append("//external:protobuf_compiler") + if target_dict['name'] == 'grpc++_unsecure' or target_dict['name'] == 'grpc++': + deps.append("//external:protobuf_clib") + elif target_dict['name'] == 'grpc': + deps.append("//external:zlib") + for d in target_dict.get('deps', []): + if d.find('//') == 0 or d[0] == ':': + deps.append(d) + else: + deps.append(':%s' % (d)) + return deps + %> + + % for lib in libs: + % if lib.build in ("all", "protoc"): + ${cc_library(lib)} + % endif + % endfor + + % for lib in libs: + % if lib.name in ("grpc", "gpr"): + ${objc_library(lib)} + % endif + % endfor + + % for tgt in targets: + % if tgt.build == 'protoc': + ${cc_binary(tgt)} + % endif + % endfor + + <%def name="cc_library(lib)"> + cc_library( + name = "${lib.name}", + srcs = [ + % for hdr in lib.get("headers", []): + "${hdr}", + % endfor + % for src in lib.src: + "${src}", + % endfor + ], + hdrs = [ + % for hdr in lib.get("public_headers", []): + "${hdr}", + % endfor + ], + includes = [ + "include", + ".", + ], deps = [ - "//external:libssl", - ] - if target_dict.get('build', None) == 'protoc': - deps.append("//external:protobuf_compiler") - if target_dict['name'] == 'grpc++_unsecure' or target_dict['name'] == 'grpc++': - deps.append("//external:protobuf_clib") - elif target_dict['name'] == 'grpc': - deps.append("//external:zlib") - for d in target_dict.get('deps', []): - if d.find('//') == 0 or d[0] == ':': - deps.append(d) - else: - deps.append(':%s' % (d)) - return deps -%> - -% for lib in libs: -% if lib.build in ("all", "protoc"): -${cc_library(lib)} -% endif -% endfor - -% for lib in libs: -% if lib.name in ("grpc", "gpr"): -${objc_library(lib)} -% endif -% endfor - -% for tgt in targets: -% if tgt.build == 'protoc': -${cc_binary(tgt)} -% endif -% endfor - -<%def name="cc_library(lib)"> -cc_library( - name = "${lib.name}", - srcs = [ -% for hdr in lib.get("headers", []): - "${hdr}", -% endfor -% for src in lib.src: - "${src}", -% endfor - ], - hdrs = [ -% for hdr in lib.get("public_headers", []): - "${hdr}", -% endfor - ], - includes = [ - "include", - ".", - ], - deps = [ -% for dep in get_deps(lib): - "${dep}", -% endfor - ], -) -</%def> - -<%def name="objc_library(lib)"> -objc_library( - name = "${lib.name}_objc", - srcs = [ -% for src in lib.src: - "${src}", -% endfor - ], - hdrs = [ -% for hdr in lib.get("public_headers", []): - "${hdr}", -% endfor -% for hdr in lib.get("headers", []): - "${hdr}", -% endfor - ], - includes = [ - "include", - ".", - ], - deps = [ -% for dep in lib.get("deps", []): - ":${dep}_objc", -% endfor -% if lib.get('secure', 'no') == 'yes': - "//external:libssl_objc", -% endif - ], -% if lib.get("baselib", false): - sdk_dylibs = ["libz"], -% endif -) -</%def> - -<%def name="cc_binary(tgt)"> -cc_binary( - name = "${tgt.name}", - srcs = [ -% for src in tgt.src: - "${src}", -% endfor - ], - deps = [ -% for dep in get_deps(tgt): - "${dep}", -% endfor - ], -) -</%def> - -objc_path = "src/objective-c" - -rx_library_path = objc_path + "/RxLibrary" - -objc_library( - name = "rx_library", - hdrs = glob([ - rx_library_path + "/*.h", - rx_library_path + "/transformations/*.h", - ]), - srcs = glob([ - rx_library_path + "/*.m", - rx_library_path + "/transformations/*.m", - ]), - includes = [objc_path], - deps = [ - ":rx_library_private", - ], -) - -objc_library( - name = "rx_library_private", - hdrs = glob([rx_library_path + "/private/*.h"]), - srcs = glob([rx_library_path + "/private/*.m"]), - visibility = ["//visibility:private"], -) - -objc_client_path = objc_path + "/GRPCClient" - -objc_library( - name = "grpc_client", - hdrs = glob([ - objc_client_path + "/*.h", - objc_client_path + "/private/*.h", - ]), - srcs = glob([ - objc_client_path + "/*.m", - objc_client_path + "/private/*.m", - ]), - includes = [objc_path], - bundles = [":gRPCCertificates"], - deps = [ - ":grpc_objc", - ":rx_library", - ], -) - -objc_bundle_library( - # The choice of name is signicant here, since it determines the bundle name. - name = "gRPCCertificates", - resources = ["etc/roots.pem"], -) - -proto_objc_rpc_path = objc_path + "/ProtoRPC" - -objc_library( - name = "proto_objc_rpc", - hdrs = glob([ - proto_objc_rpc_path + "/*.h", - ]), - srcs = glob([ - proto_objc_rpc_path + "/*.m", - ]), - includes = [objc_path], - deps = [ - ":grpc_client", - ":rx_library", - "//external:protobuf_objc", - ], -) + % for dep in get_deps(lib): + "${dep}", + % endfor + ], + ) + </%def> + + <%def name="objc_library(lib)"> + objc_library( + name = "${lib.name}_objc", + srcs = [ + % for src in lib.src: + "${src}", + % endfor + ], + hdrs = [ + % for hdr in lib.get("public_headers", []): + "${hdr}", + % endfor + % for hdr in lib.get("headers", []): + "${hdr}", + % endfor + ], + includes = [ + "include", + ".", + ], + deps = [ + % for dep in lib.get("deps", []): + ":${dep}_objc", + % endfor + % if lib.get('secure', False): + "//external:libssl_objc", + % endif + ], + % if lib.get("baselib", false): + sdk_dylibs = ["libz"], + % endif + ) + </%def> + + <%def name="cc_binary(tgt)"> + cc_binary( + name = "${tgt.name}", + srcs = [ + % for src in tgt.src: + "${src}", + % endfor + ], + deps = [ + % for dep in get_deps(tgt): + "${dep}", + % endfor + ], + ) + </%def> + + objc_path = "src/objective-c" + + rx_library_path = objc_path + "/RxLibrary" + + objc_library( + name = "rx_library", + hdrs = glob([ + rx_library_path + "/*.h", + rx_library_path + "/transformations/*.h", + ]), + srcs = glob([ + rx_library_path + "/*.m", + rx_library_path + "/transformations/*.m", + ]), + includes = [objc_path], + deps = [ + ":rx_library_private", + ], + ) + + objc_library( + name = "rx_library_private", + hdrs = glob([rx_library_path + "/private/*.h"]), + srcs = glob([rx_library_path + "/private/*.m"]), + visibility = ["//visibility:private"], + ) + + objc_client_path = objc_path + "/GRPCClient" + + objc_library( + name = "grpc_client", + hdrs = glob([ + objc_client_path + "/*.h", + objc_client_path + "/private/*.h", + ]), + srcs = glob([ + objc_client_path + "/*.m", + objc_client_path + "/private/*.m", + ]), + includes = [objc_path], + bundles = [":gRPCCertificates"], + deps = [ + ":grpc_objc", + ":rx_library", + ], + ) + + objc_bundle_library( + # The choice of name is signicant here, since it determines the bundle name. + name = "gRPCCertificates", + resources = ["etc/roots.pem"], + ) + + proto_objc_rpc_path = objc_path + "/ProtoRPC" + + objc_library( + name = "proto_objc_rpc", + hdrs = glob([ + proto_objc_rpc_path + "/*.h", + ]), + srcs = glob([ + proto_objc_rpc_path + "/*.m", + ]), + includes = [objc_path], + deps = [ + ":grpc_client", + ":rx_library", + "//external:protobuf_objc", + ], + ) |