Explorar o código

Adding grpc++_unsecure project file, and adding better support for test projects.

Nicolas "Pixel" Noble %!s(int64=10) %!d(string=hai) anos
pai
achega
7bf5092df0
Modificáronse 27 ficheiros con 573 adicións e 33 borrados
  1. 2 1
      build.json
  2. 6 0
      templates/vsprojects/generate_debug_projects.sh
  3. 1 1
      templates/vsprojects/gpr/gpr.vcxproj.filters.template
  4. 1 1
      templates/vsprojects/gpr/gpr.vcxproj.template
  5. 1 1
      templates/vsprojects/gpr_test_util/gpr_test_util.vcxproj.template
  6. 1 1
      templates/vsprojects/grpc++/grpc++.vcxproj.filters.template
  7. 1 1
      templates/vsprojects/grpc++/grpc++.vcxproj.template
  8. 2 0
      templates/vsprojects/grpc++_unsecure/grpc++.vcxproj.filters.template
  9. 2 0
      templates/vsprojects/grpc++_unsecure/grpc++.vcxproj.template
  10. 1 1
      templates/vsprojects/grpc/grpc.vcxproj.filters.template
  11. 1 1
      templates/vsprojects/grpc/grpc.vcxproj.template
  12. 1 1
      templates/vsprojects/grpc_csharp_ext/grpc_csharp_ext.vcxproj.template
  13. 1 1
      templates/vsprojects/grpc_test_util/grpc_test_util.vcxproj.template
  14. 1 1
      templates/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters.template
  15. 1 1
      templates/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.template
  16. 1 1
      templates/vsprojects/vcxproj.filters_defs.include
  17. 27 13
      templates/vsprojects/vcxproj_defs.include
  18. 12 0
      tools/buildgen/plugins/generate_vsprojects.py
  19. 0 0
      vsprojects/dummy.c
  20. 1 1
      vsprojects/global.props
  21. 250 0
      vsprojects/grpc++_unsecure/grpc++.vcxproj
  22. 226 0
      vsprojects/grpc++_unsecure/grpc++.vcxproj.filters
  23. 14 0
      vsprojects/grpc.sln
  24. 4 4
      vsprojects/grpc_csharp_ext/grpc_csharp_ext.vcxproj
  25. 1 1
      vsprojects/openssl.props
  26. 13 0
      vsprojects/protobuf.props
  27. 1 1
      vsprojects/zlib.props

+ 2 - 1
build.json

@@ -553,7 +553,8 @@
       "filegroups": [
       "filegroups": [
         "grpc++_base"
         "grpc++_base"
       ],
       ],
