You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2009/12/08 18:08:11 UTC

svn commit: r888486 - in /subversion/trunk/build/generator: ./ templates/

Author: rhuijben
Date: Tue Dec  8 17:07:26 2009
New Revision: 888486

URL: http://svn.apache.org/viewvc?rev=888486&view=rev
Log:
Enable generating Visual Studio/C++ 2010 projects with the project file 
generator. This will need some further tweaking, but after this commit
you can get working binaries with VS 2010 Beta 2.

* build/generator/svn_locale.vcxproj.ezt
  New template.

* build/generator/gen_vcnet_vcproj.py
  (write_project): 
     Declare config types for new projects. Replace commonly used variable 
     reference with its MSBuild version. Pass more variables to the ezt file.
     Write .vcxproj and .vcxproj.filters files for VS 2010.
  (write): Pass explicit project guid to templates to make sure they are 
     stable even when generating for the first time. Retrieve valid 
     project extension. Remove _vcnet suffix from project file names, to make
     the project names match the file name (MSBuild requirement). Move 
     dependency generation a bit to allow passing it to the project files.
     Remove obsolete quoting and unquoting code inherited from the old VS 
     6.0 generator.

* build/generator/svn_config.vcxproj.ezt
* build/generator/serf.vcxproj.ezt
* build/generator/neon.vcxproj.ezt
* build/generator/zlib.vcxproj.ezt
  New template. Have to be in the generator dir (limitation in python code)

* build/generator/templates/vcnet_vcproj.ezt
  Moved to the template directory

* build/generator/templates/vcnet_vcxproj_filters.ezt
* build/generator/templates/vcnet_vcxproj.ezt
  New templates

* build/generator/templates/vcnet_sln.ezt
  Remove unneeded block close.

* build/generator/svn_config.vcproj.ezt
* build/generator/serf.vcproj.ezt
* build/generator/neon.vcproj.ezt
  Use passed project guid.

* build/generator/vcnet_vcproj.ezt
  Moved to templates directory

* build/generator/zlib.vcproj.ezt
  Use passed project guid.

* build/generator/gen_win.py
  Pass project guids

* build/win32
  Add *.vcxproj to svn:ignore

Added:
    subversion/trunk/build/generator/neon.vcxproj.ezt
    subversion/trunk/build/generator/serf.vcxproj.ezt
    subversion/trunk/build/generator/svn_config.vcxproj.ezt
    subversion/trunk/build/generator/svn_locale.vcxproj.ezt
    subversion/trunk/build/generator/templates/vcnet_vcproj.ezt
      - copied unchanged from r888378, subversion/trunk/build/generator/vcnet_vcproj.ezt
    subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt
    subversion/trunk/build/generator/templates/vcnet_vcxproj_filters.ezt
    subversion/trunk/build/generator/zlib.vcxproj.ezt
Removed:
    subversion/trunk/build/generator/vcnet_vcproj.ezt
Modified:
    subversion/trunk/build/generator/gen_vcnet_vcproj.py
    subversion/trunk/build/generator/gen_win.py
    subversion/trunk/build/generator/neon.vcproj.ezt
    subversion/trunk/build/generator/serf.vcproj.ezt
    subversion/trunk/build/generator/svn_config.vcproj.ezt
    subversion/trunk/build/generator/templates/vcnet_sln.ezt
    subversion/trunk/build/generator/zlib.vcproj.ezt

Modified: subversion/trunk/build/generator/gen_vcnet_vcproj.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_vcnet_vcproj.py?rev=888486&r1=888485&r2=888486&view=diff
==============================================================================
--- subversion/trunk/build/generator/gen_vcnet_vcproj.py (original)
+++ subversion/trunk/build/generator/gen_vcnet_vcproj.py Tue Dec  8 17:07:26 2009
@@ -50,22 +50,27 @@
 
     return vcproj
 
-  def write_project(self, target, fname):
-    "Write a Project (.vcproj)"
+  def write_project(self, target, fname, depends):
+    "Write a Project (.vcproj/.vcxproj)"
 
     if isinstance(target, gen_base.TargetProject):
+      config_type='Utility'
       target_type=10
     elif isinstance(target, gen_base.TargetExe):
-      #EXE
+      config_type='Application'
       target_type=1
     elif isinstance(target, gen_base.TargetJava):
