[Python-checkins] cpython: Simplify MSI projects.

steve.dower python-checkins at python.org
Sat Feb 14 19:31:20 CET 2015


https://hg.python.org/cpython/rev/e7ba4d3fa65e
changeset:   94609:e7ba4d3fa65e
user:        Steve Dower <steve.dower at microsoft.com>
date:        Sat Feb 14 10:30:54 2015 -0800
summary:
  Simplify MSI projects.

files:
  Tools/msi/core/core.props               |  12 ---
  Tools/msi/core/core.wixproj             |  12 ++-
  Tools/msi/core/core.wxs                 |  12 ---
  Tools/msi/core/core_d.wixproj           |  12 ++-
  Tools/msi/core/core_d.wxs               |  13 +++
  Tools/msi/core/core_pdb.wixproj         |  12 ++-
  Tools/msi/core/core_pdb.wxs             |  13 +++
  Tools/msi/dev/dev.props                 |  42 -----------
  Tools/msi/dev/dev.wixproj               |  42 ++++++++++-
  Tools/msi/dev/dev.wxs                   |   7 -
  Tools/msi/dev/dev_d.wixproj             |  12 ++-
  Tools/msi/dev/dev_d.wxs                 |  13 +++
  Tools/msi/exe/exe.props                 |  36 ---------
  Tools/msi/exe/exe.wixproj               |  36 +++++++++-
  Tools/msi/exe/exe.wxs                   |  12 ---
  Tools/msi/exe/exe_d.wixproj             |  13 ++-
  Tools/msi/exe/exe_d.wxs                 |  13 +++
  Tools/msi/exe/exe_pdb.wixproj           |  13 ++-
  Tools/msi/exe/exe_pdb.wxs               |  13 +++
  Tools/msi/launcher/launcher.props       |  12 ---
  Tools/msi/launcher/launcher.wixproj     |  13 ++-
  Tools/msi/launcher/launcher.wxs         |   7 -
  Tools/msi/launcher/launcher_files.wxs   |  11 --
  Tools/msi/launcher/launcher_pdb.wixproj |  11 --
  Tools/msi/lib/lib.props                 |  27 -------
  Tools/msi/lib/lib.wixproj               |  27 ++++++-
  Tools/msi/lib/lib.wxs                   |  12 ---
  Tools/msi/lib/lib_d.wixproj             |  12 ++-
  Tools/msi/lib/lib_d.wxs                 |  13 +++
  Tools/msi/lib/lib_pdb.wixproj           |  12 ++-
  Tools/msi/lib/lib_pdb.wxs               |  13 +++
  Tools/msi/tcltk/tcltk.props             |  49 -------------
  Tools/msi/tcltk/tcltk.wixproj           |  42 ++++++++++-
  Tools/msi/tcltk/tcltk.wxs               |  13 ---
  Tools/msi/tcltk/tcltk_d.wixproj         |  21 +++++-
  Tools/msi/tcltk/tcltk_d.wxs             |  14 +++
  Tools/msi/tcltk/tcltk_pdb.wixproj       |  12 ++-
  Tools/msi/tcltk/tcltk_pdb.wxs           |  13 +++
  Tools/msi/test/test.props               |  22 -----
  Tools/msi/test/test.wixproj             |  22 +++++-
  Tools/msi/test/test.wxs                 |  12 ---
  Tools/msi/test/test_d.wixproj           |  12 ++-
  Tools/msi/test/test_d.wxs               |  13 +++
  Tools/msi/test/test_pdb.wixproj         |  12 ++-
  Tools/msi/test/test_pdb.wxs             |  13 +++
  Tools/msi/tools/tools.wixproj           |   3 +-
  46 files changed, 447 insertions(+), 334 deletions(-)


diff --git a/Tools/msi/core/core.props b/Tools/msi/core/core.props
deleted file mode 100644
--- a/Tools/msi/core/core.props
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <Import Project="..\msi.props" />
-    <ItemGroup>
-        <Compile Include="*.wxs" />
-    </ItemGroup>
-    <ItemGroup>
-        <EmbeddedResource Include="*.wxl" />
-    </ItemGroup>
-
-    <Import Project="..\msi.targets" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/core/core.wixproj b/Tools/msi/core/core.wixproj
--- a/Tools/msi/core/core.wixproj
+++ b/Tools/msi/core/core.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>core</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDefaultFeature=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="core.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="core.wxs" />
+        <Compile Include="core_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/core/core.wxs b/Tools/msi/core/core.wxs
--- a/Tools/msi/core/core.wxs
+++ b/Tools/msi/core/core.wxs
@@ -6,20 +6,8 @@
         
         <PropertyRef Id="UpgradeTable" />
         
-        <?ifdef IncludeDefaultFeature ?>
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="core_dll" />
         </Feature>
