Merge pull request #1485 from nicolasnoble/building-win32-tests

Making the gRPC C tests building under Windows.
pull/1545/head
Craig Tiller 10 years ago
commit 47bfcc0730
  1. 604
      Makefile
  2. 24
      build.json
  3. 8
      include/grpc/support/tls.h
  4. 2
      include/grpc/support/tls_msvc.h
  5. 70
      templates/vsprojects/Grpc.mak.template
  6. 33
      templates/vsprojects/generate_debug_projects.sh
  7. 2
      templates/vsprojects/gpr/gpr.vcxproj.filters.template
  8. 2
      templates/vsprojects/gpr/gpr.vcxproj.template
  9. 2
      templates/vsprojects/gpr_test_util/gpr_test_util.vcxproj.template
  10. 2
      templates/vsprojects/grpc++/grpc++.vcxproj.filters.template
  11. 2
      templates/vsprojects/grpc++/grpc++.vcxproj.template
  12. 2
      templates/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters.template
  13. 2
      templates/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.template
  14. 2
      templates/vsprojects/grpc/grpc.vcxproj.filters.template
  15. 2
      templates/vsprojects/grpc/grpc.vcxproj.template
  16. 2
      templates/vsprojects/grpc_csharp_ext/grpc_csharp_ext.vcxproj.template
  17. 2
      templates/vsprojects/grpc_test_util/grpc_test_util.vcxproj.template
  18. 2
      templates/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters.template
  19. 2
      templates/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.template
  20. 2
      templates/vsprojects/vcxproj.filters_defs.include
  21. 40
      templates/vsprojects/vcxproj_defs.include
  22. 0
      test/core/end2end/fixtures/chttp2_fullstack_uds_posix.c
  23. 27
      test/core/end2end/gen_build_json.py
  24. 1
      test/core/end2end/tests/bad_hostname.c
  25. 1
      test/core/end2end/tests/cancel_after_accept.c
  26. 1
      test/core/end2end/tests/cancel_after_accept_and_writes_closed.c
  27. 1
      test/core/end2end/tests/cancel_after_invoke.c
  28. 1
      test/core/end2end/tests/cancel_before_invoke.c
  29. 1
      test/core/end2end/tests/cancel_in_a_vacuum.c
  30. 1
      test/core/end2end/tests/census_simple_request.c
  31. 1
      test/core/end2end/tests/disappearing_server.c
  32. 1
      test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c
  33. 1
      test/core/end2end/tests/early_server_shutdown_finishes_tags.c
  34. 1
      test/core/end2end/tests/empty_batch.c
  35. 1
      test/core/end2end/tests/graceful_server_shutdown.c
  36. 1
      test/core/end2end/tests/invoke_large_request.c
  37. 1
      test/core/end2end/tests/max_concurrent_streams.c
  38. 1
      test/core/end2end/tests/max_message_length.c
  39. 1
      test/core/end2end/tests/no_op.c
  40. 1
      test/core/end2end/tests/ping_pong_streaming.c
  41. 1
      test/core/end2end/tests/registered_call.c
  42. 1
      test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c
  43. 1
      test/core/end2end/tests/request_response_with_metadata_and_payload.c
  44. 1
      test/core/end2end/tests/request_response_with_payload.c
  45. 9
      test/core/end2end/tests/request_response_with_payload_and_call_creds.c
  46. 1
      test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c
  47. 1
      test/core/end2end/tests/request_with_large_metadata.c
  48. 1
      test/core/end2end/tests/request_with_payload.c
  49. 1
      test/core/end2end/tests/simple_delayed_request.c
  50. 1
      test/core/end2end/tests/simple_request.c
  51. 1
      test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c
  52. 5
      test/core/fling/server.c
  53. 1
      test/core/iomgr/sockaddr_utils_test.c
  54. 2
      test/core/security/secure_endpoint_test.c
  55. 12
      tools/buildgen/plugins/generate_vsprojects.py
  56. 166
      tools/run_tests/tests.json
  57. 1055
      vsprojects/Grpc.mak
  58. 0
      vsprojects/dummy.c
  59. 2
      vsprojects/global.props
  60. 250
      vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
  61. 226
      vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
  62. 14
      vsprojects/grpc.sln
  63. 8
      vsprojects/grpc_csharp_ext/grpc_csharp_ext.vcxproj
  64. 2
      vsprojects/openssl.props
  65. 13
      vsprojects/protobuf.props
  66. 2
      vsprojects/zlib.props

File diff suppressed because one or more lines are too long

@ -555,7 +555,8 @@
"filegroups": [
"grpc++_base"
],
"secure": "no"
"secure": "no",
"vs_project_guid": "{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}"
},
{
"name": "grpc_plugin_support",
@ -1000,6 +1001,9 @@
"grpc",
"gpr_test_util",
"gpr"
],
"platforms": [
"posix"
]
},
{
@ -1044,6 +1048,9 @@
"grpc",
"gpr_test_util",
"gpr"
],
"platforms": [
"posix"
]
},
{
@ -1058,6 +1065,9 @@
"grpc",
"gpr_test_util",
"gpr"
],
"platforms": [
"posix"
]
},
{
@ -1613,6 +1623,9 @@
"grpc",
"gpr_test_util",
"gpr"
],
"platforms": [
"posix"
]
},
{
@ -1669,6 +1682,9 @@
"grpc",
"gpr_test_util",
"gpr"
],
"platforms": [
"posix"
]
},
{
@ -1683,6 +1699,9 @@
"grpc",
"gpr_test_util",
"gpr"
],
"platforms": [
"posix"
]
},
{
@ -1697,6 +1716,9 @@
"grpc",
"gpr_test_util",
"gpr"
],
"platforms": [
"posix"
]
},
{

@ -34,7 +34,7 @@
#ifndef GRPC_SUPPORT_TLS_H
#define GRPC_SUPPORT_TLS_H
#include "port_platform.h"
#include <grpc/support/port_platform.h>
/* Thread local storage.
@ -63,15 +63,15 @@
ALL functions here may be implemented as macros. */
#ifdef GPR_GCC_TLS
#include "tls_gcc.h"
#include <grpc/support/tls_gcc.h>
#endif
#ifdef GPR_MSVC_TLS
#include "tls_msvc.h"
#include <grpc/support/tls_msvc.h>
#endif
#ifdef GPR_PTHREAD_TLS
#include "tls_pthread.h"
#include <grpc/support/tls_pthread.h>
#endif
#endif

@ -42,7 +42,7 @@ struct gpr_msvc_thread_local {
};
#define GPR_TLS_DECL(name) \
static __thread struct gpr_msvc_thread_local name = {0}
static __declspec(thread) struct gpr_msvc_thread_local name = {0}
#define gpr_tls_init(tls) do {} while (0)
#define gpr_tls_destroy(tls) do {} while (0)

@ -33,10 +33,19 @@
<%def name="to_windows_path(path)">${path.replace('/','\\')}</%def>\
<%
disallowed_dependencies = set(['end2end_certs'])
buildable_targets = [ target for target in targets
if not disallowed_dependencies.intersection(target.deps) and
build_from_project_file = set(['gpr',
'grpc',
'grpc_unsecure',
'gpr_test_util',
'grpc_test_util',
'grpc_test_util_unsecure',
])
buildable_targets = [ target for target in targets + libs
if not disallowed_dependencies.intersection(target.get('deps', [])) and
target.build in ['all', 'test', 'private', 'tool', 'benchmark'] and
target.language in ['c', 'c++'] and
all([src.endswith('.c') for src in target.src]) and
'windows' in target.platforms ]
'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++' ]
%>\
@ -45,31 +54,40 @@
OUT_DIR=test_bin
CC=cl.exe
LINK=link.exe
CC=cl.exe /nologo
LINK=link.exe /nologo
LIBTOOL=lib.exe /nologo /nodefaultlib
REPO_ROOT=..
OPENSSL_INCLUDES = .\packages\${get_openssl()}\build\native\include\v120\Win32\Debug\static
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)
DEFINES=/D WIN32 /D _LIB /D _USE_32BIT_TIME_T /D _UNICODE /D UNICODE /D _CRT_SECURE_NO_WARNINGS
CFLAGS=/c $(INCLUDES) /nologo /Z7 /W3 /WX- /sdl $(DEFINES) /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TC /analyze-
LFLAGS=/DEBUG /INCREMENTAL /NOLOGO /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86
CFLAGS=/c $(INCLUDES) /Z7 /W3 /WX- /sdl $(DEFINES) /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TC /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) $(WINSOCK_LIBS) $(ZLIB_LIBS)
LIBS=$(OPENSSL_LIBS) $(ZLIB_LIBS) $(GENERAL_LIBS) $(WINSOCK_LIBS)
build_gpr_test_util:
msbuild grpc.sln /t:gpr_test_util /p:Configuration=Debug
build_grpc_test_util:
msbuild grpc.sln /t:grpc_test_util /p:Configuration=Debug
all: buildtests
$(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: \
@ -87,24 +105,42 @@ ${target.name}.exe \
echo All tests built.
% for target in buildable_targets:
${target.name}.exe: build_grpc_test_util $(OUT_DIR)
%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: build_libs \
%endif
$(OUT_DIR)
echo Building ${target.name}
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ \
%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.deps:
%for dep in target.get('deps', []):
Debug\${dep}.lib \
%endfor
$(LIBS) \
%endif
%for source in target.src:
$(OUT_DIR)\${re.search('([^/]+)\.c$', source).group(1)}.obj \
%endfor
%if target.build != 'private':
${target.name}: ${target.name}.exe
echo Running ${target.name}
$(OUT_DIR)\${target.name}.exe
%endif
%endif
% endfor

@ -0,0 +1,33 @@
#!/bin/sh
# To properly use this, you'll need to add:
#
# "debug": true
#
# to build.json
cd `dirname $0`/../..
./tools/buildgen/generate_projects.sh
git diff |
grep \\+Project |
cut -d\" -f 4 |
sort -u |
grep _test$ |
while read p ; do
mkdir -p templates/vsprojects/$p
echo '<%namespace file="../vcxproj_defs.include" import="gen_project"/>${gen_project("'$p'", targets)}' > templates/vsprojects/$p/$p.vcxproj.template
done
git diff |
grep \\+Project |
cut -d\" -f 4 |
sort -u |
grep -v _test$ |
while read p ; do
mkdir -p templates/vsprojects/$p
echo '<%namespace file="../vcxproj_defs.include" import="gen_project"/>${gen_project("'$p'", libs)}' > templates/vsprojects/$p/$p.vcxproj.template
done
./tools/buildgen/generate_projects.sh

@ -1,2 +1,2 @@
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\
${gen_filters('gpr', libs, targets)}
${gen_filters('gpr', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('gpr', libs, targets)}
${gen_project('gpr', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('gpr_test_util', libs, targets)}
${gen_project('gpr_test_util', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\
${gen_filters('grpc++', libs, targets)}
${gen_filters('grpc++', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('grpc++', libs, targets)}
${gen_project('grpc++', libs)}

@ -0,0 +1,2 @@
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\
${gen_filters('grpc++_unsecure', libs)}

@ -0,0 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('grpc++_unsecure', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\
${gen_filters('grpc', libs, targets)}
${gen_filters('grpc', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('grpc', libs, targets, packages=['openssl','zlib'])}
${gen_project('grpc', libs, packages=['openssl','zlib'])}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('grpc_csharp_ext', libs, targets, configuration_type = 'DynamicLibrary', additional_props = ['winsock'], packages=['openssl','zlib'])}
${gen_project('grpc_csharp_ext', libs, configuration_type = 'DynamicLibrary', props = ['winsock'], packages=['openssl','zlib'])}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('grpc_test_util', libs, targets)}
${gen_project('grpc_test_util', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj.filters_defs.include" import="gen_filters"/>\
${gen_filters('grpc_unsecure', libs, targets)}
${gen_filters('grpc_unsecure', libs)}

@ -1,2 +1,2 @@
<%namespace file="../vcxproj_defs.include" import="gen_project"/>\
${gen_project('grpc_unsecure', libs, targets, packages=['zlib'])}
${gen_project('grpc_unsecure', libs, packages=['zlib'])}

@ -9,7 +9,7 @@
<%def name="to_windows_path(path)">${path.replace('/','\\')}</%def>\
<%def name="to_filter(path)">${calc_to_filter(path)}</%def>\
<%def name="filter_to_guid(proj, filter)">${re.sub('(........)(....)(....)(....)', r'\1-\2-\3-\4-', hashlib.md5(''.join([filter, proj])).hexdigest())}</%def>\
<%def name="gen_filters(name, libs, targets)">\
<%def name="gen_filters(name, collection)">\
% for project in vsprojects:
% if project.name == name:
<?xml version="1.0" encoding="utf-8"?>

@ -2,9 +2,24 @@
<%def name="get_repo_root()">..\..</%def>\
<%def name="to_windows_path(path)">${path.replace('/','\\')}</%def>\
<%def name="get_subsystem(is_library)">${'Windows' if is_library else 'Console'}</%def>\
<%def name="gen_project(name, libs, targets, configuration_type = 'StaticLibrary', project_guid = None, additional_props = [], packages = [])">\
% for project in vsprojects:
% if project.name == name:
<%def name="gen_project(name, collection, configuration_type = None, project_guid = None, props = [], packages = [])">\
<%
for p in vsprojects:
if p.name == name:
project = p
for t in collection:
if t.name == name:
target = t
if not configuration_type:
configuration_type = 'StaticLibrary'
if not project_guid:
project_guid = project.vs_project_guid
if configuration_type == 'Application':
props.extend(['winsock', 'protobuf', 'zlib', 'openssl'])
if target.language == 'c++':
props.extend(['protobuf'])
props.extend(['global'])
%>\
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
${gen_package_props(packages)}\
@ -66,29 +81,25 @@ ${gen_package_props(packages)}\
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
% for prop in additional_props:
% for prop in props:
<Import Project="..\${prop}.props" />
% endfor
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
% for prop in additional_props:
% for prop in props:
<Import Project="..\${prop}.props" />
% endfor
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
% for prop in additional_props:
% for prop in props:
<Import Project="..\${prop}.props" />
% endfor
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
% for prop in additional_props:
% for prop in props:
<Import Project="..\${prop}.props" />
% endfor
</ImportGroup>
@ -186,6 +197,11 @@ ${gen_package_props(packages)}\
</ClCompile>
% endfor
</ItemGroup>
% elif configuration_type != 'StaticLibrary':
<ItemGroup>
<ClCompile Include="${get_repo_root()}\${to_windows_path('vsprojects/dummy.c')}">
</ClCompile>
</ItemGroup>
% endif
% if project.get('deps',[]):
<ItemGroup>
@ -207,6 +223,4 @@ ${gen_package_targets(packages)}\
</ImportGroup>
${gen_package_ensure(packages)}\
</Project>
% endif
% endfor
</%def>\

@ -36,15 +36,19 @@ import simplejson
import collections
FixtureOptions = collections.namedtuple('FixtureOptions', 'secure platforms')
default_unsecure_fixture_options = FixtureOptions(False, ['windows', 'posix'])
default_secure_fixture_options = FixtureOptions(True, ['windows', 'posix'])
# maps fixture name to whether it requires the security library
END2END_FIXTURES = {
'chttp2_fake_security': True,
'chttp2_fullstack': False,
'chttp2_fullstack_uds': False,
'chttp2_simple_ssl_fullstack': True,
'chttp2_simple_ssl_with_oauth2_fullstack': True,
'chttp2_socket_pair': False,
'chttp2_socket_pair_one_byte_at_a_time': False,
'chttp2_fake_security': default_secure_fixture_options,
'chttp2_fullstack': default_unsecure_fixture_options,
'chttp2_fullstack_uds_posix': FixtureOptions(False, ['posix']),
'chttp2_simple_ssl_fullstack': default_secure_fixture_options,
'chttp2_simple_ssl_with_oauth2_fullstack': default_secure_fixture_options,
'chttp2_socket_pair': default_unsecure_fixture_options,
'chttp2_socket_pair_one_byte_at_a_time': default_unsecure_fixture_options,
}
TestOptions = collections.namedtuple('TestOptions', 'flaky secure')
@ -90,8 +94,9 @@ def main():
'name': 'end2end_fixture_%s' % f,
'build': 'private',
'language': 'c',
'secure': 'check' if END2END_FIXTURES[f] else 'no',
'src': ['test/core/end2end/fixtures/%s.c' % f]
'secure': 'check' if END2END_FIXTURES[f].secure else 'no',
'src': ['test/core/end2end/fixtures/%s.c' % f],
'platforms': [ 'posix' ] if f.endswith('_posix') else [ 'windows', 'posix' ],
}
for f in sorted(END2END_FIXTURES.keys())] + [
{
@ -121,6 +126,7 @@ def main():
'language': 'c',
'src': [],
'flaky': END2END_TESTS[t].flaky,
'platforms': END2END_FIXTURES[f].platforms,
'deps': [
'end2end_fixture_%s' % f,
'end2end_test_%s' % t,
@ -140,6 +146,7 @@ def main():
'secure': 'no',
'src': [],
'flaky': 'invoke_large_request' in t,
'platforms': END2END_FIXTURES[f].platforms,
'deps': [
'end2end_fixture_%s' % f,
'end2end_test_%s' % t,
@ -149,7 +156,7 @@ def main():
'gpr'
]
}
for f in sorted(END2END_FIXTURES.keys()) if not END2END_FIXTURES[f]
for f in sorted(END2END_FIXTURES.keys()) if not END2END_FIXTURES[f].secure
for t in sorted(END2END_TESTS.keys()) if not END2END_TESTS[t].secure]}
print simplejson.dumps(json, sort_keys=True, indent=2 * ' ')

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "src/core/support/string.h"
#include <grpc/byte_buffer.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "src/core/support/string.h"
#include <grpc/byte_buffer.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "src/core/support/string.h"
#include <grpc/byte_buffer.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "src/core/support/string.h"
#include <grpc/byte_buffer.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/grpc_security.h>
#include <grpc/byte_buffer.h>
@ -55,7 +54,7 @@ static const char overridden_iam_selector[] = "overridden_selector";
typedef enum {
NONE,
OVERRIDE,
DELETE
DESTROY
} override_mode;
enum { TIMEOUT = 200000 };
@ -180,7 +179,7 @@ static void request_response_with_payload_and_call_creds(
GPR_ASSERT(creds != NULL);
GPR_ASSERT(grpc_call_set_credentials(c, creds) == GRPC_CALL_OK);
break;
case DELETE:
case DESTROY:
GPR_ASSERT(grpc_call_set_credentials(c, NULL) == GRPC_CALL_OK);
break;
}
@ -275,7 +274,7 @@ static void request_response_with_payload_and_call_creds(
GRPC_IAM_AUTHORITY_SELECTOR_METADATA_KEY,
overridden_iam_selector));
break;
case DELETE:
case DESTROY:
GPR_ASSERT(!contains_metadata(&request_metadata_recv,
GRPC_IAM_AUTHORIZATION_TOKEN_METADATA_KEY,
iam_token));
@ -324,7 +323,7 @@ void test_request_response_with_payload_and_overridden_call_creds(
void test_request_response_with_payload_and_deleted_call_creds(
grpc_end2end_test_config config) {
request_response_with_payload_and_call_creds(__FUNCTION__, config, DELETE);
request_response_with_payload_and_call_creds(__FUNCTION__, config, DESTROY);
}
void grpc_end2end_tests(grpc_end2end_test_config config) {

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <grpc/byte_buffer.h>
#include <grpc/support/alloc.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "src/core/support/string.h"
#include <grpc/byte_buffer.h>

@ -35,7 +35,6 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "src/core/support/string.h"
#include <grpc/byte_buffer.h>

@ -39,7 +39,10 @@
#include <stdlib.h>
#include <string.h>
#include <time.h>
#ifndef _WIN32
/* This is for _exit() below, which is temporary. */
#include <unistd.h>
#endif
#include "test/core/util/grpc_profiler.h"
#include "test/core/util/test_config.h"
@ -166,6 +169,8 @@ static void start_send_status(void) {
tag(FLING_SERVER_SEND_STATUS_FOR_STREAMING)));
}
/* We have some sort of deadlock, so let's not exit gracefully for now.
When that is resolved, please remove the #include <unistd.h> above. */
static void sigint_handler(int x) { _exit(0); }
int main(int argc, char **argv) {

@ -34,7 +34,6 @@
#include "src/core/iomgr/sockaddr_utils.h"
#include <errno.h>
#include <netinet/in.h>
#include <string.h>
#include <grpc/support/alloc.h>

@ -35,8 +35,6 @@
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include "src/core/security/secure_endpoint.h"
#include "src/core/iomgr/endpoint_pair.h"

@ -35,6 +35,10 @@ and "vsproject_dict", to be used by the visual studio generators.
"""
import hashlib
import re
def mako_plugin(dictionary):
"""The exported plugin code for generate_vsprojeccts
@ -53,6 +57,14 @@ def mako_plugin(dictionary):
projects = []
projects.extend(libs)
projects.extend(targets)
if dictionary.get('debug', False):
for target in projects:
if not target.get('vs_project_guid', None) and 'windows' in target.get('platforms', ['windows']):
name = target['name']
guid = re.sub('(........)(....)(....)(....)(.*)',
r'{\1-\2-\3-\4-\5}',
hashlib.md5(name).hexdigest())
target['vs_project_guid'] = guid.upper()
# Exclude projects without a visual project guid, such as the tests.
projects = [project for project in projects
if project.get('vs_project_guid', None)]

@ -158,7 +158,6 @@
"language": "c",
"name": "fd_posix_test",
"platforms": [
"windows",
"posix"
]
},
@ -167,7 +166,6 @@
"language": "c",
"name": "fling_stream_test",
"platforms": [
"windows",
"posix"
]
},
@ -176,7 +174,6 @@
"language": "c",
"name": "fling_test",
"platforms": [
"windows",
"posix"
]
},
@ -482,7 +479,6 @@
"language": "c",
"name": "poll_kick_posix_test",
"platforms": [
"windows",
"posix"
]
},
@ -518,7 +514,6 @@
"language": "c",
"name": "tcp_client_posix_test",
"platforms": [
"windows",
"posix"
]
},
@ -527,7 +522,6 @@
"language": "c",
"name": "tcp_posix_test",
"platforms": [
"windows",
"posix"
]
},
@ -536,7 +530,6 @@
"language": "c",
"name": "tcp_server_posix_test",
"platforms": [
"windows",
"posix"
]
},
@ -1182,243 +1175,216 @@
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_bad_hostname_test",
"name": "chttp2_fullstack_uds_posix_bad_hostname_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": true,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_after_accept_test",
"name": "chttp2_fullstack_uds_posix_cancel_after_accept_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_after_accept_and_writes_closed_test",
"name": "chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_after_invoke_test",
"name": "chttp2_fullstack_uds_posix_cancel_after_invoke_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_before_invoke_test",
"name": "chttp2_fullstack_uds_posix_cancel_before_invoke_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_in_a_vacuum_test",
"name": "chttp2_fullstack_uds_posix_cancel_in_a_vacuum_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_census_simple_request_test",
"name": "chttp2_fullstack_uds_posix_census_simple_request_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_disappearing_server_test",
"name": "chttp2_fullstack_uds_posix_disappearing_server_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_early_server_shutdown_finishes_inflight_calls_test",
"name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_early_server_shutdown_finishes_tags_test",
"name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_empty_batch_test",
"name": "chttp2_fullstack_uds_posix_empty_batch_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_graceful_server_shutdown_test",
"name": "chttp2_fullstack_uds_posix_graceful_server_shutdown_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": true,
"language": "c",
"name": "chttp2_fullstack_uds_invoke_large_request_test",
"name": "chttp2_fullstack_uds_posix_invoke_large_request_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_max_concurrent_streams_test",
"name": "chttp2_fullstack_uds_posix_max_concurrent_streams_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_max_message_length_test",
"name": "chttp2_fullstack_uds_posix_max_message_length_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_no_op_test",
"name": "chttp2_fullstack_uds_posix_no_op_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_ping_pong_streaming_test",
"name": "chttp2_fullstack_uds_posix_ping_pong_streaming_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_registered_call_test",
"name": "chttp2_fullstack_uds_posix_registered_call_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_response_with_binary_metadata_and_payload_test",
"name": "chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_response_with_metadata_and_payload_test",
"name": "chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_response_with_payload_test",
"name": "chttp2_fullstack_uds_posix_request_response_with_payload_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_response_with_payload_and_call_creds_test",
"name": "chttp2_fullstack_uds_posix_request_response_with_payload_and_call_creds_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_with_large_metadata_test",
"name": "chttp2_fullstack_uds_posix_request_with_large_metadata_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_with_payload_test",
"name": "chttp2_fullstack_uds_posix_request_with_payload_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_simple_delayed_request_test",
"name": "chttp2_fullstack_uds_posix_simple_delayed_request_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_simple_request_test",
"name": "chttp2_fullstack_uds_posix_simple_request_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_simple_request_with_high_initial_sequence_number_test",
"name": "chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test",
"platforms": [
"windows",
"posix"
]
},
@ -2631,234 +2597,208 @@
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_bad_hostname_unsecure_test",
"name": "chttp2_fullstack_uds_posix_bad_hostname_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_after_accept_unsecure_test",
"name": "chttp2_fullstack_uds_posix_cancel_after_accept_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_after_accept_and_writes_closed_unsecure_test",
"name": "chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_after_invoke_unsecure_test",
"name": "chttp2_fullstack_uds_posix_cancel_after_invoke_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_before_invoke_unsecure_test",
"name": "chttp2_fullstack_uds_posix_cancel_before_invoke_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_cancel_in_a_vacuum_unsecure_test",
"name": "chttp2_fullstack_uds_posix_cancel_in_a_vacuum_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_census_simple_request_unsecure_test",
"name": "chttp2_fullstack_uds_posix_census_simple_request_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_disappearing_server_unsecure_test",
"name": "chttp2_fullstack_uds_posix_disappearing_server_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_early_server_shutdown_finishes_inflight_calls_unsecure_test",
"name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_early_server_shutdown_finishes_tags_unsecure_test",
"name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_empty_batch_unsecure_test",
"name": "chttp2_fullstack_uds_posix_empty_batch_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_graceful_server_shutdown_unsecure_test",
"name": "chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": true,
"language": "c",
"name": "chttp2_fullstack_uds_invoke_large_request_unsecure_test",
"name": "chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_max_concurrent_streams_unsecure_test",
"name": "chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_max_message_length_unsecure_test",
"name": "chttp2_fullstack_uds_posix_max_message_length_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_no_op_unsecure_test",
"name": "chttp2_fullstack_uds_posix_no_op_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_ping_pong_streaming_unsecure_test",
"name": "chttp2_fullstack_uds_posix_ping_pong_streaming_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_registered_call_unsecure_test",
"name": "chttp2_fullstack_uds_posix_registered_call_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_response_with_binary_metadata_and_payload_unsecure_test",
"name": "chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_response_with_metadata_and_payload_unsecure_test",
"name": "chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_response_with_payload_unsecure_test",
"name": "chttp2_fullstack_uds_posix_request_response_with_payload_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_with_large_metadata_unsecure_test",
"name": "chttp2_fullstack_uds_posix_request_with_large_metadata_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_request_with_payload_unsecure_test",
"name": "chttp2_fullstack_uds_posix_request_with_payload_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_simple_delayed_request_unsecure_test",
"name": "chttp2_fullstack_uds_posix_simple_delayed_request_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_simple_request_unsecure_test",
"name": "chttp2_fullstack_uds_posix_simple_request_unsecure_test",
"platforms": [
"windows",
"posix"
]
},
{
"flaky": false,
"language": "c",
"name": "chttp2_fullstack_uds_simple_request_with_high_initial_sequence_number_unsecure_test",
"name": "chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_unsecure_test",
"platforms": [
"windows",
"posix"
]
},