-      "secure": "no"
+      "secure": "no",
+      "vs_project_guid": "{6EE56155-DF7C-4F6E-BFC4-F6F776BEB211}"
     },
     },
     {
     {
       "name": "grpc_plugin_support",
       "name": "grpc_plugin_support",

+ 6 - 0
templates/vsprojects/generate_debug_projects.sh

@@ -0,0 +1,6 @@
+#!/bin/sh
+
+cd `dirname $0`/../..
+
+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

+ 1 - 1
templates/vsprojects/gpr/gpr.vcxproj.filters.template

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

+ 1 - 1
templates/vsprojects/gpr/gpr.vcxproj.template

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

+ 1 - 1
templates/vsprojects/gpr_test_util/gpr_test_util.vcxproj.template

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

+ 1 - 1
templates/vsprojects/grpc++/grpc++.vcxproj.filters.template

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

+ 1 - 1
templates/vsprojects/grpc++/grpc++.vcxproj.template

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

+ 2 - 0
templates/vsprojects/grpc++_unsecure/grpc++.vcxproj.filters.template

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

+ 2 - 0
templates/vsprojects/grpc++_unsecure/grpc++.vcxproj.template

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

+ 1 - 1
templates/vsprojects/grpc/grpc.vcxproj.filters.template

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

+ 1 - 1
templates/vsprojects/grpc/grpc.vcxproj.template

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

+ 1 - 1
templates/vsprojects/grpc_csharp_ext/grpc_csharp_ext.vcxproj.template

@@ -1,2 +1,2 @@
 <%namespace file="../vcxproj_defs.include" import="gen_project"/>\
 <%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 - 1
templates/vsprojects/grpc_test_util/grpc_test_util.vcxproj.template

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

+ 1 - 1
templates/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters.template

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

+ 1 - 1
templates/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.template

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

+ 1 - 1
templates/vsprojects/vcxproj.filters_defs.include

@@ -9,7 +9,7 @@
 <%def name="to_windows_path(path)">${path.replace('/','\\')}</%def>\
 <%def name="to_windows_path(path)">${path.replace('/','\\')}</%def>\
 <%def name="to_filter(path)">${calc_to_filter(path)}</%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="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:
 % for project in vsprojects:
   % if project.name == name:
   % if project.name == name:
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>

+ 27 - 13
templates/vsprojects/vcxproj_defs.include

@@ -2,9 +2,24 @@
 <%def name="get_repo_root()">..\..</%def>\
 <%def name="get_repo_root()">..\..</%def>\
 <%def name="to_windows_path(path)">${path.replace('/','\\')}</%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="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"?>
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 ${gen_package_props(packages)}\
 ${gen_package_props(packages)}\
@@ -66,29 +81,25 @@ ${gen_package_props(packages)}\
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <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="$(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" />
     <Import Project="..\${prop}.props" />
     % endfor
     % endfor
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   <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="$(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" />
     <Import Project="..\${prop}.props" />
     % endfor
     % endfor
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <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="$(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" />
     <Import Project="..\${prop}.props" />
     % endfor
     % endfor
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   <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="$(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" />
     <Import Project="..\${prop}.props" />
     % endfor
     % endfor
   </ImportGroup>
   </ImportGroup>
@@ -186,6 +197,11 @@ ${gen_package_props(packages)}\
     </ClCompile>
     </ClCompile>
     % endfor
     % endfor
   </ItemGroup>
   </ItemGroup>
+  % elif configuration_type != 'StaticLibrary':
+  <ItemGroup>
+    <ClCompile Include="${get_repo_root()}\${to_windows_path('vsprojects/dummy.c')}">
+    </ClCompile>
+  </ItemGroup>
   % endif
   % endif
   % if project.get('deps',[]):
   % if project.get('deps',[]):
   <ItemGroup>
   <ItemGroup>
@@ -207,6 +223,4 @@ ${gen_package_targets(packages)}\
   </ImportGroup>
   </ImportGroup>
 ${gen_package_ensure(packages)}\
 ${gen_package_ensure(packages)}\
 </Project>
 </Project>
-  % endif
-% endfor
 </%def>\
 </%def>\

+ 12 - 0
tools/buildgen/plugins/generate_vsprojects.py

@@ -35,6 +35,10 @@ and "vsproject_dict", to be used by the visual studio generators.
 """
 """
 
 
 
 
+import hashlib
+import re
+
+
 def mako_plugin(dictionary):
 def mako_plugin(dictionary):
   """The exported plugin code for generate_vsprojeccts
   """The exported plugin code for generate_vsprojeccts
 
 
@@ -53,6 +57,14 @@ def mako_plugin(dictionary):
   projects = []
   projects = []
   projects.extend(libs)
   projects.extend(libs)
   projects.extend(targets)
   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.
   # Exclude projects without a visual project guid, such as the tests.
   projects = [project for project in projects
   projects = [project for project in projects
                 if project.get('vs_project_guid', None)]
                 if project.get('vs_project_guid', None)]

+ 0 - 0
vsprojects/dummy.c


+ 1 - 1
vsprojects/global.props

@@ -5,7 +5,7 @@
   <PropertyGroup />
   <PropertyGroup />
   <ItemDefinitionGroup>
   <ItemDefinitionGroup>
     <ClCompile>
     <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>
       <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>EnableAllWarnings</WarningLevel>
       <WarningLevel>EnableAllWarnings</WarningLevel>
     </ClCompile>
     </ClCompile>

+ 250 - 0
vsprojects/grpc++_unsecure/grpc++.vcxproj

@@ -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>

+ 226 - 0
vsprojects/grpc++_unsecure/grpc++.vcxproj.filters

@@ -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>
+

+ 14 - 0
vsprojects/grpc.sln

@@ -40,6 +40,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++", "grpc++\grpc++.vcx
 		{29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
 		{29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
 	EndProjectSection
 	EndProjectSection
 EndProject
 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}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_csharp_ext", "grpc_csharp_ext\grpc_csharp_ext.vcxproj", "{D64C6D63-4458-4A88-AB38-35678384A7E4}"
 	ProjectSection(ProjectDependencies) = postProject
 	ProjectSection(ProjectDependencies) = postProject
 		{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
 		{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|Win32.Build.0 = Release|Win32
 		{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.ActiveCfg = Release|x64
 		{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.ActiveCfg = Release|x64
 		{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|x64.Build.0 = 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.ActiveCfg = Debug|Win32
 		{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|Win32.Build.0 = Debug|Win32
 		{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|Win32.Build.0 = Debug|Win32
 		{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|x64.ActiveCfg = Debug|x64
 		{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|x64.ActiveCfg = Debug|x64

+ 4 - 4
vsprojects/grpc_csharp_ext/grpc_csharp_ext.vcxproj

@@ -59,23 +59,23 @@
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <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="$(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="..\winsock.props" />
+    <Import Project="..\global.props" />
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   <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="$(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="..\winsock.props" />
+    <Import Project="..\global.props" />
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <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="$(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="..\winsock.props" />
+    <Import Project="..\global.props" />
   </ImportGroup>
   </ImportGroup>
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   <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="$(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="..\winsock.props" />
+    <Import Project="..\global.props" />
   </ImportGroup>
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+ 1 - 1
vsprojects/openssl.props

@@ -6,7 +6,7 @@
   <ItemDefinitionGroup>
   <ItemDefinitionGroup>
     <Link>
     <Link>
       <AdditionalDependencies>ssleay32.lib;libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <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>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemGroup />
   <ItemGroup />

+ 13 - 0
vsprojects/protobuf.props

@@ -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>

+ 1 - 1
vsprojects/zlib.props

@@ -6,7 +6,7 @@
   <ItemDefinitionGroup>
   <ItemDefinitionGroup>
     <Link>
     <Link>
       <AdditionalDependencies>zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <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>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemGroup />
   <ItemGroup />