-        <?endif ?>
-        <?ifdef IncludeSymbols ?>
-        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
-            <ComponentGroupRef Id="core_symbols" />
-        </Feature>
-        <?endif ?>
-        <?ifdef IncludeDebugBinaries ?>
-        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
-            <ComponentGroupRef Id="core_dll_d" />
-        </Feature>
-        <?endif ?>
     </Product>
 </Wix>
diff --git a/Tools/msi/core/core_d.wixproj b/Tools/msi/core/core_d.wixproj
--- a/Tools/msi/core/core_d.wixproj
+++ b/Tools/msi/core/core_d.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>core_d</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDebugBinaries=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="core.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="core_d.wxs" />
+        <Compile Include="core_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/core/core_d.wxs b/Tools/msi/core/core_d.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/core/core_d.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
+            <ComponentGroupRef Id="core_dll_d" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/core/core_pdb.wixproj b/Tools/msi/core/core_pdb.wixproj
--- a/Tools/msi/core/core_pdb.wixproj
+++ b/Tools/msi/core/core_pdb.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>core_pdb</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeSymbols=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="core.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="core_pdb.wxs" />
+        <Compile Include="core_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/core/core_pdb.wxs b/Tools/msi/core/core_pdb.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/core/core_pdb.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
+            <ComponentGroupRef Id="core_symbols" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/dev/dev.props b/Tools/msi/dev/dev.props
deleted file mode 100644
--- a/Tools/msi/dev/dev.props
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <Import Project="..\msi.props" />
-    <PropertyGroup>
-        <DefineConstants Condition="$(BuildForRelease)">
-            $(DefineConstants);
-            IncludeMinGWLib=1;
-        </DefineConstants>
-    </PropertyGroup>
-    <ItemGroup>
-        <Compile Include="*.wxs" />
-    </ItemGroup>
-    <ItemGroup>
-        <EmbeddedResource Include="*.wxl" />
-    </ItemGroup>
-    <ItemGroup>
-        <InstallFiles Include="$(PySourcePath)include\*.h">
-            <SourceBase>$(PySourcePath)</SourceBase>
-            <Source>!(bindpath.src)</Source>
-            <TargetBase>$(PySourcePath)</TargetBase>
-            <Target_></Target_>
-            <Group>dev_include</Group>
-        </InstallFiles>
-    </ItemGroup>
-    
-    <Target Name="BuildMinGWLib"
-            Inputs="$(BuildPath)$(PyDllName).dll"
-            Outputs="$(BuildPath)lib$(PyDllName).a"
-            AfterTargets="PrepareForBuild"
-            Condition="$(BuildForRelease)">
-        <!-- Build libpython##.a as part of this project. This requires gendef and dlltool on the path. -->
-        <PropertyGroup>
-            <_GenDefPlatform>i386</_GenDefPlatform>
-            <_GenDefPlatform Condition="$(Platform) == 'x64'">i386:x86-64</_GenDefPlatform>
-        </PropertyGroup>
-
-        <Exec Command='gendef - "$(BuildPath)$(PyDllName).dll" > "$(IntermediateOutputPath)mingwlib.def"' ContinueOnError="false" />
-        <Exec Command='dlltool --dllname $(PyDllName).dll --def "$(IntermediateOutputPath)mingwlib.def" --output-lib "$(BuildPath)lib$(PyDllName).a" -m $(_GenDefPlatform)' />
-    </Target>
-
-    <Import Project="..\msi.targets" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/dev/dev.wixproj b/Tools/msi/dev/dev.wixproj
--- a/Tools/msi/dev/dev.wixproj
+++ b/Tools/msi/dev/dev.wixproj
@@ -5,7 +5,45 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName Condition="'$(OutputName)' == ''">dev</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDefaultFeature=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="dev.props" />
+    <Import Project="..\msi.props" />
+    <PropertyGroup>
+        <DefineConstants Condition="$(BuildForRelease)">
+            $(DefineConstants);
+            IncludeMinGWLib=1;
+        </DefineConstants>
+    </PropertyGroup>
+    <ItemGroup>
+        <Compile Include="dev.wxs" />
+        <Compile Include="dev_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    <ItemGroup>
+        <InstallFiles Include="$(PySourcePath)include\*.h">
+            <SourceBase>$(PySourcePath)</SourceBase>
+            <Source>!(bindpath.src)</Source>
+            <TargetBase>$(PySourcePath)</TargetBase>
+            <Target_></Target_>
+            <Group>dev_include</Group>
+        </InstallFiles>
+    </ItemGroup>
+    
+    <Target Name="BuildMinGWLib"
+            Inputs="$(BuildPath)$(PyDllName).dll"
+            Outputs="$(BuildPath)lib$(PyDllName).a"
+            AfterTargets="PrepareForBuild"
+            Condition="$(BuildForRelease)">
+        <!-- Build libpython##.a as part of this project. This requires gendef and dlltool on the path. -->
+        <PropertyGroup>
+            <_GenDefPlatform>i386</_GenDefPlatform>
+            <_GenDefPlatform Condition="$(Platform) == 'x64'">i386:x86-64</_GenDefPlatform>
+        </PropertyGroup>
+
+        <Exec Command='gendef - "$(BuildPath)$(PyDllName).dll" > "$(IntermediateOutputPath)mingwlib.def"' ContinueOnError="false" />
+        <Exec Command='dlltool --dllname $(PyDllName).dll --def "$(IntermediateOutputPath)mingwlib.def" --output-lib "$(BuildPath)lib$(PyDllName).a" -m $(_GenDefPlatform)' />
+    </Target>
+
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/dev/dev.wxs b/Tools/msi/dev/dev.wxs
--- a/Tools/msi/dev/dev.wxs
+++ b/Tools/msi/dev/dev.wxs
@@ -6,7 +6,6 @@
         
         <PropertyRef Id="UpgradeTable" />
         
