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>


Reply via email to