+      config_type='Utility'
       target_type=10
     elif isinstance(target, gen_base.TargetLib):
       if target.msvc_static:
+        config_type='StaticLibrary'
         target_type=4
       else:
+        config_type='DynamicLibrary'
         target_type=2
     elif isinstance(target, gen_base.TargetI18N):
+      config_type='Makefile'
       target_type=4
     else:
       raise gen_base.GenError("Cannot create project for %s" % target.name)
@@ -78,6 +83,10 @@
     configs = self.get_configs(target)
 
     sources = self.get_proj_sources(False, target)
+    
+    for src in sources:
+      if src.custom_build is not None:
+        src.custom_build = src.custom_build.replace('$(InputPath)', '%(FullPath)')
 
     data = {
       'target' : target,
@@ -85,12 +94,14 @@
       'project_guid' : target.project_guid,
       'rootpath' : self.rootpath,
       'platforms' : self.platforms,
+      'config_type' : config_type,
       'configs' : configs,
       'includes' : self.get_win_includes(target),
       'sources' : sources,
       'default_platform' : self.platforms[0],
       'default_config' : configs[0].name,
       'def_file' : self.get_def_file(target),
+      'depends' : depends,
       'is_exe' : ezt.boolean(isinstance(target, gen_base.TargetExe)),
       'is_external' : ezt.boolean((isinstance(target, gen_base.TargetProject)
                                    or isinstance(target, gen_base.TargetI18N))
@@ -102,23 +113,11 @@
       'version' : self.vcproj_version,
       }
 
-    self.write_with_template(fname, 'vcnet_vcproj.ezt', data)
-
-  def getguid(self, path):
-    "Try to get a project's guid from its project file"
-    try:
-      proj = open(path)
-      line = proj.readline()
-      while len(line) > 0:
-        l = line.lower()
-        pos = l.find('projectguid="{')
-        if pos >= 0:
-          guid = line[pos+13:pos+13+38]
-          return guid
-        line = proj.readline()
-      proj.close()
-    except IOError:
-      return None
+    if self.vcproj_extension == '.vcproj':
+      self.write_with_template(fname, 'templates/vcnet_vcproj.ezt', data)
+    else:
+      self.write_with_template(fname, 'templates/vcnet_vcxproj.ezt', data)
+      self.write_with_template(fname + '.filters', 'templates/vcnet_vcxproj_filters.ezt', data)
 
   def write(self):
     "Write a Solution (.sln)"
@@ -138,15 +137,21 @@
 
     # apr doesn't supply vcproj files, the user must convert them
     # manually before loading the generated solution
-    self.move_proj_file(os.path.join('build', 'win32'), 'svn_config.vcproj',
+    self.move_proj_file(os.path.join('build', 'win32'), 
+                        'svn_config' + self.vcproj_extension,
                           (
                             ('sql', sql),
+                            ('project_guid', self.makeguid('__CONFIG__')),
                           )
                         )
-    self.move_proj_file(os.path.join('build', 'win32'), 'svn_locale.vcproj')
-    self.write_zlib_project_file('zlib.vcproj')
-    self.write_neon_project_file('neon.vcproj')
-    self.write_serf_project_file('serf.vcproj')
+    self.move_proj_file(os.path.join('build', 'win32'),
+                        'svn_locale' + self.vcproj_extension,
+                        (
+                          ('project_guid', self.makeguid('svn_locale')),
+                        ))
+    self.write_zlib_project_file('zlib' + self.vcproj_extension)
+    self.write_neon_project_file('neon' + self.vcproj_extension)
+    self.write_serf_project_file('serf' + self.vcproj_extension)
 
     install_targets = self.get_install_targets()
 
@@ -154,39 +159,30 @@
 
     guids = { }
 
-    # VC.NET uses GUIDs to refer to projects. Get them up front
+    # Visual Studio uses GUIDs to refer to projects. Get them up front
     # because we need them already assigned on the dependencies for
     # each target we work with.
     for target in install_targets:
-      # These aren't working yet
-      if isinstance(target, gen_base.TargetProject) and target.cmd:
-        continue
       # If there is a GUID in an external project, then use it
       # rather than generating our own that won't match and will
       # cause dependency failures.
-      guid = None
-      proj_path = self.get_external_project(target, 'vcproj')
+      proj_path = self.get_external_project(target, self.vcproj_extension[1:])
       if proj_path is not None:
-        target.project_guid = self.getguid(proj_path)
+        target.project_guid = self.makeguid(target.name)
       guids[target.name] = target.project_guid
 
     self.gen_proj_names(install_targets)
 
-    # Traverse the targets and generate the project files
     for target in install_targets:
-      name = target.name
-      # These aren't working yet
-      if isinstance(target, gen_base.TargetProject) and target.cmd:
-        continue
-
-      fname = self.get_external_project(target, 'vcproj')
+      fname = self.get_external_project(target, self.vcproj_extension[1:])
       if fname is None:
-        fname = os.path.join(self.projfilesdir,
-                             "%s_vcnet.vcproj" % target.proj_name)
-        self.write_project(target, fname)
+        fname = os.path.join(self.projfilesdir, "%s%s" % 
+                             (target.proj_name, self.vcproj_extension))
+      target.fname = fname
 
-      if '-' in fname:
-        fname = '"%s"' % fname
+    # Traverse the targets and generate the project files
+    for target in install_targets:
+      name = target.name
 
       depends = [ ]
       if not isinstance(target, gen_base.TargetI18N):
@@ -194,10 +190,20 @@
 
       deplist = [ ]
       for i in range(len(depends)):
+        if depends[i].fname.startswith(self.projfilesdir):
+          path = depends[i].fname[len(self.projfilesdir) + 1:]
+        else:
+          path = '..\\..\\..\\' + depends[i].fname
         deplist.append(gen_win.ProjectItem(guid=guids[depends[i].name],
                                            index=i,
+                                           path=path,
                                            ))
 
+      fname = self.get_external_project(target, self.vcproj_extension[1:])
+      if fname is None:
+        fname = target.fname
+        self.write_project(target, fname, deplist)
+
       groupname = ''
 
       if target.name.startswith('__'):
@@ -234,12 +240,6 @@
                             group=groupname,
                             ))
 
-    # the path name in the .sln template is already enclosed with ""
-    # therefore, remove them from the path itself
-    for target in targets:
-      target.path = target.path.rstrip('"')
-      target.path = target.path.lstrip('"')
-
     targets.sort(key = lambda x: x.name)
 
     configs = [ ]
@@ -250,10 +250,16 @@
     # sort the values for output stability.
     guidvals = sorted(guids.values())
 
+    # Before VS2010 dependencies are managed at the solution level
+    if self.vcproj_extension == '.vcproj':
+      dependency_location = 'solution'
+    else:
+      dependency_location = 'project'
+
     data = {
       'version': self.sln_version,
       'vs_version' : self.vs_version,
-      'dependency_location' : 'solution',
+      'dependency_location' : dependency_location,
       'targets' : targets,
       'configs' : configs,
       'platforms' : self.platforms,

Modified: subversion/trunk/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/gen_win.py?rev=888486&r1=888485&r2=888486&view=diff
==============================================================================
--- subversion/trunk/build/generator/gen_win.py (original)
+++ subversion/trunk/build/generator/gen_win.py Tue Dec  8 17:07:26 2009
@@ -1107,6 +1107,7 @@
                                                    'contrib/masmx86/*.asm'))),
                          ('zlib_headers',
                           glob.glob(os.path.join(zlib_path, '*.h'))),
+                         ('project_guid', self.makeguid('zlib')),
                         ))
 
   def write_neon_project_file(self, name):
@@ -1127,6 +1128,7 @@
                          ('openssl_path',
                           self.openssl_path
                             and os.path.abspath(self.openssl_path)),
+                         ('project_guid', self.makeguid('neon')),
                         ))
 
   def write_serf_project_file(self, name):
@@ -1150,6 +1152,7 @@
                             and os.path.abspath(self.openssl_path)),
                          ('apr_path', os.path.abspath(self.apr_path)),
                          ('apr_util_path', os.path.abspath(self.apr_util_path)),
+                         ('project_guid', self.makeguid('serf')),
                         ))
 
   def move_proj_file(self, path, name, params=()):

Modified: subversion/trunk/build/generator/neon.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/neon.vcproj.ezt?rev=888486&r1=888485&r2=888486&view=diff
==============================================================================
--- subversion/trunk/build/generator/neon.vcproj.ezt (original)
+++ subversion/trunk/build/generator/neon.vcproj.ezt Tue Dec  8 17:07:26 2009
@@ -22,7 +22,7 @@
 	ProjectType="Visual C++"
 	Version="[version]"
 	Name="neon"