-        <?ifdef IncludeDefaultFeature ?>
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="dev_include" />
             <ComponentGroupRef Id="dev_pyconfig" />
@@ -15,11 +14,5 @@
             <ComponentGroupRef Id="dev_mingw" />
 <?endif ?>
         </Feature>
-        <?endif ?>
-        <?ifdef IncludeDebugBinaries ?>
-        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
-            <ComponentGroupRef Id="dev_libs_d" />
-        </Feature>
-        <?endif ?>
     </Product>
 </Wix>
diff --git a/Tools/msi/dev/dev_d.wixproj b/Tools/msi/dev/dev_d.wixproj
--- a/Tools/msi/dev/dev_d.wixproj
+++ b/Tools/msi/dev/dev_d.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>dev_d</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDebugBinaries=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="dev.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="dev_d.wxs" />
+        <Compile Include="dev_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/dev/dev_d.wxs b/Tools/msi/dev/dev_d.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/dev/dev_d.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
+            <ComponentGroupRef Id="dev_libs_d" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/exe/exe.props b/Tools/msi/exe/exe.props
deleted file mode 100644
--- a/Tools/msi/exe/exe.props
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <PropertyGroup>
-        <!-- Shortcut validation is not necessary -->
-        <SuppressICEs>ICE43</SuppressICEs>
-    </PropertyGroup>
-    <Import Project="..\msi.props" />
-    <ItemGroup>
-        <Compile Include="*.wxs" />
-    </ItemGroup>
-    <ItemGroup>
-        <EmbeddedResource Include="*.wxl" />
-        <WxlTemplate Include="*.wxl_template" />
-    </ItemGroup>
-    
-    <Target Name="_GenerateLicense" AfterTargets="PrepareForBuild">
-        <ItemGroup>
-            <LicenseFiles Include="$(PySourcePath)LICENSE;
-                                   crtlicense.txt;
-                                   $(bz2Dir)LICENSE;
-                                   $(opensslDir)LICENSE;
-                                   $(tclDir)license.terms;
-                                   $(tkDir)license.terms;
-                                   $(tixDir)license.terms" />
-            <_LicenseFiles Include="@(LicenseFiles)">
-                <Content>$([System.IO.File]::ReadAllText(%(FullPath)))</Content>
-            </_LicenseFiles>
-        </ItemGroup>
-        
-        <WriteLinesToFile File="$(BuildPath)LICENSE"
-                          Overwrite="true"
-                          Lines="@(_LicenseFiles->'%(Content)')" />
-    </Target>
-        
-    <Import Project="..\msi.targets" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/exe/exe.wixproj b/Tools/msi/exe/exe.wixproj
--- a/Tools/msi/exe/exe.wixproj
+++ b/Tools/msi/exe/exe.wixproj
@@ -5,7 +5,39 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>exe</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDefaultFeature=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="exe.props" />
+    <PropertyGroup>
+        <!-- Shortcut validation is not necessary -->
+        <SuppressICEs>ICE43</SuppressICEs>
+    </PropertyGroup>
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="exe.wxs" />
+        <Compile Include="exe_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+        <WxlTemplate Include="*.wxl_template" />
+    </ItemGroup>
+    
+    <Target Name="_GenerateLicense" AfterTargets="PrepareForBuild">
+        <ItemGroup>
+            <LicenseFiles Include="$(PySourcePath)LICENSE;
+                                   crtlicense.txt;
+                                   $(bz2Dir)LICENSE;
+                                   $(opensslDir)LICENSE;
+                                   $(tclDir)license.terms;
+                                   $(tkDir)license.terms;
+                                   $(tixDir)license.terms" />
+            <_LicenseFiles Include="@(LicenseFiles)">
+                <Content>$([System.IO.File]::ReadAllText(%(FullPath)))</Content>
+            </_LicenseFiles>
+        </ItemGroup>
+        
+        <WriteLinesToFile File="$(BuildPath)LICENSE"
+                          Overwrite="true"
+                          Lines="@(_LicenseFiles->'%(Content)')" />
+    </Target>
+        
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/exe/exe.wxs b/Tools/msi/exe/exe.wxs
--- a/Tools/msi/exe/exe.wxs
+++ b/Tools/msi/exe/exe.wxs
@@ -7,7 +7,6 @@
         <PropertyRef Id="UpgradeTable" />
         <PropertyRef Id="REGISTRYKEY" />
         
-        <?ifdef IncludeDefaultFeature ?>
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="exe_python" />
             <ComponentGroupRef Id="exe_txt" />
@@ -25,16 +24,5 @@
                 </RegistryKey>
             </Component>
         </Feature>
-        <?endif ?>
-        <?ifdef IncludeSymbols ?>
-        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
-            <ComponentGroupRef Id="exe_python_symbols" />
-        </Feature>
-        <?endif ?>
-        <?ifdef IncludeDebugBinaries ?>
-        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
-            <ComponentGroupRef Id="exe_python_d" />
-        </Feature>
-        <?endif ?>
     </Product>
 </Wix>
diff --git a/Tools/msi/exe/exe_d.wixproj b/Tools/msi/exe/exe_d.wixproj
--- a/Tools/msi/exe/exe_d.wixproj
+++ b/Tools/msi/exe/exe_d.wixproj
@@ -5,7 +5,16 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>exe_d</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDebugBinaries=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="exe.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="exe_d.wxs" />
+        <Compile Include="exe_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+        <WxlTemplate Include="*.wxl_template" />
+    </ItemGroup>
+
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/exe/exe_d.wxs b/Tools/msi/exe/exe_d.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/exe/exe_d.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
+            <ComponentGroupRef Id="exe_python_d" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/exe/exe_pdb.wixproj b/Tools/msi/exe/exe_pdb.wixproj
--- a/Tools/msi/exe/exe_pdb.wixproj
+++ b/Tools/msi/exe/exe_pdb.wixproj
@@ -5,7 +5,16 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>exe_pdb</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeSymbols=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="exe.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="exe_pdb.wxs" />
+        <Compile Include="exe_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+        <WxlTemplate Include="*.wxl_template" />
+    </ItemGroup>
+
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/exe/exe_pdb.wxs b/Tools/msi/exe/exe_pdb.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/exe/exe_pdb.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
+            <ComponentGroupRef Id="exe_python_symbols" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/launcher/launcher.props b/Tools/msi/launcher/launcher.props
deleted file mode 100644
--- a/Tools/msi/launcher/launcher.props
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <Import Project="..\msi.props" />
-    <ItemGroup>
-        <Compile Include="*.wxs" />
-    </ItemGroup>
-    <ItemGroup>
-        <EmbeddedResource Include="*.wxl" />
-    </ItemGroup>
-    
-    <Import Project="..\msi.targets" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/launcher/launcher.wixproj b/Tools/msi/launcher/launcher.wixproj
--- a/Tools/msi/launcher/launcher.wixproj
+++ b/Tools/msi/launcher/launcher.wixproj
@@ -5,7 +5,16 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>launcher</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDefaultFeature=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="launcher.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="launcher.wxs" />
+        <Compile Include="launcher_files.wxs" />
+        <Compile Include="launcher_reg.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/launcher/launcher.wxs b/Tools/msi/launcher/launcher.wxs
--- a/Tools/msi/launcher/launcher.wxs
+++ b/Tools/msi/launcher/launcher.wxs
@@ -8,7 +8,6 @@
         <PropertyRef Id="UpgradeTable" />
         <PropertyRef Id="ARPPRODUCTICON" />
 
-        <?ifdef IncludeDefaultFeature ?>
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="launcher_exe" Primary="yes" />
         </Feature>
@@ -16,12 +15,6 @@
             <ComponentGroupRef Id="launcher_exe" />
             <ComponentGroupRef Id="launcher_reg" />
         </Feature>
-        <?endif ?>
-        <?ifdef IncludeSymbols ?>
-        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
-            <ComponentGroupRef Id="launcher_pdb" />
-        </Feature>
-        <?endif ?>
         
         <Directory Id="TARGETDIR" Name="SourceDir">
             <Directory Id="LauncherInstallDirectory" />
diff --git a/Tools/msi/launcher/launcher_files.wxs b/Tools/msi/launcher/launcher_files.wxs
--- a/Tools/msi/launcher/launcher_files.wxs
+++ b/Tools/msi/launcher/launcher_files.wxs
@@ -21,15 +21,4 @@
             </Component>
         </ComponentGroup>
     </Fragment>
