parent
e28e140afd
commit
1ebb7c885e
94 changed files with 7606 additions and 7410 deletions
@ -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", |
||||
], |
||||
) |
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,41 +1,43 @@ |
||||
/* |
||||
* |
||||
* 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. |
||||
* |
||||
*/ |
||||
|
||||
/* This file is autogenerated from: |
||||
templates/src/core/surface/version.c.template */ |
||||
|
||||
#include <grpc/grpc.h> |
||||
|
||||
const char *grpc_version_string(void) { |
||||
return "${settings.version.major}.${settings.version.minor}.${settings.version.micro}.${settings.version.build}"; |
||||
} |
||||
%YAML 1.2 |
||||
--- | |
||||
/* |
||||
* |
||||
* 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. |
||||
* |
||||
*/ |
||||
|
||||
/* This file is autogenerated from: |
||||
templates/src/core/surface/version.c.template */ |
||||
|
||||
#include <grpc/grpc.h> |
||||
|
||||
const char *grpc_version_string(void) { |
||||
return "${settings.version.major}.${settings.version.minor}.${settings.version.micro}.${settings.version.build}"; |
||||
} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc++'], 'C++', libs, True)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc++'], 'C++', libs, True)} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc++'], 'C++', libs, False)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc++'], 'C++', libs, False)} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc', 'gpr'], 'Core', libs, True)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc', 'gpr'], 'Core', libs, True)} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc', 'gpr'], 'Core', libs, False)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="Doxyfile.include" import="gen_doxyfile"/>\ |
||||
${gen_doxyfile(['grpc', 'gpr'], 'Core', libs, False)} |
||||
|
@ -1,33 +1,35 @@ |
||||
<%! |
||||
import json |
||||
import os |
||||
|
||||
def proto_headers(src): |
||||
out = [] |
||||
for f in src: |
||||
name, ext = os.path.splitext(f) |
||||
if ext == '.proto': |
||||
out.extend(fmt % name for fmt in ['%s.grpc.pb.h', '%s.pb.h']) |
||||
return out |
||||
|
||||
def no_protos(src): |
||||
out = [] |
||||
for f in src: |
||||
if os.path.splitext(f)[1] != '.proto': |
||||
out.append(f) |
||||
return out |
||||
%> |
||||
|
||||
${json.dumps([{"name": tgt.name, |
||||
"language": tgt.language, |
||||
"src": sorted( |
||||
no_protos(tgt.src) + |
||||
tgt.get('public_headers', []) + |
||||
tgt.get('headers', [])), |
||||
"headers": sorted( |
||||
tgt.get('public_headers', []) + |
||||
tgt.get('headers', []) + |
||||
proto_headers(tgt.src)), |
||||
"deps": sorted(tgt.get('deps', []))} |
||||
for tgt in (targets + libs)], |
||||
sort_keys=True, indent=2)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%! |
||||
import json |
||||
import os |
||||
|
||||
def proto_headers(src): |
||||
out = [] |
||||
for f in src: |
||||
name, ext = os.path.splitext(f) |
||||
if ext == '.proto': |
||||
out.extend(fmt % name for fmt in ['%s.grpc.pb.h', '%s.pb.h']) |
||||
return out |
||||
|
||||
def no_protos(src): |
||||
out = [] |
||||
for f in src: |
||||
if os.path.splitext(f)[1] != '.proto': |
||||
out.append(f) |
||||
return out |
||||
%> |
||||
|
||||
${json.dumps([{"name": tgt.name, |
||||
"language": tgt.language, |
||||
"src": sorted( |
||||
no_protos(tgt.src) + |
||||
tgt.get('public_headers', []) + |
||||
tgt.get('headers', [])), |
||||
"headers": sorted( |
||||
tgt.get('public_headers', []) + |
||||
tgt.get('headers', []) + |
||||
proto_headers(tgt.src)), |
||||
"deps": sorted(tgt.get('deps', []))} |
||||
for tgt in (targets + libs)], |
||||
sort_keys=True, indent=2)} |
||||
|
@ -1,13 +1,15 @@ |
||||
<%! |
||||
import json |
||||
%> |
||||
|
||||
${json.dumps([{"name": tgt.name, |
||||
"language": tgt.language, |
||||
"platforms": tgt.platforms, |
||||
"ci_platforms": tgt.ci_platforms, |
||||
"exclude_configs": tgt.get("exclude_configs", []), |
||||
"flaky": tgt.flaky} |
||||
for tgt in targets |
||||
if tgt.get('run', True) and tgt.build == 'test'], |
||||
sort_keys=True, indent=2)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%! |
||||
import json |
||||
%> |
||||
|
||||
${json.dumps([{"name": tgt.name, |
||||
"language": tgt.language, |
||||
"platforms": tgt.platforms, |
||||
"ci_platforms": tgt.ci_platforms, |
||||
"exclude_configs": tgt.get("exclude_configs", []), |
||||
"flaky": tgt.flaky} |
||||
for tgt in targets |
||||
if tgt.get('run', True) and tgt.build == 'test'], |
||||
sort_keys=True, indent=2)} |
||||
|
@ -1,206 +1,208 @@ |
||||
# 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. |
||||
<%! |
||||
import re |
||||
%>\ |
||||
<%namespace file="packages.include" import="get_openssl,get_zlib"/>\ |
||||
<%def name="to_windows_path(path)">${path.replace('/','\\')}</%def>\ |
||||
<% |
||||
build_from_project_file = set(['gpr', |
||||
'gpr_test_util', |
||||
'grpc', |
||||
'grpc_test_util', |
||||
'grpc_test_util_unsecure', |
||||
'grpc_unsecure', |
||||
'grpc++', |
||||
'grpc++_unsecure' |
||||
]) |
||||
buildable_targets = [ target for target in targets + libs |
||||
if target.build in ['all', 'test', 'private', 'tool', 'benchmark'] and |
||||
target.language in ['c', 'c++'] and |
||||
all([(src.endswith('.c') or src.endswith('.cc') or src.endswith('.proto')) for src in target.src]) and |
||||
'windows' in target.get('platforms', ['windows']) ] |
||||
c_test_targets = [ target for target in buildable_targets if target.build == 'test' and not target.language == 'c++' ] |
||||
cxx_test_targets = [ target for target in buildable_targets if target.build == 'test' and target.language == 'c++' ] |
||||
%>\ |
||||
# NMake file to build secondary gRPC targets on Windows. |
||||
# Use grpc.sln to solution to build the gRPC libraries. |
||||
|
||||
OUT_DIR=test_bin |
||||
|
||||
CC=cl.exe /nologo |
||||
LINK=link.exe /nologo |
||||
LIBTOOL=lib.exe /nologo /nodefaultlib |
||||
|
||||
REPO_ROOT=.. |
||||
OPENSSL_INCLUDES = .\packages\${get_openssl()}\build\native\include |
||||
ZLIB_INCLUDES = .\packages\${get_zlib()}\build\native\include |
||||
INCLUDES=/I$(REPO_ROOT) /I$(REPO_ROOT)\include /I$(OPENSSL_INCLUDES) /I$(ZLIB_INCLUDES) |
||||
|
||||
GFLAGS_INCLUDES = .\..\third_party\gflags\include |
||||
GTEST_INCLUDES = .\..\third_party\gtest\include |
||||
PROTOBUF_INCLUDES = .\..\third_party\protobuf\src |
||||
CXX_INCLUDES=/I$(GFLAGS_INCLUDES) /I$(GTEST_INCLUDES) /I$(PROTOBUF_INCLUDES) |
||||
|
||||
#_SCL_SECURE_NO_WARNINGS supresses a ton of "potentially unsafe use of std lib" warnings |
||||
DEFINES=/D WIN32 /D _LIB /D _USE_32BIT_TIME_T /D _UNICODE /D UNICODE /D _CRT_SECURE_NO_WARNINGS /D _SCL_SECURE_NO_WARNINGS |
||||
|
||||
#important options: /TC vs. /TP: compile as C vs. compile as C++ |
||||
CFLAGS=/c $(INCLUDES) /Z7 /W3 /WX- /sdl $(DEFINES) /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TC /analyze- |
||||
CXXFLAGS=/c $(INCLUDES) $(CXX_INCLUDES) /Z7 /W3 /WX- /sdl $(DEFINES) /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP /analyze- |
||||
|
||||
LFLAGS=/DEBUG /INCREMENTAL /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 |
||||
|
||||
OPENSSL_LIBS=.\packages\${get_openssl()}\build\native\lib\v120\Win32\Debug\static\ssleay32.lib .\packages\${get_openssl()}\build\native\lib\v120\Win32\Debug\static\libeay32.lib |
||||
WINSOCK_LIBS=ws2_32.lib |
||||
GENERAL_LIBS=advapi32.lib comdlg32.lib gdi32.lib kernel32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib shell32.lib user32.lib uuid.lib winspool.lib |
||||
ZLIB_LIBS=.\packages\${get_zlib()}\build\native\lib\v120\Win32\Debug\static\cdecl\zlib.lib |
||||
LIBS=$(OPENSSL_LIBS) $(ZLIB_LIBS) $(GENERAL_LIBS) $(WINSOCK_LIBS) |
||||
|
||||
#shlwapi.lib provides PathMatchSpec() for gflags in windows |
||||
GFLAGS_LIBS=.\..\third_party\gflags\lib\Debug\gflags.lib shlwapi.lib |
||||
GTEST_LIBS=.\..\third_party\gtest\msvc\gtest\Debug\gtestd.lib |
||||
PROTOBUF_LIBS=.\..\third_party\protobuf\vsprojects\Debug\libprotobuf.lib |
||||
CXX_LIBS=$(GFLAGS_LIBS) $(GTEST_LIBS) $(PROTOBUF_LIBS) |
||||
|
||||
all: buildtests |
||||
|
||||
tools: |
||||
|
||||
tools_c: |
||||
|
||||
tools_cxx: |
||||
|
||||
$(OUT_DIR): |
||||
mkdir $(OUT_DIR) |
||||
|
||||
build_libs: \ |
||||
% for target in buildable_targets: |
||||
% if target.build == 'private' or target.build == 'all': |
||||
% if target.name in build_from_project_file: |
||||
build_${target.name} \ |
||||
% else: |
||||
Debug\${target.name}.lib \ |
||||
% endif |
||||
% endif |
||||
% endfor |
||||
|
||||
buildtests: buildtests_c buildtests_cxx |
||||
|
||||
buildtests_c: \ |
||||
% for target in c_test_targets: |
||||
${target.name}.exe \ |
||||
% endfor |
||||
|
||||
echo All C tests built. |
||||
|
||||
buildtests_cxx: \ |
||||
% for target in cxx_test_targets: |
||||
${target.name}.exe \ |
||||
% endfor |
||||
|
||||
echo All C++ tests built. |
||||
|
||||
% for target in buildable_targets: |
||||
|
||||
## replace all .proto includes with .pb.cc / .grpc.pb.cc |
||||
%if target.src: |
||||
%for source in target.src: |
||||
%if source.endswith(".proto"): |
||||
<% |
||||
src_name_parts = source.split(".") |
||||
target.src.append(src_name_parts[0] + ".pb.cc") |
||||
target.src.append(src_name_parts[0] + ".grpc.pb.cc") |
||||
%>\ |
||||
%endif |
||||
%endfor |
||||
%endif |
||||
## remove all .proto includes |
||||
<% |
||||
target.src = [item for item in target.src if not re.search('([^/]+)\.proto$', item)] |
||||
%>\ |
||||
%if target.name in build_from_project_file: |
||||
build_${target.name}: |
||||
msbuild grpc.sln /t:${target.name} /p:Configuration=Debug /p:Linkage-grpc_dependencies_zlib=static |
||||
%else: |
||||
%if target.build == 'private': |
||||
Debug\${target.name}.lib: \ |
||||
%else: |
||||
${target.name}.exe: \ |
||||
%for dep in target.get('deps', []): |
||||
%if dep in build_from_project_file: |
||||
build_${dep} \ |
||||
%else: |
||||
Debug\${dep}.lib \ |
||||
%endif |
||||
%endfor |
||||
%endif |
||||
$(OUT_DIR) |
||||
echo Building ${target.name} |
||||
%if target.language == 'c++': |
||||
$(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ \ |
||||
%else: |
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ \ |
||||
%endif |
||||
%for source in target.src: |
||||
$(REPO_ROOT)\${to_windows_path(source)} \ |
||||
%endfor |
||||
%if not target.src: |
||||
$(REPO_ROOT)\${to_windows_path('vsprojects/dummy.c')} \ |
||||
%endif |
||||
|
||||
%if target.build == 'private': |
||||
$(LIBTOOL) /OUT:"Debug\${target.name}.lib" \ |
||||
%else: |
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\${target.name}.exe" \ |
||||
%for dep in target.get('deps', []): |
||||
Debug\${dep}.lib \ |
||||
%endfor |
||||
%if target.language == 'c++': |
||||
$(CXX_LIBS) \ |
||||
%endif |
||||
$(LIBS) \ |
||||
%endif |
||||
%if not target.src: |
||||
$(OUT_DIR)\dummy.obj \ |
||||
%else: |
||||
%for source in target.src: |
||||
%if re.search('([^/]+)\.c{1,2}$', source): |
||||
$(OUT_DIR)\${re.search('([^/]+)\.c{1,2}$', source).group(1)}.obj \ |
||||
%endif |
||||
%endfor |
||||
%endif |
||||
|
||||
%if target.build != 'private': |
||||
${target.name}: ${target.name}.exe |
||||
echo Running ${target.name} |
||||
$(OUT_DIR)\${target.name}.exe |
||||
%endif |
||||
%endif |
||||
% endfor |
||||
%YAML 1.2 |
||||
--- | |
||||
# 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. |
||||
<%! |
||||
import re |
||||
%>\ |
||||
<%namespace file="packages.include" import="get_name"/>\ |
||||
<%def name="to_windows_path(path)">${path.replace('/','\\')}</%def>\ |
||||
<% |
||||
build_from_project_file = set(['gpr', |
||||
'gpr_test_util', |
||||
'grpc', |
||||
'grpc_test_util', |
||||
'grpc_test_util_unsecure', |
||||
'grpc_unsecure', |
||||
'grpc++', |
||||
'grpc++_unsecure' |
||||
]) |
||||
buildable_targets = [ target for target in targets + libs |
||||
if target.build in ['all', 'test', 'private', 'tool', 'benchmark'] and |
||||
target.language in ['c', 'c++'] and |
||||
all([(src.endswith('.c') or src.endswith('.cc') or src.endswith('.proto')) for src in target.src]) and |
||||
'windows' in target.get('platforms', ['windows']) ] |
||||
c_test_targets = [ target for target in buildable_targets if target.build == 'test' and not target.language == 'c++' ] |
||||
cxx_test_targets = [ target for target in buildable_targets if target.build == 'test' and target.language == 'c++' ] |
||||
%>\ |
||||
# NMake file to build secondary gRPC targets on Windows. |
||||
# Use grpc.sln to solution to build the gRPC libraries. |
||||
|
||||
OUT_DIR=test_bin |
||||
|
||||
CC=cl.exe /nologo |
||||
LINK=link.exe /nologo |
||||
LIBTOOL=lib.exe /nologo /nodefaultlib |
||||
|
||||
REPO_ROOT=.. |
||||
OPENSSL_INCLUDES = .\packages\${get_name(vsprojects, 'openssl')}\build\native\include |
||||
ZLIB_INCLUDES = .\packages\${get_name(vsprojects, 'zlib')}\build\native\include |
||||
INCLUDES=/I$(REPO_ROOT) /I$(REPO_ROOT)\include /I$(OPENSSL_INCLUDES) /I$(ZLIB_INCLUDES) |
||||
|
||||
GFLAGS_INCLUDES = .\..\third_party\gflags\include |
||||
GTEST_INCLUDES = .\..\third_party\gtest\include |
||||
PROTOBUF_INCLUDES = .\..\third_party\protobuf\src |
||||
CXX_INCLUDES=/I$(GFLAGS_INCLUDES) /I$(GTEST_INCLUDES) /I$(PROTOBUF_INCLUDES) |
||||
|
||||
#_SCL_SECURE_NO_WARNINGS supresses a ton of "potentially unsafe use of std lib" warnings |
||||
DEFINES=/D WIN32 /D _LIB /D _USE_32BIT_TIME_T /D _UNICODE /D UNICODE /D _CRT_SECURE_NO_WARNINGS /D _SCL_SECURE_NO_WARNINGS |
||||
|
||||
#important options: /TC vs. /TP: compile as C vs. compile as C++ |
||||
CFLAGS=/c $(INCLUDES) /Z7 /W3 /WX- /sdl $(DEFINES) /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TC /analyze- |
||||
CXXFLAGS=/c $(INCLUDES) $(CXX_INCLUDES) /Z7 /W3 /WX- /sdl $(DEFINES) /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP /analyze- |
||||
|
||||
LFLAGS=/DEBUG /INCREMENTAL /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 |
||||
|
||||
OPENSSL_LIBS=.\packages\${get_name(vsprojects, 'openssl')}\build\native\lib\v120\Win32\Debug\static\ssleay32.lib .\packages\${get_name(vsprojects, 'openssl')}\build\native\lib\v120\Win32\Debug\static\libeay32.lib |
||||
WINSOCK_LIBS=ws2_32.lib |
||||
GENERAL_LIBS=advapi32.lib comdlg32.lib gdi32.lib kernel32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib shell32.lib user32.lib uuid.lib winspool.lib |
||||
ZLIB_LIBS=.\packages\${get_name(vsprojects, 'zlib')}\build\native\lib\v120\Win32\Debug\static\cdecl\zlib.lib |
||||
LIBS=$(OPENSSL_LIBS) $(ZLIB_LIBS) $(GENERAL_LIBS) $(WINSOCK_LIBS) |
||||
|
||||
#shlwapi.lib provides PathMatchSpec() for gflags in windows |
||||
GFLAGS_LIBS=.\..\third_party\gflags\lib\Debug\gflags.lib shlwapi.lib |
||||
GTEST_LIBS=.\..\third_party\gtest\msvc\gtest\Debug\gtestd.lib |
||||
PROTOBUF_LIBS=.\..\third_party\protobuf\vsprojects\Debug\libprotobuf.lib |
||||
CXX_LIBS=$(GFLAGS_LIBS) $(GTEST_LIBS) $(PROTOBUF_LIBS) |
||||
|
||||
all: buildtests |
||||
|
||||
tools: |
||||
|
||||
tools_c: |
||||
|
||||
tools_cxx: |
||||
|
||||
$(OUT_DIR): |
||||
mkdir $(OUT_DIR) |
||||
|
||||
build_libs: \ |
||||
% for target in buildable_targets: |
||||
% if target.build == 'private' or target.build == 'all': |
||||
% if target.name in build_from_project_file: |
||||
build_${target.name} \ |
||||
% else: |
||||
Debug\${target.name}.lib \ |
||||
% endif |
||||
% endif |
||||
% endfor |
||||
|
||||
buildtests: buildtests_c buildtests_cxx |
||||
|
||||
buildtests_c: \ |
||||
% for target in c_test_targets: |
||||
${target.name}.exe \ |
||||
% endfor |
||||
|
||||
echo All C tests built. |
||||
|
||||
buildtests_cxx: \ |
||||
% for target in cxx_test_targets: |
||||
${target.name}.exe \ |
||||
% endfor |
||||
|
||||
echo All C++ tests built. |
||||
|
||||
% for target in buildable_targets: |
||||
|
||||
## replace all .proto includes with .pb.cc / .grpc.pb.cc |
||||
%if target.src: |
||||
%for source in target.src: |
||||
%if source.endswith(".proto"): |
||||
<% |
||||
src_name_parts = source.split(".") |
||||
target.src.append(src_name_parts[0] + ".pb.cc") |
||||
target.src.append(src_name_parts[0] + ".grpc.pb.cc") |
||||
%>\ |
||||
%endif |
||||
%endfor |
||||
%endif |
||||
## remove all .proto includes |
||||
<% |
||||
target.src = [item for item in target.src if not re.search('([^/]+)\.proto$', item)] |
||||
%>\ |
||||
%if target.name in build_from_project_file: |
||||
build_${target.name}: |
||||
msbuild grpc.sln /t:${target.name} /p:Configuration=Debug /p:Linkage-grpc_dependencies_zlib=static |
||||
%else: |
||||
%if target.build == 'private': |
||||
Debug\${target.name}.lib: \ |
||||
%else: |
||||
${target.name}.exe: \ |
||||
%for dep in target.get('deps', []): |
||||
%if dep in build_from_project_file: |
||||
build_${dep} \ |
||||
%else: |
||||
Debug\${dep}.lib \ |
||||
%endif |
||||
%endfor |
||||
%endif |
||||
$(OUT_DIR) |
||||
echo Building ${target.name} |
||||
%if target.language == 'c++': |
||||
$(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ \ |
||||
%else: |
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ \ |
||||
%endif |
||||
%for source in target.src: |
||||
$(REPO_ROOT)\${to_windows_path(source)} \ |
||||
%endfor |
||||
%if not target.src: |
||||
$(REPO_ROOT)\${to_windows_path('vsprojects/dummy.c')} \ |
||||
%endif |
||||
|
||||
%if target.build == 'private': |
||||
$(LIBTOOL) /OUT:"Debug\${target.name}.lib" \ |
||||
%else: |
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\${target.name}.exe" \ |
||||
%for dep in target.get('deps', []): |
||||
Debug\${dep}.lib \ |
||||
%endfor |
||||
%if target.language == 'c++': |
||||
$(CXX_LIBS) \ |
||||
%endif |
||||
$(LIBS) \ |
||||
%endif |
||||
%if not target.src: |
||||
$(OUT_DIR)\dummy.obj \ |
||||
%else: |
||||
%for source in target.src: |
||||
%if re.search('([^/]+)\.c{1,2}$', source): |
||||
$(OUT_DIR)\${re.search('([^/]+)\.c{1,2}$', source).group(1)}.obj \ |
||||
%endif |
||||
%endfor |
||||
%endif |
||||
|
||||
%if target.build != 'private': |
||||
${target.name}: ${target.name}.exe |
||||
echo Running ${target.name} |
||||
$(OUT_DIR)\${target.name}.exe |
||||
%endif |
||||
%endif |
||||
% endfor |
||||
|
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\ |
||||
${gen_filters('gpr', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('gpr', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('gpr_test_util', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\ |
||||
${gen_filters('grpc++', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc++', libs)} |
@ -1,2 +1,4 @@ |
||||
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\ |
||||
${gen_filters('grpc++_unsecure', libs)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\ |
||||
${gen_filters('grpc++_unsecure', libs)} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc++_unsecure', libs)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc++_unsecure', libs)} |
||||
|
@ -0,0 +1,7 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="sln_defs.include" import="gen_solution"/>\ |
||||
<% |
||||
solution_projects = [p for p in vsprojects if p.build != 'protoc' and p.language in ['c', 'c++'] and not (p.language == 'c++' and p.build in ['private', 'test'])] |
||||
%>\ |
||||
${gen_solution(solution_projects, use_dlls='yes')} |
@ -1,5 +1,7 @@ |
||||
<%namespace file="sln_defs.include" import="gen_solution"/>\ |
||||
<% |
||||
solution_projects = [p for p in vsprojects if p.build != 'protoc' and p.language in ['c', 'c++']] |
||||
%>\ |
||||
${gen_solution(solution_projects, use_dlls='yes')} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="sln_defs.include" import="gen_solution"/>\ |
||||
<% |
||||
solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'test'] and p.language in ['c', 'c++'] and p.vs_proj_dir == '.' and not (p.build == 'private' and p.language == 'c++')] |
||||
%>\ |
||||
${gen_solution(solution_projects, use_dlls='yes')} |
||||
|
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\ |
||||
${gen_filters('grpc', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc', libs, packages=['openssl','zlib'])} |
@ -1,2 +1,4 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_cpp_plugin', targets, configuration_type='Application')} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_cpp_plugin', targets)} |
||||
|
@ -1,5 +1,7 @@ |
||||
<%namespace file="sln_defs.include" import="gen_solution"/>\ |
||||
<% |
||||
solution_projects = [p for p in vsprojects if p.build == 'all' and p.language in ['c', 'csharp']] |
||||
%>\ |
||||
${gen_solution(solution_projects, use_dlls='only')} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="sln_defs.include" import="gen_solution"/>\ |
||||
<% |
||||
solution_projects = [p for p in vsprojects if p.build == 'all' and p.language in ['c', 'csharp']] |
||||
%>\ |
||||
${gen_solution(solution_projects, use_dlls='only')} |
||||
|
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_csharp_ext', libs, configuration_type = 'DynamicLibrary', props=['zlib-dll'], packages=['openssl','zlib'])} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../packages.include" import="gen_packages_config"/>\ |
||||
${gen_packages_config(['openssl','zlib'])} |
@ -1,2 +1,4 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_csharp_plugin', targets, configuration_type='Application')} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_csharp_plugin', targets)} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_objective_c_plugin', targets, configuration_type='Application')} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_objective_c_plugin', targets)} |
||||
|
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_plugin_support', libs)} |
@ -1,5 +1,7 @@ |
||||
<%namespace file="sln_defs.include" import="gen_solution"/>\ |
||||
<% |
||||
solution_projects = [p for p in vsprojects if p.build == 'protoc'] |
||||
%>\ |
||||
${gen_solution(solution_projects)} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="sln_defs.include" import="gen_solution"/>\ |
||||
<% |
||||
solution_projects = [p for p in vsprojects if p.build == 'protoc'] |
||||
%>\ |
||||
${gen_solution(solution_projects)} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_python_plugin', targets, configuration_type='Application')} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_python_plugin', targets)} |
||||
|
@ -1,2 +1,4 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_ruby_plugin', targets, configuration_type='Application')} |
||||
%YAML 1.2 |
||||
--- | |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_ruby_plugin', targets)} |
||||
|
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_test_util', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_test_util_unsecure', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\ |
||||
${gen_filters('grpc_unsecure', libs)} |
@ -1,2 +0,0 @@ |
||||
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project('grpc_unsecure', libs, packages=['zlib'])} |
@ -1,54 +1,53 @@ |
||||
<%! |
||||
openssl_pkg_name = "grpc.dependencies.openssl" |
||||
openssl_pkg_version = "1.0.2.2" |
||||
zlib_pkg_name = "grpc.dependencies.zlib" |
||||
zlib_pkg_version = "1.2.8.9" |
||||
%>\ |
||||
<%def name="get_openssl()">${openssl_pkg_name}.${openssl_pkg_version}</%def>\ |
||||
<%def name="get_zlib()">${zlib_pkg_name}.${zlib_pkg_version}</%def>\ |
||||
<%def name="get_name(vspackages, package)">${''.join('%s.%s' % (p.name, p.version) for p in vspackages if p.name == package)}</%def> |
||||
<%def name="gen_packages_config(packages)">\ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<packages> |
||||
% if 'openssl' in packages: |
||||
<package id="${openssl_pkg_name}" version="${openssl_pkg_version}" targetFramework="Native" /> |
||||
<package id="${openssl_pkg_name}.redist" version="${openssl_pkg_version}" targetFramework="Native" /> |
||||
% endif |
||||
% if 'zlib' in packages: |
||||
<package id="${zlib_pkg_name}" version="${zlib_pkg_version}" targetFramework="Native" /> |
||||
<package id="${zlib_pkg_name}.redist" version="${zlib_pkg_version}" targetFramework="Native" /> |
||||
% endif |
||||
% for package in vspackages: |
||||
% if packages == 'all' or package.name in packages: |
||||
<package id="${package.name}" version="${package.version}" targetFramework="Native" /> |
||||
% if package.redist: |
||||
<package id="${package.name}.redist" version="${package.version}" targetFramework="Native" /> |
||||
% endif |
||||
% endif |
||||
% endfor |
||||
</packages> |
||||
</%def>\ |
||||
<%def name="gen_package_props(packages)">\ |
||||
% if 'openssl' in packages: |
||||
<Import Project="..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.props" Condition="Exists('..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.props')" /> |
||||
% endif |
||||
<%def name="gen_package_props(packages, repo_root)">\ |
||||
% for package in vspackages: |
||||
% if packages == 'all' or package.name in packages: |
||||
% if package.props: |
||||
<Import Project="${repo_root}\vsprojects\packages\${package.name}.${package.version}\build\native\${package.name}.props" Condition="Exists('${repo_root}\vsprojects\packages\${package.name}.${package.version}\build\native\${package.version}.props')" /> |
||||
% endif |
||||
% endif |
||||
% endfor |
||||
</%def>\ |
||||
<%def name="gen_package_targets(packages)">\ |
||||
% if 'zlib' in packages: |
||||
<Import Project="..\packages\${zlib_pkg_name}.redist.${zlib_pkg_version}\build\native\${zlib_pkg_name}.redist.targets" Condition="Exists('..\packages\${zlib_pkg_name}.redist.${zlib_pkg_version}\build\native\${zlib_pkg_name}.redist.targets')" /> |
||||
<Import Project="..\packages\${zlib_pkg_name}.${zlib_pkg_version}\build\native\${zlib_pkg_name}.targets" Condition="Exists('..\packages\${zlib_pkg_name}.${zlib_pkg_version}\build\native\${zlib_pkg_name}.targets')" /> |
||||
%endif |
||||
% if 'openssl' in packages: |
||||
<Import Project="..\packages\${openssl_pkg_name}.redist.${openssl_pkg_version}\build\native\${openssl_pkg_name}.redist.targets" Condition="Exists('..\packages\${openssl_pkg_name}.redist.${openssl_pkg_version}\build\native\${openssl_pkg_name}.redist.targets')" /> |
||||
<Import Project="..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.targets" Condition="Exists('..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.targets')" /> |
||||
% endif |
||||
<%def name="gen_package_targets(packages, repo_root)">\ |
||||
% for package in vspackages: |
||||
% if packages == 'all' or package.name in packages: |
||||
% if package.redist: |
||||
<Import Project="${repo_root}\vsprojects\packages\${package.name}.redist.${package.version}\build\native\${package.name}.redist.targets" Condition="Exists('${repo_root}\vsprojects\packages\${package.name}.redist.${package.version}\build\native\grpc.dependencies\${package.name}.targets')" /> |
||||
% endif |
||||
<Import Project="${repo_root}\vsprojects\packages\${package.name}.${package.version}\build\native\${package.name}.targets" Condition="Exists('${repo_root}\vsprojects\packages\${package.name}.${package.version}\build\native\grpc.dependencies\${package.name}.targets')" /> |
||||
% endif |
||||
% endfor |
||||
</%def>\ |
||||
<%def name="gen_package_ensure(packages)">\ |
||||
% if packages: |
||||
<%def name="check_file_inner(file)"><Error Condition="!Exists('${file}')" Text="$([System.String]::Format('$(ErrorText)', '${file}')" /></%def>\ |
||||
<%def name="check_file(file, repo_root, package)">${check_file_inner(file % {'root':repo_root, 'name':package.name, 'version':package.version})}</%def>\ |
||||
<%def name="gen_package_ensure(packages, repo_root)">\ |
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
||||
<PropertyGroup> |
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> |
||||
</PropertyGroup> |
||||
% if 'zlib' in packages: |
||||
<Error Condition="!Exists('..\packages\${zlib_pkg_name}.redist.${zlib_pkg_version}\build\native\${zlib_pkg_name}.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\${zlib_pkg_name}.redist.${zlib_pkg_version}\build\native\${zlib_pkg_name}.redist.targets'))" /> |
||||
<Error Condition="!Exists('..\packages\${zlib_pkg_name}.${zlib_pkg_version}\build\native\${zlib_pkg_name}.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\${zlib_pkg_name}.${zlib_pkg_version}\build\native\${zlib_pkg_name}.targets'))" /> |
||||
%endif |
||||
% if 'openssl' in packages: |
||||
<Error Condition="!Exists('..\packages\${openssl_pkg_name}.redist.${openssl_pkg_version}\build\native\${openssl_pkg_name}.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\${openssl_pkg_name}.redist.${openssl_pkg_version}\build\native\${openssl_pkg_name}.redist.targets'))" /> |
||||
<Error Condition="!Exists('..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.props'))" /> |
||||
<Error Condition="!Exists('..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\${openssl_pkg_name}.${openssl_pkg_version}\build\native\${openssl_pkg_name}.targets'))" /> |
||||
%endif |
||||
% for package in vspackages: |
||||
% if packages == 'all' or package.name in packages: |
||||
% if package.redist: |
||||
${check_file('%(root)s\\vsprojects\\packages\\%(name)s.redist.%(version)s\\build\\native\\%(name)s.redist.targets', repo_root, package)} |
||||
% endif |
||||
% if package.props: |
||||
${check_file('%(root)s\\vsprojects\\packages\\%(name)s.%(version)s\\build\\native\\%(name)s.props', repo_root, package)} |
||||
% endif |
||||
${check_file('%(root)s\\vsprojects\\packages\\%(name)s.%(version)s\\build\\native\\%(name)s.targets', repo_root, package)} |
||||
% endif |
||||
% endfor |
||||
</Target> |
||||
%endif |
||||
</%def>\ |
||||
|
@ -0,0 +1,18 @@ |
||||
%YAML 1.2 |
||||
--- |
||||
foreach: vsprojects |
||||
output_name: ${selected.vs_proj_dir}/${selected.name}/${selected.name}.vcxproj |
||||
template: | |
||||
<%namespace file="vcxproj_defs.include" import="gen_project"/>\ |
||||
${gen_project(selected.name, vsprojects)} |
||||
--- |
||||
foreach: vsprojects |
||||
output_name: ${selected.vs_proj_dir}/${selected.name}/${selected.name}.vcxproj.filters |
||||
template: | |
||||
<%namespace file="vcxproj.filters_defs.include" import="gen_filters"/>\ |
||||
${gen_filters(selected.name, vsprojects)} |
||||
--- |
||||
output_name: grpc/packages.config |
||||
template: | |
||||
<%namespace file="packages.include" import="gen_packages_config"/>\ |
||||
${gen_packages_config('all')} |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue