Starting this from scratch

-) Basic workspace
-) Basic BUILD file with macros
pull/9240/head
Nicolas "Pixel" Noble 8 years ago
parent 70ee74c479
commit 31d11dbfb8
  1. 7
      .gitignore
  2. 1958
      BUILD
  3. 42
      WORKSPACE
  4. 31
      grpc-build-system.bzl
  5. 256
      templates/BUILD.template
  6. 2
      third_party/boringssl
  7. 37
      third_party/zlib.BUILD

7
.gitignore vendored

@ -103,3 +103,10 @@ artifacts/
# IDE specific folder for JetBrains IDEs
.idea/
# Blaze files
bazel-bin
bazel-genfiles
bazel-grpc
bazel-out
bazel-testlogs

1958
BUILD

File diff suppressed because it is too large Load Diff

@ -0,0 +1,42 @@
bind(
name = "nanopb",
actual = "//third_party/nanopb",
)
bind(
name = "libssl",
actual = "@submodule_boringssl//:ssl",
)
bind(
name = "zlib",
actual = "@submodule_zlib//:z",
)
bind(
name = "protobuf_clib",
actual = "@submodule_protobuf//:protoc_lib",
)
bind(
name = "protobuf_compiler",
actual = "@submodule_protobuf//:protoc_lib",
)
new_local_repository(
name = "submodule_boringssl",
path = "third_party/boringssl",
build_file = "third_party/boringssl/BUILD",
)
new_local_repository(
name = "submodule_zlib",
path = "third_party/zlib",
build_file = "third_party/zlib.BUILD",
)
new_local_repository(
name = "submodule_protobuf",
path = "third_party/protobuf",
build_file = "third_party/protobuf/BUILD",
)

@ -0,0 +1,31 @@
def grpc_cc_library(name, srcs = [], hdrs = [], deps = [], standalone = False, language = "C++"):
copts = []
if language == "C":
copts = ["-std=c99"]
native.cc_library(
name = name,
srcs = srcs,
hdrs = hdrs,
deps = deps,
copts = copts,
includes = [
"include"
]
)
def nanopb():
native.cc_library(
name = "nanopb",
srcs = [
'//third_party/nanopb/pb_common.c',
'//third_party/nanopb/pb_decode.c',
'//third_party/nanopb/pb_encode.c',
],
hdrs = [
'//third_party/nanopb/pb.h',
'//third_party/nanopb/pb_common.h',
'//third_party/nanopb/pb_decode.h',
'//third_party/nanopb/pb_encode.h',
]
)

@ -1,256 +0,0 @@
%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
exports_files(["LICENSE"])
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++' or
target_dict['name'] == 'grpc++_codegen_lib'):
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)">
<%
lib_hdrs = lib.get("headers", [])
hdrs = [h for h in lib_hdrs if not h.startswith('third_party/nanopb')]
srcs = [s for s in lib.src if not s.startswith('third_party/nanopb')]
uses_nanopb = len(lib_hdrs) != len(hdrs) or len(srcs) != len(lib.src)
%>
cc_library(
name = "${lib.name}",
srcs = [
% for hdr in hdrs:
"${hdr}",
% endfor
% for src in srcs:
"${src}",
% endfor
],
hdrs = [
% for hdr in lib.get("public_headers", []):
"${hdr}",
% endfor
],
includes = [
"include",
".",
],
deps = [
% for dep in get_deps(lib):
"${dep}",
% endfor
% if uses_nanopb:
"//external:nanopb",
% endif
],
% if lib.name in ("grpc", "grpc_unsecure"):
copts = [
"-std=gnu99",
],
% endif
)
</%def>
<%def name="objc_library(lib)">
<%
lib_hdrs = lib.get("headers", [])
hdrs = [h for h in lib_hdrs if not h.startswith('third_party/nanopb')]
srcs = [s for s in lib.src if not s.startswith('third_party/nanopb')]
uses_nanopb = len(lib_hdrs) != len(hdrs) or len(srcs) != len(lib.src)
%>
objc_library(
name = "${lib.name}_objc",
srcs = [
% for src in srcs:
"${src}",
% endfor
],
hdrs = [
% for hdr in lib.get("public_headers", []):
"${hdr}",
% endfor
% for hdr in hdrs:
"${hdr}",
% endfor
],
includes = [
"include",
".",
],
deps = [
% for dep in lib.get("deps", []):
":${dep}_objc",
% endfor
% if lib.get('secure', False):
"//external:libssl_objc",
% endif
% if uses_nanopb:
"//external:nanopb",
% 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",
],
)

@ -1 +1 @@
Subproject commit c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9
Subproject commit d4f6204cf17ac99cfcbb2a6803483af650c88256

@ -0,0 +1,37 @@
cc_library(
name = "z",
linkstatic = 1,
srcs = [
'adler32.c',
'compress.c',
'crc32.c',
'deflate.c',
'infback.c',
'inffast.c',
'inflate.c',
'inftrees.c',
'trees.c',
'uncompr.c',
'zutil.c',
],
hdrs = [
'crc32.h',
'deflate.h',
'gzguts.h',
'inffast.h',
'inffixed.h',
'inflate.h',
'inftrees.h',
'trees.h',
'zconf.h',
'zlib.h',
'zutil.h',
],
includes = [
'include',
],
visibility = [
"//visibility:public",
],
)
Loading…
Cancel
Save