-    
-    <Fragment>
-        <ComponentGroup Id="launcher_pdb">
-            <Component Id="py.pdb" Directory="LauncherInstallDirectory" Guid="*">
-                <File Id="py.pdb" Name="py.pdb" Source="py.pdb" />
-            </Component>
-            <Component Id="pyw.pdb" Directory="LauncherInstallDirectory" Guid="*">
-                <File Id="pyw.pdb" Name="pyw.pdb" Source="pyw.pdb" />
-            </Component>
-        </ComponentGroup>
-    </Fragment>
 </Wix>
diff --git a/Tools/msi/launcher/launcher_pdb.wixproj b/Tools/msi/launcher/launcher_pdb.wixproj
deleted file mode 100644
--- a/Tools/msi/launcher/launcher_pdb.wixproj
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <PropertyGroup>
-        <ProjectGuid>{A21D4A23-483F-4822-A0B1-FCB14D8CEBA7}</ProjectGuid>
-        <SchemaVersion>2.0</SchemaVersion>
-        <OutputName>launcher_pdb</OutputName>
-        <OutputType>Package</OutputType>
-        <DefineConstants>IncludeSymbols=1;$(DefineConstants)</DefineConstants>
-    </PropertyGroup>
-    <Import Project="launcher.props" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/lib/lib.props b/Tools/msi/lib/lib.props
deleted file mode 100644
--- a/Tools/msi/lib/lib.props
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <Import Project="..\msi.props" />
-    <ItemGroup>
-        <Compile Include="*.wxs" />
-    </ItemGroup>
-    <ItemGroup>
-        <EmbeddedResource Include="*.wxl" />
-    </ItemGroup>
-    <ItemGroup>
-        <ExcludeFolders Include="Lib\test;Lib\tests;Lib\tkinter;Lib\idlelib;Lib\turtledemo" />
-        <InstallFiles Include="$(PySourcePath)Lib\**\*"
-                      Exclude="$(PySourcePath)Lib\**\*.pyc;
-                               $(PySourcePath)Lib\**\*.pyo;
-                               $(PySourcePath)Lib\site-packages\README;
-                               @(ExcludeFolders->'$(PySourcePath)%(Identity)\*');
-                               @(ExcludeFolders->'$(PySourcePath)%(Identity)\**\*')">
-            <SourceBase>$(PySourcePath)Lib</SourceBase>
-            <Source>!(bindpath.src)Lib\</Source>
-            <TargetBase>$(PySourcePath)Lib</TargetBase>
-            <Target_>Lib\</Target_>
-            <Group>lib_py</Group>
-        </InstallFiles>
-    </ItemGroup>
-    
-    <Import Project="..\msi.targets" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/lib/lib.wixproj b/Tools/msi/lib/lib.wixproj
--- a/Tools/msi/lib/lib.wixproj
+++ b/Tools/msi/lib/lib.wixproj
@@ -5,7 +5,30 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>lib</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDefaultFeature=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="lib.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="lib.wxs" />
+        <Compile Include="lib_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    <ItemGroup>
+        <ExcludeFolders Include="Lib\test;Lib\tests;Lib\tkinter;Lib\idlelib;Lib\turtledemo" />
+        <InstallFiles Include="$(PySourcePath)Lib\**\*"
+                      Exclude="$(PySourcePath)Lib\**\*.pyc;
+                               $(PySourcePath)Lib\**\*.pyo;
+                               $(PySourcePath)Lib\site-packages\README;
+                               @(ExcludeFolders->'$(PySourcePath)%(Identity)\*');
+                               @(ExcludeFolders->'$(PySourcePath)%(Identity)\**\*')">
+            <SourceBase>$(PySourcePath)Lib</SourceBase>
+            <Source>!(bindpath.src)Lib\</Source>
+            <TargetBase>$(PySourcePath)Lib</TargetBase>
+            <Target_>Lib\</Target_>
+            <Group>lib_py</Group>
+        </InstallFiles>
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/lib/lib.wxs b/Tools/msi/lib/lib.wxs
--- a/Tools/msi/lib/lib.wxs
+++ b/Tools/msi/lib/lib.wxs
@@ -7,22 +7,10 @@
         <PropertyRef Id="UpgradeTable" />
         <PropertyRef Id="REGISTRYKEY" />
         
-        <?ifdef IncludeDefaultFeature ?>
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="lib_py" />
             <ComponentGroupRef Id="lib_files" />
             <ComponentGroupRef Id="lib_extensions" />
         </Feature>
-        <?endif ?>
-        <?ifdef IncludeSymbols ?>
-        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
-            <ComponentGroupRef Id="lib_extensions_symbols" />
-        </Feature>
-        <?endif ?>
-        <?ifdef IncludeDebugBinaries ?>
-        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
-            <ComponentGroupRef Id="lib_extensions_d" />
-        </Feature>
-        <?endif ?>
     </Product>
 </Wix>