-	ProjectGUID="{5BA0C76C-0CE4-4858-A206-22C5C45E4648}"
+	ProjectGUID="[project_guid]"
 	Keyword="MakeFileProj">
 	<Platforms>
 [for platforms]		<Platform

Added: subversion/trunk/build/generator/neon.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/neon.vcxproj.ezt?rev=888486&view=auto
==============================================================================
--- subversion/trunk/build/generator/neon.vcxproj.ezt (added)
+++ subversion/trunk/build/generator/neon.vcxproj.ezt Tue Dec  8 17:07:26 2009
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+[for configs][for platforms]    <ProjectConfiguration Include="[configs]|[platforms]">
+      <Configuration>[configs]</Configuration>
+      <Platform>[platforms]</Platform>
+    </ProjectConfiguration>
+[end][end]  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>neon</ProjectName>
+    <ProjectGuid>[project_guid]</ProjectGuid>
+    <Keyword>MakeFileProj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+[for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
+    <ConfigurationType>Makefile</ConfigurationType>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
+[end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+[for platforms][for configs]  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+  </ImportGroup>
+[end][end]  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+[for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</IntDir>
+    <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs]</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs] rebuild</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs] clean</NMakeCleanCommandLine>
+    <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[zlib_path]\[is configs "Release"]zlibstat.lib[else]zlibstatD.lib[end]</NMakeOutput>
+[end][end]  </PropertyGroup>
+  <ItemDefinitionGroup>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+[for neon_sources]    <ClCompile Include="[neon_sources]" />
+[end]  </ItemGroup>
+  <ItemGroup>
+[for neon_headers]    <ClInclude Include="[neon_headers]" />
+[end]  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

Modified: subversion/trunk/build/generator/serf.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/serf.vcproj.ezt?rev=888486&r1=888485&r2=888486&view=diff
==============================================================================
--- subversion/trunk/build/generator/serf.vcproj.ezt (original)
+++ subversion/trunk/build/generator/serf.vcproj.ezt Tue Dec  8 17:07:26 2009
@@ -22,7 +22,7 @@
     ProjectType="Visual C++"
     Version="[version]"
     Name="serf"
-    ProjectGUID="{F1EC01C7-C056-410B-A564-777D73A9AEE8}"
+    ProjectGUID="[project_guid]"
     Keyword="MakeFileProj">
     <Platforms>
 [for platforms]		<Platform

Added: subversion/trunk/build/generator/serf.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/serf.vcxproj.ezt?rev=888486&view=auto
==============================================================================
--- subversion/trunk/build/generator/serf.vcxproj.ezt (added)
+++ subversion/trunk/build/generator/serf.vcxproj.ezt Tue Dec  8 17:07:26 2009
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+[for configs][for platforms]    <ProjectConfiguration Include="[configs]|[platforms]">
+      <Configuration>[configs]</Configuration>
+      <Platform>[platforms]</Platform>
+    </ProjectConfiguration>
+[end][end]  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>serf</ProjectName>
+    <ProjectGuid>[project_guid]</ProjectGuid>
+    <Keyword>MakeFileProj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+[for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
+    <ConfigurationType>Makefile</ConfigurationType>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
+[end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+[for platforms][for configs]  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+  </ImportGroup>
+[end][end]  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+[for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</IntDir>
+    <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs]</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs] rebuild</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs] clean</NMakeCleanCommandLine>
+    <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[zlib_path]\[is configs "Release"]zlibstat.lib[else]zlibstatD.lib[end]</NMakeOutput>
+[end][end]  </PropertyGroup>
+  <ItemDefinitionGroup>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+[for serf_sources]    <ClCompile Include="[serf_sources]" />
+[end]  </ItemGroup>
+  <ItemGroup>
+[for serf_headers]    <ClInclude Include="[serf_headers]" />
+[end]  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

Modified: subversion/trunk/build/generator/svn_config.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/svn_config.vcproj.ezt?rev=888486&r1=888485&r2=888486&view=diff
==============================================================================
--- subversion/trunk/build/generator/svn_config.vcproj.ezt (original)
+++ subversion/trunk/build/generator/svn_config.vcproj.ezt Tue Dec  8 17:07:26 2009
@@ -22,7 +22,7 @@
 	ProjectType="Visual C++"
 	Version="[version]"
 	Name="__CONFIG__"