File diff suppressed because one or more lines are too long

@ -5,7 +5,7 @@
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\third_party\protobuf\src</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)\..\..;$(ProjectDir)\..\..\include;$(ProjectDir)\..\..\third_party\protobuf\src;$(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>EnableAllWarnings</WarningLevel>
</ClCompile>

@ -0,0 +1,250 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}</ProjectGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
<PlatformToolset>v100</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetName>grpc++_unsecure</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>grpc++_unsecure</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetName>grpc++_unsecure</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>grpc++_unsecure</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\include\grpc++\async_generic_service.h" />
<ClInclude Include="..\..\include\grpc++\async_unary_call.h" />
<ClInclude Include="..\..\include\grpc++\byte_buffer.h" />
<ClInclude Include="..\..\include\grpc++\channel_arguments.h" />
<ClInclude Include="..\..\include\grpc++\channel_interface.h" />
<ClInclude Include="..\..\include\grpc++\client_context.h" />
<ClInclude Include="..\..\include\grpc++\completion_queue.h" />
<ClInclude Include="..\..\include\grpc++\config.h" />
<ClInclude Include="..\..\include\grpc++\create_channel.h" />
<ClInclude Include="..\..\include\grpc++\credentials.h" />
<ClInclude Include="..\..\include\grpc++\generic_stub.h" />
<ClInclude Include="..\..\include\grpc++\impl\call.h" />
<ClInclude Include="..\..\include\grpc++\impl\client_unary_call.h" />
<ClInclude Include="..\..\include\grpc++\impl\grpc_library.h" />
<ClInclude Include="..\..\include\grpc++\impl\internal_stub.h" />
<ClInclude Include="..\..\include\grpc++\impl\rpc_method.h" />
<ClInclude Include="..\..\include\grpc++\impl\rpc_service_method.h" />
<ClInclude Include="..\..\include\grpc++\impl\service_type.h" />
<ClInclude Include="..\..\include\grpc++\impl\sync.h" />
<ClInclude Include="..\..\include\grpc++\impl\sync_cxx11.h" />
<ClInclude Include="..\..\include\grpc++\impl\sync_no_cxx11.h" />
<ClInclude Include="..\..\include\grpc++\impl\thd.h" />
<ClInclude Include="..\..\include\grpc++\impl\thd_cxx11.h" />
<ClInclude Include="..\..\include\grpc++\impl\thd_no_cxx11.h" />
<ClInclude Include="..\..\include\grpc++\server.h" />
<ClInclude Include="..\..\include\grpc++\server_builder.h" />
<ClInclude Include="..\..\include\grpc++\server_context.h" />
<ClInclude Include="..\..\include\grpc++\server_credentials.h" />
<ClInclude Include="..\..\include\grpc++\slice.h" />
<ClInclude Include="..\..\include\grpc++\status.h" />
<ClInclude Include="..\..\include\grpc++\status_code_enum.h" />
<ClInclude Include="..\..\include\grpc++\stream.h" />
<ClInclude Include="..\..\include\grpc++\thread_pool_interface.h" />
<ClInclude Include="..\..\include\grpc++\time.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\cpp\client\channel.h" />
<ClInclude Include="..\..\src\cpp\proto\proto_utils.h" />
<ClInclude Include="..\..\src\cpp\server\thread_pool.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\cpp\client\channel.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\client_context.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\client_unary_call.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\create_channel.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\credentials.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\generic_stub.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\insecure_credentials.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\internal_stub.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\common\call.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\common\completion_queue.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\common\rpc_method.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\proto\proto_utils.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\async_generic_service.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\insecure_server_credentials.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server_builder.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server_context.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server_credentials.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\thread_pool.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\byte_buffer.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\slice.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\status.cc">
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\time.cc">
</ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\gpr\gpr.vcxproj">
<Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
</ProjectReference>
<ProjectReference Include="..\grpc_unsecure\grpc_unsecure.vcxproj">
<Project>{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -0,0 +1,226 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\src\cpp\client\channel.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\channel_arguments.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\client_context.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\client_unary_call.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\create_channel.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\credentials.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\generic_stub.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\insecure_credentials.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\client\internal_stub.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\common\call.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\common\completion_queue.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\common\rpc_method.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\proto\proto_utils.cc">
<Filter>src\cpp\proto</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\async_generic_service.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\insecure_server_credentials.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server_builder.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server_context.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\server_credentials.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\server\thread_pool.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\byte_buffer.cc">
<Filter>src\cpp\util</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\slice.cc">
<Filter>src\cpp\util</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\status.cc">
<Filter>src\cpp\util</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\util\time.cc">
<Filter>src\cpp\util</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\grpc++\async_generic_service.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\async_unary_call.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\byte_buffer.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\channel_arguments.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\channel_interface.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\client_context.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\completion_queue.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\config.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\create_channel.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\credentials.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\generic_stub.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\call.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\client_unary_call.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\grpc_library.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\internal_stub.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\rpc_method.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\rpc_service_method.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\service_type.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\sync.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\sync_cxx11.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\sync_no_cxx11.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\thd.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\thd_cxx11.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\impl\thd_no_cxx11.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\server.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\server_builder.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\server_context.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\server_credentials.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\slice.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\status.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\status_code_enum.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\stream.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\thread_pool_interface.h">
<Filter>include\grpc++</Filter>
</ClInclude>
<ClInclude Include="..\..\include\grpc++\time.h">
<Filter>include\grpc++</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\cpp\client\channel.h">
<Filter>src\cpp\client</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\proto\proto_utils.h">
<Filter>src\cpp\proto</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\server\thread_pool.h">
<Filter>src\cpp\server</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="include">
<UniqueIdentifier>{5c4eb19f-d511-e8fd-e1d6-c377cdc7d3b1}</UniqueIdentifier>
</Filter>
<Filter Include="include\grpc++">
<UniqueIdentifier>{eceb50c0-bb49-3812-b6bd-b0af6df81da7}</UniqueIdentifier>
</Filter>
<Filter Include="include\grpc++\impl">
<UniqueIdentifier>{dadc0002-f2ac-451b-a9b8-33b8de10b5fc}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{cce6a85d-1111-3834-6825-31e170d93cff}</UniqueIdentifier>
</Filter>
<Filter Include="src\cpp">
<UniqueIdentifier>{1e5fd68c-bd87-e803-42b0-75a7fa19b91d}</UniqueIdentifier>
</Filter>
<Filter Include="src\cpp\client">
<UniqueIdentifier>{ff72923a-6499-8d2a-e0fb-6d574b85d77e}</UniqueIdentifier>
</Filter>
<Filter Include="src\cpp\common">
<UniqueIdentifier>{ed8e4daa-825f-fbe5-2a45-846ad9165d3d}</UniqueIdentifier>
</Filter>
<Filter Include="src\cpp\proto">
<UniqueIdentifier>{10b51a99-2e57-249e-ce23-3ab8c6b99ffb}</UniqueIdentifier>
</Filter>
<Filter Include="src\cpp\server">
<UniqueIdentifier>{8a54a279-d14b-4237-0df3-1ffe1ef5a7af}</UniqueIdentifier>
</Filter>
<Filter Include="src\cpp\util">
<UniqueIdentifier>{fb5d9a64-20ca-5119-ed38-04a3cf94923d}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>

@ -40,6 +40,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++", "grpc++\grpc++.vcx
{29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++_unsecure", "grpc++_unsecure\grpc++_unsecure.vcxproj", "{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}"
ProjectSection(ProjectDependencies) = postProject
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5} = {46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_csharp_ext", "grpc_csharp_ext\grpc_csharp_ext.vcxproj", "{D64C6D63-4458-4A88-AB38-35678384A7E4}"
ProjectSection(ProjectDependencies) = postProject
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
@ -110,6 +116,14 @@ Global
{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.Build.0 = Release|Win32
{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.ActiveCfg = Release|x64
{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.Build.0 = Release|x64
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Debug|Win32.ActiveCfg = Debug|Win32
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Debug|Win32.Build.0 = Debug|Win32
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Debug|x64.ActiveCfg = Debug|x64
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Debug|x64.Build.0 = Debug|x64
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Release|Win32.ActiveCfg = Release|Win32
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Release|Win32.Build.0 = Release|Win32
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Release|x64.ActiveCfg = Release|x64
{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}.Release|x64.Build.0 = Release|x64
{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|Win32.ActiveCfg = Debug|Win32
{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|Win32.Build.0 = Debug|Win32
{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|x64.ActiveCfg = Debug|x64

@ -59,23 +59,23 @@
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
<Import Project="..\winsock.props" />
<Import Project="..\global.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
<Import Project="..\winsock.props" />
<Import Project="..\global.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
<Import Project="..\winsock.props" />
<Import Project="..\global.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\global.props" />
<Import Project="..\winsock.props" />
<Import Project="..\global.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

@ -6,7 +6,7 @@
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>ssleay32.lib;libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(MSBuildProjectDirectory)\..\packages\grpc.dependencies.openssl.1.0.2.2\build\native\lib\$(PlatformToolset)\$(Platform)\$(Configuration)\static;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(ProjectDir)\..\packages\grpc.dependencies.openssl.1.0.2.2\build\native\lib\$(PlatformToolset)\$(Platform)\$(Configuration)\static;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup />

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>libprotobuf.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)\..\..\third_party\protobuf\vsprojects\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

@ -6,7 +6,7 @@
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(MSBuildProjectDirectory)\..\packages\grpc.dependencies.zlib.1.2.8.9\build\native\lib\$(PlatformToolset)\$(Platform)\$(Configuration)\static\cdecl;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(ProjectDir)\..\packages\grpc.dependencies.zlib.1.2.8.9\build\native\lib\$(PlatformToolset)\$(Platform)\$(Configuration)\static\cdecl;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup />

Loading…
Cancel
Save