diff --git a/Tools/msi/lib/lib_d.wixproj b/Tools/msi/lib/lib_d.wixproj
--- a/Tools/msi/lib/lib_d.wixproj
+++ b/Tools/msi/lib/lib_d.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>lib_d</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDebugBinaries=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="lib.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="lib_d.wxs" />
+        <Compile Include="lib_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/lib/lib_d.wxs b/Tools/msi/lib/lib_d.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/lib/lib_d.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
+            <ComponentGroupRef Id="lib_extensions_d" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/lib/lib_pdb.wixproj b/Tools/msi/lib/lib_pdb.wixproj
--- a/Tools/msi/lib/lib_pdb.wixproj
+++ b/Tools/msi/lib/lib_pdb.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>lib_pdb</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeSymbols=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="lib.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="lib_pdb.wxs" />
+        <Compile Include="lib_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/lib/lib_pdb.wxs b/Tools/msi/lib/lib_pdb.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/lib/lib_pdb.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
+            <ComponentGroupRef Id="lib_extensions_symbols" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/tcltk/tcltk.props b/Tools/msi/tcltk/tcltk.props
deleted file mode 100644
--- a/Tools/msi/tcltk/tcltk.props
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <PropertyGroup>
-        <!-- Shortcut validation is not necessary -->
-        <SuppressICEs>ICE43</SuppressICEs>
-    </PropertyGroup>
-    <Import Project="..\msi.props" />
-    <ItemGroup>
-        <Compile Include="*.wxs" />
-    </ItemGroup>
-    <ItemGroup>
-        <WxlTemplate Include="*.wxl_template" />
-    </ItemGroup>
-    <ItemGroup>
-        <InstallFiles Include="$(tcltkDir)bin\*.dll" Exclude="$(tcltkDir)bin\*g.dll">
-            <SourceBase>$(tcltkDir)</SourceBase>
-            <Source>!(bindpath.tcltk)</Source>
-            <TargetBase>$(tcltkDir)bin</TargetBase>
-            <Target_>DLLs\</Target_>
-            <Group>tcltk_dlls</Group>
-        </InstallFiles>
-        <InstallFiles Include="$(tcltkDir)bin\*g.dll">
-            <SourceBase>$(tcltkDir)</SourceBase>
-            <Source>!(bindpath.tcltk)</Source>
-            <TargetBase>$(tcltkDir)bin</TargetBase>
-            <Target_>DLLs\</Target_>
-            <Group>tcltk_dlls_d</Group>
-        </InstallFiles>
-
-        <InstallFiles Include="$(tcltkDir)lib\**\*">
-            <SourceBase>$(tcltkDir)</SourceBase>
-            <Source>!(bindpath.tcltk)</Source>
-            <TargetBase>$(tcltkDir)lib</TargetBase>
-            <Target_>tcl\</Target_>
-            <Group>tcltk_lib</Group>
-        </InstallFiles>
-
-        <InstallFiles Include="$(PySourcePath)Lib\tkinter\**\*;$(PySourcePath)Lib\idlelib\**\*;$(PySourcePath)Lib\turtledemo\**\*"
-                      Exclude="$(PySourcePath)Lib\**\*.pyc;$(PySourcePath)Lib\**\*.pyo">
-            <SourceBase>$(PySourcePath)</SourceBase>
-            <Source>!(bindpath.src)</Source>
-            <TargetBase>$(PySourcePath)</TargetBase>
-            <Target_></Target_>
-            <Group>tkinter_lib</Group>
-        </InstallFiles>
-    </ItemGroup>
-    
-    <Import Project="..\msi.targets" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/tcltk/tcltk.wixproj b/Tools/msi/tcltk/tcltk.wixproj
--- a/Tools/msi/tcltk/tcltk.wixproj
+++ b/Tools/msi/tcltk/tcltk.wixproj
@@ -5,7 +5,45 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>tcltk</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDefaultFeature=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="tcltk.props" />
+    <PropertyGroup>
+        <!-- Shortcut validation is not necessary -->
+        <SuppressICEs>ICE43</SuppressICEs>
+    </PropertyGroup>
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="tcltk.wxs" />
+        <Compile Include="tcltk_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <WxlTemplate Include="*.wxl_template" />
+    </ItemGroup>
+    <ItemGroup>
+        <InstallFiles Include="$(tcltkDir)bin\*.dll" Exclude="$(tcltkDir)bin\*g.dll">
+            <SourceBase>$(tcltkDir)</SourceBase>
+            <Source>!(bindpath.tcltk)</Source>
+            <TargetBase>$(tcltkDir)bin</TargetBase>
+            <Target_>DLLs\</Target_>
+            <Group>tcltk_dlls</Group>
+        </InstallFiles>
+
+        <InstallFiles Include="$(tcltkDir)lib\**\*">
+            <SourceBase>$(tcltkDir)</SourceBase>
+            <Source>!(bindpath.tcltk)</Source>
+            <TargetBase>$(tcltkDir)lib</TargetBase>
+            <Target_>tcl\</Target_>
+            <Group>tcltk_lib</Group>
+        </InstallFiles>
+
+        <InstallFiles Include="$(PySourcePath)Lib\tkinter\**\*;$(PySourcePath)Lib\idlelib\**\*;$(PySourcePath)Lib\turtledemo\**\*"
+                      Exclude="$(PySourcePath)Lib\**\*.pyc;$(PySourcePath)Lib\**\*.pyo">
+            <SourceBase>$(PySourcePath)</SourceBase>
+            <Source>!(bindpath.src)</Source>
+            <TargetBase>$(PySourcePath)</TargetBase>
+            <Target_></Target_>
+            <Group>tkinter_lib</Group>
+        </InstallFiles>
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/tcltk/tcltk.wxs b/Tools/msi/tcltk/tcltk.wxs
--- a/Tools/msi/tcltk/tcltk.wxs
+++ b/Tools/msi/tcltk/tcltk.wxs
@@ -15,7 +15,6 @@
         
         <Condition Message="!(loc.NoPython)">PYTHON_EXE</Condition>
 