-	ProjectGUID="{638FEA9B-E592-4B88-93B7-08B8A32CAD1F}"
+	ProjectGUID="[project_guid]"
 	Keyword="MakeFileProj">
 	<Platforms>
 [for platforms]		<Platform

Added: subversion/trunk/build/generator/svn_config.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/svn_config.vcxproj.ezt?rev=888486&view=auto
==============================================================================
--- subversion/trunk/build/generator/svn_config.vcxproj.ezt (added)
+++ subversion/trunk/build/generator/svn_config.vcxproj.ezt Tue Dec  8 17:07:26 2009
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+[for configs][for platforms]    <ProjectConfiguration Include="[configs]|[platforms]">
+      <Configuration>[configs]</Configuration>
+      <Platform>[platforms]</Platform>
+    </ProjectConfiguration>
+[end][end]  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>__CONFIG__</ProjectName>
+    <ProjectGuid>[project_guid]</ProjectGuid>
+    <Keyword>MakeFileProj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+[for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
+[end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+[for platforms][for configs]  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+  </ImportGroup>
+[end][end]  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+[for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</IntDir>
+[end][end]  </PropertyGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\subversion\svn_private_config.h">
+[for configs][for platforms]      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">true</ExcludedFromBuild>
+[end][end]    </CustomBuild>
+  </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\subversion\svn_private_config.hw">
+      <FileType>Document</FileType>
+[for configs][for platforms]      <Message Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">Creating svn_private_config.h from svn_private_config.hw.</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">copy ..\..\subversion\svn_private_config.hw ..\..\subversion\svn_private_config.h &gt; nul
+</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">..\..\subversion\svn_private_config.h;%(Outputs)</Outputs>
+[end][end]    </CustomBuild>
+[for sql]    <CustomBuild Include="..\..\[sql.source]">
+      <FileType>Document</FileType>
+[for configs][for platforms]      <Message Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">Generating [sql.header].</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"[sql.svn_python]" "$(SolutionDir)\build\transform_sql.py" "%(FullPath)" "$(SolutionDir)\[sql.header]"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">$(SolutionDir)\[sql.header];%(Outputs)</Outputs>
+[end][end]
+    </CustomBuild>
+[end]  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

Added: subversion/trunk/build/generator/svn_locale.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/svn_locale.vcxproj.ezt?rev=888486&view=auto
==============================================================================
--- subversion/trunk/build/generator/svn_locale.vcxproj.ezt (added)
+++ subversion/trunk/build/generator/svn_locale.vcxproj.ezt Tue Dec  8 17:07:26 2009
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+[for configs][for platforms]    <ProjectConfiguration Include="[configs]|[platforms]">
+      <Configuration>[configs]</Configuration>
+      <Platform>[platforms]</Platform>
+    </ProjectConfiguration>
+[end][end]  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>locale</ProjectName>
+    <ProjectGuid>{18FA6D17-1EE7-43A2-BC2A-C2AF819CEEFB}</ProjectGuid>
+    <Keyword>MakeFileProj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+[for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
+    <ConfigurationType>Utility</ConfigurationType>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
+[end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+[for platforms][for configs]  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+  </ImportGroup>
+[end][end]  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+[for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">..\..\[configs]\mo\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">..\..\[configs]\mo\</IntDir>
+    <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_locale.bat [configs]</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_locale.bat [configs]</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c del $(OutDir)*.mo</NMakeCleanCommandLine>
+[end][end]  </PropertyGroup>
+  <ItemGroup>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

Modified: subversion/trunk/build/generator/templates/vcnet_sln.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/templates/vcnet_sln.ezt?rev=888486&r1=888485&r2=888486&view=diff
==============================================================================
--- subversion/trunk/build/generator/templates/vcnet_sln.ezt (original)
+++ subversion/trunk/build/generator/templates/vcnet_sln.ezt Tue Dec  8 17:07:26 2009
@@ -24,8 +24,8 @@
 [for targets]Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "[targets.name]", "[targets.path]", "[targets.guid]"
 [is dependency_location "solution"]	ProjectSection(ProjectDependencies) = postProject
 [for targets.depends]		[targets.depends.guid] = [targets.depends.guid]
-[end][end]	EndProjectSection
-EndProject
+[end]	EndProjectSection
+[end]EndProject
 [end]Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{F6BDBE6F-7C7B-458B-8801-0B351C85ED6E}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dlls", "Dlls", "{2F13BEE6-AA51-4882-9015-DCE38AB8E474}"

Added: subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt?rev=888486&view=auto
==============================================================================
--- subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt (added)
+++ subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt Tue Dec  8 17:07:26 2009
@@ -0,0 +1,109 @@
+[define COPYRIGHT]
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one
+     or more contributor license agreements.  See the NOTICE file
+     distributed with this work for additional information
+     regarding copyright ownership.  The ASF licenses this file
+     to you under the Apache License, Version 2.0 (the
+     "License"); you may not use this file except in compliance
+     with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing,
+     software distributed under the License is distributed on an
+     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     KIND, either express or implied.  See the License for the
+     specific language governing permissions and limitations
+     under the License.
+-->
+[end]<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+[for configs][for platforms]    <ProjectConfiguration Include="[configs.name]|[platforms]">
+      <Configuration>[configs.name]</Configuration>
+      <Platform>[platforms]</Platform>
+    </ProjectConfiguration>
+[end][end]  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>[target.proj_name]</ProjectName>
+    <ProjectGuid>[project_guid]</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+[for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'" Label="Configuration">
+    <ConfigurationType>[config_type]</ConfigurationType>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
+[end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+[for platforms][for configs]  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+  </ImportGroup>
+[end][end]  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+[for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">..\..\..\[configs.name]\[target.output_dir]\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">..\..\..\[configs.name]\[target.intermediate_dir]\</IntDir>
+[end][end]  </PropertyGroup>
+[for configs][for platforms]  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">
+    <ClCompile>
+[is configs.name "Debug"]      <Optimization>Disabled</Optimization>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+[else]      <Optimization>Full</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <StringPooling>true</StringPooling>
+[end]      <AdditionalIncludeDirectories>[for includes][includes][if-index includes last][else];[end][end]</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][for configs.defines][configs.defines];[end]_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <WarningLevel>Level4</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <ProgramDataBaseFileName>$(IntDir)[target.output_pdb]</ProgramDataBaseFileName>
+      <DisableSpecificWarnings>4100;4127;4204;4206;4701;4706;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <TreatSpecificWarningsAsErrors>4002;4003;4013;4020;4022;4024;4028;4029;4030;4031;4047;4089;4115</TreatSpecificWarningsAsErrors>
+    </ClCompile>
+[is config_type "Application"]    <Link>
+      <OutputFile>$(OutDir)[target.output_name]</OutputFile>
+      <AdditionalDependencies>[for configs.libs][configs.libs];[end];%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>[for configs.libdirs][configs.libdirs];[end]%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+[else][is config_type "DynamicLibrary"]    <Link>
+      <OutputFile>$(OutDir)[target.output_name]</OutputFile>
+      <AdditionalDependencies>[for configs.libs][configs.libs];[end];%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>[for configs.libdirs][configs.libdirs];[end]%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+[if-any def_file]      <ModuleDefinitionFile>[def_file]</ModuleDefinitionFile>
+[end]    </Link>
+[else][is config_type "StaticLibrary"]    <Lib>[is platforms "X64"]
+      <AdditionalOptions>/MACHINE:X64 %(AdditionalOptions)</AdditionalOptions>[end]
+    </Lib>
+[end][end][end]  </ItemDefinitionGroup>
+[end][end][if-any target.desc]  <ItemGroup>
+    <ResourceCompile Include="..\svn.rc">
+[for configs][for platforms]      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[for includes][includes][if-index includes last][else];[end][end];%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">SVN_FILE_NAME=[target.output_name];SVN_FILE_DESCRIPTION=[target.desc];[is configs.name "Debug"]_DEBUG[else]NDEBUG[end];%(PreprocessorDefinitions)</PreprocessorDefinitions>
+[end][end]    </ResourceCompile>
+  </ItemGroup>
+[end]  <ItemGroup>
+[for sources][is sources.extension ".h"][else][if-any sources.custom_build]    <CustomBuild Include="[sources.path]">
+      <FileType>Document</FileType>
+[for configs][for platforms]      <Command Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_build]</Command>
+      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[for sources.user_deps][sources.user_deps];[end]%(AdditionalInputs)</AdditionalInputs>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_target];%(Outputs)</Outputs>
+[end][end]    </CustomBuild>
+[else][is sources.extension ".c"]    <ClCompile Include="[sources.path]" />
+[else][is sources.extension ".cpp"]    <ClCompile Include="[sources.path]" />
+[else]    <None Include="[sources.path]" />
+[end][end][end][end][end]  </ItemGroup>
+  <ItemGroup>
+[for sources][is sources.extension ".h"]    <ClInclude Include="[sources.path]" />
+[end][end]  </ItemGroup>
+  <ItemGroup>
+[for depends]    <ProjectReference Include="[depends.path]">
+      <Project>[depends.guid]</Project>
+    </ProjectReference>
+[end]  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

Added: subversion/trunk/build/generator/templates/vcnet_vcxproj_filters.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/templates/vcnet_vcxproj_filters.ezt?rev=888486&view=auto
==============================================================================
--- subversion/trunk/build/generator/templates/vcnet_vcxproj_filters.ezt (added)
+++ subversion/trunk/build/generator/templates/vcnet_vcxproj_filters.ezt Tue Dec  8 17:07:26 2009
@@ -0,0 +1,47 @@
+[define COPYRIGHT]
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one
+     or more contributor license agreements.  See the NOTICE file
+     distributed with this work for additional information
+     regarding copyright ownership.  The ASF licenses this file
+     to you under the Apache License, Version 2.0 (the
+     "License"); you may not use this file except in compliance
+     with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing,
+     software distributed under the License is distributed on an
+     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     KIND, either express or implied.  See the License for the
+     specific language governing permissions and limitations
+     under the License.
+-->
+[end]<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{b21a2522-2044-4342-af26-ca29509f90e7}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{fd3e9c7d-dd0a-4af5-94aa-d9744db18efe}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+  </ItemGroup>
+[if-any target.desc]  <ItemGroup>
+    <ResourceCompile Include="..\svn.rc">
+      <Filter>Source Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+[end]  <ItemGroup>
+[for sources][is sources.extension ".h"][else]    <ClCompile Include="[sources.path]">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+[end][end]  </ItemGroup>
+  <ItemGroup>
+[for sources][is sources.extension ".h"]    <ClInclude Include="[sources.path]">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+[end][end]  </ItemGroup>
+</Project>
\ No newline at end of file

Modified: subversion/trunk/build/generator/zlib.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/zlib.vcproj.ezt?rev=888486&r1=888485&r2=888486&view=diff
==============================================================================
--- subversion/trunk/build/generator/zlib.vcproj.ezt (original)
+++ subversion/trunk/build/generator/zlib.vcproj.ezt Tue Dec  8 17:07:26 2009
@@ -22,7 +22,7 @@
 	ProjectType="Visual C++"
 	Version="[version]"
 	Name="zlib"
-	ProjectGUID="{41FE336A-F191-4F4E-A17C-602C627EA1E1}"
+	ProjectGUID="[project_guid]"
 	Keyword="MakeFileProj">
 	<Platforms>
 [for platforms]		<Platform

Added: subversion/trunk/build/generator/zlib.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/zlib.vcxproj.ezt?rev=888486&view=auto
==============================================================================
--- subversion/trunk/build/generator/zlib.vcxproj.ezt (added)
+++ subversion/trunk/build/generator/zlib.vcxproj.ezt Tue Dec  8 17:07:26 2009
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+[for configs][for platforms]    <ProjectConfiguration Include="[configs]|[platforms]">
+      <Configuration>[configs]</Configuration>
+      <Platform>[platforms]</Platform>
+    </ProjectConfiguration>
+[end][end]  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>zlib</ProjectName>
+    <ProjectGuid>[project_guid]</ProjectGuid>
+    <Keyword>MakeFileProj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+[for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
+    <ConfigurationType>Makefile</ConfigurationType>
+    <CLRSupport>false</CLRSupport>
+  </PropertyGroup>
+[end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+[for platforms][for configs]  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
+  </ImportGroup>
+[end][end]  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+[for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</IntDir>
+    <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs]</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs] rebuild</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">cmd /c build_zlib.bat [configs] clean</NMakeCleanCommandLine>
+    <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[zlib_path]\[is configs "Release"]zlibstat.lib[else]zlibstatD.lib[end]</NMakeOutput>
+[end][end]  </PropertyGroup>
+  <ItemDefinitionGroup>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+[for zlib_sources]    <ClCompile Include="[zlib_sources]" />
+[end]  </ItemGroup>
+  <ItemGroup>
+[for zlib_headers]    <ClInclude Include="[zlib_headers]" />
+[end]  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>



Re: svn commit: r888486 - in /subversion/trunk/build/generator: ./ templates/

Posted by "Hyrum K. Wright" <hy...@mail.utexas.edu>.
On Dec 8, 2009, at 11:08 AM, rhuijben@apache.org wrote:

> Author: rhuijben
> Date: Tue Dec  8 17:07:26 2009
> New Revision: 888486
> 
> URL: http://svn.apache.org/viewvc?rev=888486&view=rev
> Log:
> Enable generating Visual Studio/C++ 2010 projects with the project file 
> generator. This will need some further tweaking, but after this commit
> you can get working binaries with VS 2010 Beta 2.
> 
> * build/generator/svn_locale.vcxproj.ezt
>  New template.
> 
> * build/generator/gen_vcnet_vcproj.py
>  (write_project): 
>     Declare config types for new projects. Replace commonly used variable 
>     reference with its MSBuild version. Pass more variables to the ezt file.
>     Write .vcxproj and .vcxproj.filters files for VS 2010.
>  (write): Pass explicit project guid to templates to make sure they are 
>     stable even when generating for the first time. Retrieve valid 
>     project extension. Remove _vcnet suffix from project file names, to make
>     the project names match the file name (MSBuild requirement). Move 
>     dependency generation a bit to allow passing it to the project files.
>     Remove obsolete quoting and unquoting code inherited from the old VS 
>     6.0 generator.
> 
> * build/generator/svn_config.vcxproj.ezt
> * build/generator/serf.vcxproj.ezt
> * build/generator/neon.vcxproj.ezt
> * build/generator/zlib.vcxproj.ezt
>  New template. Have to be in the generator dir (limitation in python code)
> 
> * build/generator/templates/vcnet_vcproj.ezt
>  Moved to the template directory
> 
> * build/generator/templates/vcnet_vcxproj_filters.ezt
> * build/generator/templates/vcnet_vcxproj.ezt
>  New templates
> 
> * build/generator/templates/vcnet_sln.ezt
>  Remove unneeded block close.
> 
> * build/generator/svn_config.vcproj.ezt
> * build/generator/serf.vcproj.ezt
> * build/generator/neon.vcproj.ezt
>  Use passed project guid.
> 
> * build/generator/vcnet_vcproj.ezt
>  Moved to templates directory
> 
> * build/generator/zlib.vcproj.ezt
>  Use passed project guid.
> 
> * build/generator/gen_win.py
>  Pass project guids
> 
> * build/win32
>  Add *.vcxproj to svn:ignore
> 
> Added:
>    subversion/trunk/build/generator/neon.vcxproj.ezt
>    subversion/trunk/build/generator/serf.vcxproj.ezt
>    subversion/trunk/build/generator/svn_config.vcxproj.ezt
>    subversion/trunk/build/generator/svn_locale.vcxproj.ezt
>    subversion/trunk/build/generator/templates/vcnet_vcproj.ezt
>      - copied unchanged from r888378, subversion/trunk/build/generator/vcnet_vcproj.ezt
>    subversion/trunk/build/generator/templates/vcnet_vcxproj.ezt
>    subversion/trunk/build/generator/templates/vcnet_vcxproj_filters.ezt
>    subversion/trunk/build/generator/zlib.vcxproj.ezt

License police here: please add the appropriate APv2 blurb. :)

> Removed:
>    subversion/trunk/build/generator/vcnet_vcproj.ezt
> Modified:
>    subversion/trunk/build/generator/gen_vcnet_vcproj.py
>    subversion/trunk/build/generator/gen_win.py
>    subversion/trunk/build/generator/neon.vcproj.ezt
>    subversion/trunk/build/generator/serf.vcproj.ezt
>    subversion/trunk/build/generator/svn_config.vcproj.ezt
>    subversion/trunk/build/generator/templates/vcnet_sln.ezt
>    subversion/trunk/build/generator/zlib.vcproj.ezt

...

-Hyrum