-        <?ifdef IncludeDefaultFeature ?>
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="tkinter_extension" />
             <ComponentGroupRef Id="tcltk_dlls" />
@@ -37,17 +36,5 @@
                 </Shortcut>
             </Component>
         </Feature>
-        <?endif ?>
-        <?ifdef IncludeSymbols ?>
-        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
-            <ComponentGroupRef Id="tkinter_extension_symbols" />
-        </Feature>
-        <?endif ?>
-        <?ifdef IncludeDebugBinaries ?>
-        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
-            <ComponentGroupRef Id="tkinter_extension_d" />
-            <ComponentGroupRef Id="tcltk_dlls_d" />
-        </Feature>
-        <?endif ?>
     </Product>
 </Wix>
diff --git a/Tools/msi/tcltk/tcltk_d.wixproj b/Tools/msi/tcltk/tcltk_d.wixproj
--- a/Tools/msi/tcltk/tcltk_d.wixproj
+++ b/Tools/msi/tcltk/tcltk_d.wixproj
@@ -5,7 +5,24 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>tcltk_d</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDebugBinaries=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="tcltk.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="tcltk_d.wxs" />
+        <Compile Include="tcltk_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <WxlTemplate Include="*.wxl_template" />
+    </ItemGroup>
+    <ItemGroup>
+        <InstallFiles Include="$(tcltkDir)bin\*g.dll">
+            <SourceBase>$(tcltkDir)</SourceBase>
+            <Source>!(bindpath.tcltk)</Source>
+            <TargetBase>$(tcltkDir)bin</TargetBase>
+            <Target_>DLLs\</Target_>
+            <Group>tcltk_dlls_d</Group>
+        </InstallFiles>
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/tcltk/tcltk_d.wxs b/Tools/msi/tcltk/tcltk_d.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/tcltk/tcltk_d.wxs
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
+            <ComponentGroupRef Id="tkinter_extension_d" />
+            <ComponentGroupRef Id="tcltk_dlls_d" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/tcltk/tcltk_pdb.wixproj b/Tools/msi/tcltk/tcltk_pdb.wixproj
--- a/Tools/msi/tcltk/tcltk_pdb.wixproj
+++ b/Tools/msi/tcltk/tcltk_pdb.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>tcltk_pdb</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeSymbols=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="tcltk.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="tcltk_pdb.wxs" />
+        <Compile Include="tcltk_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <WxlTemplate Include="*.wxl_template" />
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/tcltk/tcltk_pdb.wxs b/Tools/msi/tcltk/tcltk_pdb.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/tcltk/tcltk_pdb.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
+            <ComponentGroupRef Id="tkinter_extension_symbols" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/test/test.props b/Tools/msi/test/test.props
deleted file mode 100644
--- a/Tools/msi/test/test.props
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <Import Project="..\msi.props" />
-    <ItemGroup>
-        <Compile Include="*.wxs" />
-    </ItemGroup>
-    <ItemGroup>
-        <EmbeddedResource Include="*.wxl" />
-    </ItemGroup>
-    <ItemGroup>
-        <InstallFiles Include="$(PySourcePath)Lib\test\**\*"
-                      Exclude="$(PySourcePath)Lib\**\*.pyc;$(PySourcePath)Lib\**\*.pyo">
-            <SourceBase>$(PySourcePath)</SourceBase>
-            <Source>!(bindpath.src)</Source>
-            <TargetBase>$(PySourcePath)</TargetBase>
-            <Target_></Target_>
-            <Group>test_py</Group>
-        </InstallFiles>
-    </ItemGroup>
-    
-    <Import Project="..\msi.targets" />
-</Project>
\ No newline at end of file
diff --git a/Tools/msi/test/test.wixproj b/Tools/msi/test/test.wixproj
--- a/Tools/msi/test/test.wixproj
+++ b/Tools/msi/test/test.wixproj
@@ -5,7 +5,25 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>test</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDefaultFeature=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="test.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="test.wxs" />
+        <Compile Include="test_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    <ItemGroup>
+        <InstallFiles Include="$(PySourcePath)Lib\test\**\*"
+                      Exclude="$(PySourcePath)Lib\**\*.pyc;$(PySourcePath)Lib\**\*.pyo">
+            <SourceBase>$(PySourcePath)</SourceBase>
+            <Source>!(bindpath.src)</Source>
+            <TargetBase>$(PySourcePath)</TargetBase>
+            <Target_></Target_>
+            <Group>test_py</Group>
+        </InstallFiles>
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/test/test.wxs b/Tools/msi/test/test.wxs
--- a/Tools/msi/test/test.wxs
+++ b/Tools/msi/test/test.wxs
@@ -7,21 +7,9 @@
         <PropertyRef Id="UpgradeTable" />
         <PropertyRef Id="REGISTRYKEY" />
         
-        <?ifdef IncludeDefaultFeature ?>
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="test_py" />
             <ComponentGroupRef Id="test_extensions" />
         </Feature>
-        <?endif ?>
-        <?ifdef IncludeSymbols ?>
-        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
-            <ComponentGroupRef Id="test_extensions_symbols" />
-        </Feature>
-        <?endif ?>
-        <?ifdef IncludeDebugBinaries ?>
-        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
-            <ComponentGroupRef Id="test_extensions_d" />
-        </Feature>
-        <?endif ?>
     </Product>
 </Wix>
diff --git a/Tools/msi/test/test_d.wixproj b/Tools/msi/test/test_d.wixproj
--- a/Tools/msi/test/test_d.wixproj
+++ b/Tools/msi/test/test_d.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>test_d</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeDebugBinaries=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="test.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="test_d.wxs" />
+        <Compile Include="test_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/test/test_d.wxs b/Tools/msi/test/test_d.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/test/test_d.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
+            <ComponentGroupRef Id="test_extensions_d" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/test/test_pdb.wixproj b/Tools/msi/test/test_pdb.wixproj
--- a/Tools/msi/test/test_pdb.wixproj
+++ b/Tools/msi/test/test_pdb.wixproj
@@ -5,7 +5,15 @@
         <SchemaVersion>2.0</SchemaVersion>
         <OutputName>test_pdb</OutputName>
         <OutputType>Package</OutputType>
-        <DefineConstants>IncludeSymbols=1;$(DefineConstants)</DefineConstants>
     </PropertyGroup>
-    <Import Project="test.props" />
+    <Import Project="..\msi.props" />
+    <ItemGroup>
+        <Compile Include="test_pdb.wxs" />
+        <Compile Include="test_files.wxs" />
+    </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="*.wxl" />
+    </ItemGroup>
+    
+    <Import Project="..\msi.targets" />
 </Project>
\ No newline at end of file
diff --git a/Tools/msi/test/test_pdb.wxs b/Tools/msi/test/test_pdb.wxs
new file mode 100644
--- /dev/null
+++ b/Tools/msi/test/test_pdb.wxs
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Product Id="*" Language="!(loc.LCID)" Name="!(loc.Title)" Version="$(var.Version)" Manufacturer="!(loc.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
+        <Package InstallerVersion="300" Compressed="yes" InstallScope="perUser" Platform="$(var.Platform)" />
+        <MediaTemplate EmbedCab="yes" CompressionLevel="high" />
+        
+        <PropertyRef Id="UpgradeTable" />
+        
+        <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
+            <ComponentGroupRef Id="test_extensions_symbols" />
+        </Feature>
+    </Product>
+</Wix>
diff --git a/Tools/msi/tools/tools.wixproj b/Tools/msi/tools/tools.wixproj
--- a/Tools/msi/tools/tools.wixproj
+++ b/Tools/msi/tools/tools.wixproj
@@ -8,7 +8,8 @@
     </PropertyGroup>
     <Import Project="..\msi.props" />
     <ItemGroup>
-        <Compile Include="*.wxs" />
+        <Compile Include="tools.wxs" />
+        <Compile Include="tools_files.wxs" />
     </ItemGroup>
     <ItemGroup>
         <EmbeddedResource Include="*.wxl" />

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list