]> granicus.if.org Git - python/commitdiff
Improves handling of test markers for building Python without intefering with actual...
authorSteve Dower <steve.dower@microsoft.com>
Sat, 31 Oct 2015 19:17:11 +0000 (12:17 -0700)
committerSteve Dower <steve.dower@microsoft.com>
Sat, 31 Oct 2015 19:17:11 +0000 (12:17 -0700)
13 files changed:
PCbuild/build.bat
PCbuild/pyproject.props
PCbuild/python.props
Tools/msi/build.bat
Tools/msi/bundle/Default.thm
Tools/msi/bundle/bundle.targets
Tools/msi/bundle/bundle.wxs
Tools/msi/common.wxs
Tools/msi/launcher/launcher_files.wxs
Tools/msi/launcher/launcher_reg.wxs
Tools/msi/msi.props
Tools/msi/msi.targets
Tools/msi/tcltk/tcltk_reg.wxs

index 2c41fb21eb2de24a49ee8a02df9a630afd617562..cfbc4a29377755c9373cffd5d39a18d837329dfe 100644 (file)
@@ -38,6 +38,7 @@ echo.  -p x64 ^| Win32
 echo.     Set the platform (default: Win32)\r
 echo.  -t Build ^| Rebuild ^| Clean ^| CleanAll\r
 echo.     Set the target manually\r
+echo.  --test-marker  Enable the test marker within the build.\r
 exit /b 127\r
 \r
 :Run\r
@@ -62,6 +63,7 @@ if "%~1"=="-m" (set parallel=/m) & shift & goto CheckOpts
 if "%~1"=="-M" (set parallel=) & shift & goto CheckOpts\r
 if "%~1"=="-v" (set verbose=/v:n) & shift & goto CheckOpts\r
 if "%~1"=="-k" (set kill=true) & shift & goto CheckOpts\r
+if "%~1"=="--test-marker" (set UseTestMarker=true) & shift & goto CheckOpts\r
 if "%~1"=="-V" shift & goto Version\r
 rem These use the actual property names used by MSBuild.  We could just let\r
 rem them in through the environment, but we specify them on the command line\r
@@ -93,6 +95,7 @@ msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose%^
  /p:Configuration=%conf% /p:Platform=%platf%^\r
  /p:IncludeExternals=%IncludeExternals%^\r
  /p:IncludeSSL=%IncludeSSL% /p:IncludeTkinter=%IncludeTkinter%^\r
+ /p:UseTestMarker=%UseTestMarker%^\r
  %1 %2 %3 %4 %5 %6 %7 %8 %9\r
 \r
 @goto :eof\r
index a2c44f33cb004eb413d92cedd7811cc2135c629c..25cdfcc926b52db0f1eb3fe8a1e93ee38d5e865b 100644 (file)
@@ -128,8 +128,8 @@ foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses
   </UsingTask>
   
   <Target Name="KillPython" BeforeTargets="PrepareForBuild" Condition="'$(KillPython)' == 'true'">
-    <Message Text="Killing any running python.exe instances..." Importance="high" />
-    <KillPython FileName="$(OutDir)python$(PyDebugExt).exe" />
+    <Message Text="Killing any running python$(PyDebugExt)$(PyTestExt).exe instances..." Importance="high" />
+    <KillPython FileName="$(OutDir)python$(PyDebugExt)$(PyTestExt).exe" />
   </Target>
   
   <!--
index 25d6d920104565b7d27ce6b6da4340b28254572f..862f04103c3278c669fc3a24ed386dadc9f5cc08 100644 (file)
     <!-- Suffix for all binaries when building for debug -->
     <PyDebugExt Condition="'$(PyDebugExt)' == '' and $(Configuration) == 'Debug'">_d</PyDebugExt>
     
+    <!-- Suffix for versions/keys when building with test markers -->
+    <PyTestExt Condition="$(UseTestMarker) == 'true'">-test</PyTestExt>
+    
+    <!-- Suffix for versions/keys when building for particular platforms -->
+    <PyArchExt Condition="'$(ArchName)' == 'win32'">-32</PyArchExt>
+    
     <!-- Full path of the resulting python.exe binary -->
     <PythonExe Condition="'$(PythonExe)' == ''">$(BuildPath)python$(PyDebugExt).exe</PythonExe>
   </PropertyGroup>
             $([msbuild]::Multiply($(MicroVersionNumber), 1000))
         ))
     ))</Field3Value>
+    <Field3Value Condition="$(UseTestMarker) == 'true'">$([msbuild]::Add($(Field3Value), 9000))</Field3Value>
     
     <!-- The name of the resulting pythonXY.dll (without the extension) -->
     <PyDllName>python$(MajorVersionNumber)$(MinorVersionNumber)$(PyDebugExt)</PyDllName>
 
     <!-- The version and platform tag to include in .pyd filenames -->
-    <PydTag Condition="$(Platform) == 'Win32' or $(Platform) == 'x86'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win32</PydTag>
-    <PydTag Condition="$(Platform) == 'x64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_amd64</PydTag>
+    <PydTag Condition="$(ArchName) == 'win32'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win32</PydTag>
+    <PydTag Condition="$(ArchName) == 'amd64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_amd64</PydTag>
     
     <!-- The version number for sys.winver -->
-    <SysWinVer>$(MajorVersionNumber).$(MinorVersionNumber)</SysWinVer>
-    <SysWinVer Condition="$(Platform) == 'Win32' or $(Platform) == 'x86'">$(SysWinVer)-32</SysWinVer>
+    <SysWinVer>$(MajorVersionNumber).$(MinorVersionNumber)$(PyArchExt)$(PyTestExt)</SysWinVer>
   </PropertyGroup>
   
   <!-- Displays the calculated version info -->
     <Message Importance="high" Text="PythonVersion:       $(PythonVersion)" />
     <Message Importance="high" Text="PythonVersionHex:    0x$([System.UInt32]::Parse($(PythonVersionHex)).ToString(`X08`))" />
     <Message Importance="high" Text="Field3Value:         $(Field3Value)" />
+    <Message Importance="high" Text="SysWinVer:           $(SysWinVer)" />
+    <Message Importance="high" Text="PyDllName:           $(PyDllName)" />
   </Target>
 </Project>
index b11579b116b5859d8e8d4d3d745de0813aaea1bd..a61ace8a959258a18243989379cecb6196d43a5d 100644 (file)
@@ -6,16 +6,18 @@ set PCBUILD=%D%..\..\PCBuild\
 set BUILDX86=\r
 set BUILDX64=\r
 set BUILDDOC=\r
-set BUILDPX=\r
+set BUILDTEST=--test-marker\r
 set BUILDPACK=\r
+set REBUILD=\r
 \r
 :CheckOpts\r
 if "%~1" EQU "-h" goto Help\r
 if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts\r
 if "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts\r
 if "%~1" EQU "--doc" (set BUILDDOC=1) && shift && goto CheckOpts\r
-if "%~1" EQU "--test-marker" (set BUILDPX=1) && shift && goto CheckOpts\r
+if "%~1" EQU "--no-test-marker" (set BUILDTEST=) && shift && goto CheckOpts\r
 if "%~1" EQU "--pack" (set BUILDPACK=1) && shift && goto CheckOpts\r
+if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts\r
 \r
 if not defined BUILDX86 if not defined BUILDX64 (set BUILDX86=1) && (set BUILDX64=1)\r
 \r
@@ -24,15 +26,15 @@ call "%D%get_externals.bat"
 call "%PCBUILD%env.bat" x86\r
 \r
 if defined BUILDX86 (\r
-    call "%PCBUILD%build.bat" -d -e\r
+    call "%PCBUILD%build.bat" -d -e %REBUILD% %BUILDTEST%\r
     if errorlevel 1 goto :eof\r
-    call "%PCBUILD%build.bat" -e\r
+    call "%PCBUILD%build.bat" -e %REBUILD% %BUILDTEST%\r
     if errorlevel 1 goto :eof\r
 )\r
 if defined BUILDX64 (\r
-    call "%PCBUILD%build.bat" -p x64 -d -e\r
+    call "%PCBUILD%build.bat" -p x64 -d -e %REBUILD% %BUILDTEST%\r
     if errorlevel 1 goto :eof\r
-    call "%PCBUILD%build.bat" -p x64 -e\r
+    call "%PCBUILD%build.bat" -p x64 -e %REBUILD% %BUILDTEST%\r
     if errorlevel 1 goto :eof\r
 )\r
 \r
@@ -42,12 +44,15 @@ if defined BUILDDOC (
 )\r
 \r
 set BUILD_CMD="%D%bundle\snapshot.wixproj"\r
-if defined BUILDPX (\r
+if defined BUILDTEST (\r
     set BUILD_CMD=%BUILD_CMD% /p:UseTestMarker=true\r
 )\r
 if defined BUILDPACK (\r
     set BUILD_CMD=%BUILD_CMD% /p:Pack=true\r
 )\r
+if defined REBUILD (\r
+    set BUILD_CMD=%BUILD_CMD% /t:Rebuild\r
+)\r
 \r
 if defined BUILDX86 (\r
     msbuild %BUILD_CMD%\r
@@ -61,10 +66,11 @@ if defined BUILDX64 (
 exit /B 0\r
 \r
 :Help\r
-echo build.bat [-x86] [-x64] [--doc] [-h] [--test-marker] [--pack]\r
+echo build.bat [-x86] [-x64] [--doc] [-h] [--no-test-marker] [--pack] [-r]\r
 echo.\r
 echo    -x86                Build x86 installers\r
 echo    -x64                Build x64 installers\r
 echo    --doc               Build CHM documentation\r
-echo    --test-marker       Build installers with 'x' markers\r
+echo    --no-test-marker    Build without test markers\r
 echo    --pack              Embed core MSIs into installer\r
+echo    -r                  Rebuild rather than incremental build\r
index 903af4f12dc5720d230e19fd37c5dea97a69e6aa..8ff4c3b9f3e9646438e96d5866880fd7874d9e0b 100644 (file)
@@ -64,7 +64,7 @@
         <Checkbox Name="Include_test" X="185" Y="201" Width="-11" Height="24" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.Include_testLabel)</Checkbox>
         <Text X="205" Y="226" Width="-11" Height="24" TabStop="no" FontId="5">#(loc.Include_testHelpLabel)</Text>
 
-        <Checkbox Name="Include_launcher" X="185" Y="251" Width="100" Height="24" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.Include_launcherLabel)</Checkbox>
+        <Checkbox Name="Include_launcher" X="185" Y="251" Width="100" Height="24" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.Include_launcherLabel)</Checkbox>
         <Checkbox Name="CustomInstallLauncherAllUsers" X="285" Y="251" Width="-11" Height="24" TabStop="yes" FontId="3">#(loc.InstallLauncherAllUsersLabel)</Checkbox>
         <Text X="205" Y="276" Width="-11" Height="24" TabStop="no" FontId="5">#(loc.Include_launcherHelpLabel)</Text>
 
index 9b7d09015fdd3ac25f0aa033fc32fcbefbdb46a2..57ca1dcfe1bb4a11b2f81ae5820dc535b680254e 100644 (file)
     </Target>
     
     <Target Name="BuildLauncher" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'">
-        <!-- Build the launcher MSI using Exec rather than MSBuild -->
-        <Exec Command='msbuild ..\launcher\launcher.wixproj /p:Platform=x86 /p:ReleaseUri="$(ReleaseUri)" /p:OutputPath="$(BuildPath.TrimEnd(`\`))" /p:OutputSuffix=$(Platform) /p:BuildForRelease=$(BuildForRelease) /p:UseTestMarker=$(UseTestMarker)'
+        <!--
+        Build the launcher MSI using Exec rather than MSBuild
+        Also, never use the test marker for the launcher. It's going to corrupt things anyway, so we'll
+        just disable it by default.
+         -->
+        <Exec Command='msbuild ..\launcher\launcher.wixproj /p:Platform=x86 /p:ReleaseUri="$(ReleaseUri)" /p:OutputPath="$(BuildPath.TrimEnd(`\`))" /p:OutputSuffix=$(Platform) /p:BuildForRelease=$(BuildForRelease) /p:UseTestMarker=false'
               ContinueOnError="false" />
     </Target>
     
index ffaadbd91f7304c0466fa8ee913beedef1a4a2d3..b8430a4058a49f3c24789f8a11a06de2eefecac7 100644 (file)
 
     <Variable Name="ShortVersion" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)" />
     <Variable Name="ShortVersionNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)" />
-    <Variable Name="WinVer" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)$(var.Suffix32)" />
-    <Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)" />
+    <Variable Name="WinVer" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
+    <Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
 
     <Variable Name="InstallAllUsers" Value="0" bal:Overridable="yes" />
+    <?ifndef PyTestExt ?>
     <Variable Name="InstallLauncherAllUsers" Value="1" bal:Overridable="yes" />
+    <?else ?>
+    <Variable Name="InstallLauncherAllUsers" Value="0" />
+    <?endif ?>
     <Variable Name="TargetDir" Value="" bal:Overridable="yes" />
     <?if $(var.Platform)~="x64" ?>
-    <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]$(var.TestPrefix)Python[WinVerNoDot]" bal:Overridable="yes" />
+    <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]Python[WinVerNoDot]" bal:Overridable="yes" />
     <Variable Name="TargetPlatform" Value="x64" />
     <?else ?>
-    <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesFolder]$(var.TestPrefix)Python[WinVerNoDot]" bal:Overridable="yes" />
+    <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesFolder]Python[WinVerNoDot]" bal:Overridable="yes" />
     <Variable Name="TargetPlatform" Value="x86" />
     <?endif ?>
-    <Variable Name="DefaultJustForMeTargetDir" Value="[LocalAppDataFolder]Programs\$(var.TestPrefix)Python\Python[WinVerNoDot]" bal:Overridable="yes" />
-    <Variable Name="OptionalFeaturesRegistryKey" Value="Software\$(var.TestPrefix)Python\PythonCore\[WinVer]\InstalledFeatures" />
-    <Variable Name="TargetDirRegistryKey" Value="Software\$(var.TestPrefix)Python\PythonCore\[WinVer]\InstallPath" />
+    <Variable Name="DefaultJustForMeTargetDir" Value="[LocalAppDataFolder]Programs\Python\Python[WinVerNoDot]" bal:Overridable="yes" />
+    <Variable Name="OptionalFeaturesRegistryKey" Value="Software\Python\PythonCore\[WinVer]\InstalledFeatures" />
+    <Variable Name="TargetDirRegistryKey" Value="Software\Python\PythonCore\[WinVer]\InstallPath" />
     
     <!--
     An empty string will use the other defaults based on InstallAllUsers
     <Variable Name="DefaultCustomTargetDir" Value="" bal:Overridable="yes" />
 
     <Variable Name="InstallAllUsersState" Value="enabled" />
+    <?ifndef PyTestExt ?>
     <Variable Name="InstallLauncherAllUsersState" Value="enabled" bal:Overridable="yes" />
+    <?else ?>
+    <Variable Name="InstallLauncherAllUsersState" Value="disable" bal:Overridable="yes" />
+    <?endif ?>
     <Variable Name="CustomInstallLauncherAllUsersState" Value="[InstallLauncherAllUsersState]" />
     <Variable Name="TargetDirState" Value="enabled" />
     <Variable Name="CustomBrowseButtonState" Value="enabled" />
     <Variable Name="Include_tools" Value="1" bal:Overridable="yes" />
     <Variable Name="Include_tcltk" Value="1" bal:Overridable="yes" />
     <Variable Name="Include_pip" Value="1" bal:Overridable="yes" />
+    <?ifndef PyTestExt ?>
     <Variable Name="Include_launcher" Value="1" bal:Overridable="yes" />
+    <?else ?>
+    <Variable Name="Include_launcher" Value="0" />
+    <Variable Name="Include_launcherState" Value="disable" />
+    <?endif ?>
     <Variable Name="Include_symbols" Value="0" bal:Overridable="yes" />
     <Variable Name="Include_debug" Value="0" bal:Overridable="yes" />
     
index 100a0138db318be01f78ef5b09e73696a546f5f3..b90787208928c9f0ddaece1c7f7e4ac787973da1 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
     <Fragment>
-        <Property Id="REGISTRYKEY" Value="Software\$(var.TestPrefix)Python\PythonCore\$(var.ShortVersion)$(var.Suffix32)" />
+        <Property Id="REGISTRYKEY" Value="Software\Python\PythonCore\$(var.ShortVersion)$(var.PyArchExt)$(var.PyTestExt)" />
     </Fragment>
     
     <Fragment>
     <Fragment>
         <DirectoryRef Id="TARGETDIR">
             <Directory Id="ProgramMenuFolder">
-                <Directory Id="MenuDir" Name="$(var.TestPrefix)!(loc.ProductName)" />
+                <Directory Id="MenuDir" Name="!(loc.ProductName)" />
             </Directory>
         </DirectoryRef>
     </Fragment>
index 7148258a000b886d5cab68e0c9dde6b2560cc1b0..589dee5654716288a0bd97384f5482efcd2329cd 100644 (file)
@@ -3,22 +3,22 @@
     <Fragment>
         <ComponentGroup Id="launcher_exe">
             <Component Id="py.exe" Directory="LauncherInstallDirectory" Guid="{B5107402-6958-461B-8B0A-4037D3327160}">
-                <File Id="py.exe" Name="py$(var.TestPrefix).exe" Source="py.exe" KeyPath="yes" />
+                <File Id="py.exe" Name="py.exe" Source="py.exe" KeyPath="yes" />
                 <RegistryValue Root="HKMU" Key="Software\Python\PyLauncher" Value="[#py.exe]" Type="string" />
             </Component>
             <Component Id="pyw.exe" Directory="LauncherInstallDirectory" Guid="{8E52B8CD-48BB-4D74-84CD-6238BCD11F20}">
-                <File Id="pyw.exe" Name="pyw$(var.TestPrefix).exe" Source="pyw.exe" KeyPath="yes" />
+                <File Id="pyw.exe" Name="pyw.exe" Source="pyw.exe" KeyPath="yes" />
             </Component>
 
             <Component Id="launcher_path_cu" Directory="LauncherInstallDirectory" Guid="{95AEB930-367C-475C-A17E-A89BFCD4C670}">
                 <Condition>NOT ALLUSERS=1</Condition>
                 
-                <RegistryValue KeyPath="yes" Root="HKMU" Key="Software\$(var.TestPrefix)Python\PyLauncher" Name="InstallDir" Value="[LauncherInstallDirectory]" Type="string" />
+                <RegistryValue KeyPath="yes" Root="HKMU" Key="Software\Python\PyLauncher" Name="InstallDir" Value="[LauncherInstallDirectory]" Type="string" />
                 <Environment Id="PATH_CU" Action="set" Name="PATH" Part="first" Value="[LauncherInstallDirectory]" />
             </Component>
             <Component Id="launcher_path_lm" Directory="LauncherInstallDirectory" Guid="{4A41C365-4E27-4D38-A6D1-4A01B4A6500C}">
                 <Condition>ALLUSERS=1</Condition>
-                <RegistryValue KeyPath="yes" Root="HKMU" Key="Software\$(var.TestPrefix)Python\PyLauncher" Name="InstallDir" Value="[LauncherInstallDirectory]" Type="string" />
+                <RegistryValue KeyPath="yes" Root="HKMU" Key="Software\Python\PyLauncher" Name="InstallDir" Value="[LauncherInstallDirectory]" Type="string" />
             </Component>
         </ComponentGroup>
     </Fragment>
index d00f442fd08365699352cc2fe345cfa0af212345..bb42255b0ae0e0aa178fe5ad196a7ca102d98f0a 100644 (file)
@@ -3,43 +3,43 @@
     <Fragment>
         <ComponentGroup Id="launcher_reg">
             <Component Id="file_association" Directory="LauncherInstallDirectory" Guid="{5AF84D9A-D820-456B-B230-6E0105A50276}">
-                <RegistryValue KeyPath="yes" Root="HKMU" Key="Software\$(var.TestPrefix)Python\PyLauncher" Name="AssociateFiles" Value="1" Type="integer" />
+                <RegistryValue KeyPath="yes" Root="HKMU" Key="Software\Python\PyLauncher" Name="AssociateFiles" Value="1" Type="integer" />
                 
-                <ProgId Id="$(var.TestPrefix)Python.File" Description="!(loc.PythonFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
-                    <Extension Id="$(var.FileExtension)" ContentType="text/plain">
+                <ProgId Id="Python.File" Description="!(loc.PythonFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
+                    <Extension Id="py" ContentType="text/plain">
                         <Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" />
                     </Extension>
                 </ProgId>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.File\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
+                <RegistryValue Root="HKCR" Key="Python.File\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
                 
-                <ProgId Id="$(var.TestPrefix)Python.NoConFile" Description="!(loc.PythonNoConFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
-                    <Extension Id="$(var.FileExtension)w" ContentType="text/plain">
+                <ProgId Id="Python.NoConFile" Description="!(loc.PythonNoConFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
+                    <Extension Id="pyw" ContentType="text/plain">
                         <Verb Id="open" TargetFile="pyw.exe" Argument="&quot;%L&quot; %*" />
                     </Extension>
                 </ProgId>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
+                <RegistryValue Root="HKCR" Key="Python.NoConFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
                 
-                <ProgId Id="$(var.TestPrefix)Python.CompiledFile" Description="!(loc.PythonCompiledFileDescription)" Advertise="no" Icon="py.exe" IconIndex="2">
-                    <Extension Id="$(var.FileExtension)c">
+                <ProgId Id="Python.CompiledFile" Description="!(loc.PythonCompiledFileDescription)" Advertise="no" Icon="py.exe" IconIndex="2">
+                    <Extension Id="pyc">
                         <Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" />
                     </Extension>
-                    <Extension Id="$(var.FileExtension)o" />
+                    <Extension Id="pyo" />
                 </ProgId>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.CompiledFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
+                <RegistryValue Root="HKCR" Key="Python.CompiledFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
 
-                <ProgId Id="$(var.TestPrefix)Python.ArchiveFile" Description="!(loc.PythonArchiveFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
-                    <Extension Id="$(var.FileExtension)z" ContentType="application/x-zip-compressed">
+                <ProgId Id="Python.ArchiveFile" Description="!(loc.PythonArchiveFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
+                    <Extension Id="pyz" ContentType="application/x-zip-compressed">
                         <Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" />
                     </Extension>
                 </ProgId>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.ArchiveFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
+                <RegistryValue Root="HKCR" Key="Python.ArchiveFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
                 
-                <ProgId Id="$(var.TestPrefix)Python.NoConArchiveFile" Description="!(loc.PythonNoConArchiveFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
-                    <Extension Id="$(var.FileExtension)zw" ContentType="application/x-zip-compressed">
+                <ProgId Id="Python.NoConArchiveFile" Description="!(loc.PythonNoConArchiveFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
+                    <Extension Id="pyzw" ContentType="application/x-zip-compressed">
                         <Verb Id="open" TargetFile="pyw.exe" Argument="&quot;%L&quot; %*" />
                     </Extension>
                 </ProgId>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConArchiveFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
+                <RegistryValue Root="HKCR" Key="Python.NoConArchiveFile\shellex\DropHandler" Value="{60254CA5-953B-11CF-8C96-00AA00B8708C}" Type="string" />
             </Component>
         </ComponentGroup>
     </Fragment>
index 01a81b4a96ffd8dcc9045b5c85e726c0b8636df7..bbb8aeb4e21b15b46bbd9bd5a870d5f9ea83b8c6 100644 (file)
             NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0;
             Bitness=$(Bitness);
             PyDebugExt=$(PyDebugExt);
+            PyArchExt=$(PyArchExt);
+            PyTestExt=$(PyTestExt);
             OptionalFeatureName=$(OutputName);
         </DefineConstants>
         <DefineConstants Condition="'$(CRTRedist)' != ''">
             $(DefineConstants);CRTRedist=$(CRTRedist);
         </DefineConstants>
-        <DefineConstants Condition="$(UseTestMarker) != 'true'">
-            $(DefineConstants);TestPrefix=;FileExtension=py;
-        </DefineConstants>
-        <DefineConstants Condition="$(UseTestMarker) == 'true'">
-            $(DefineConstants);TestPrefix=x;FileExtension=px;
-        </DefineConstants>
         <DefineConstants Condition="$(Platform) != 'x64'">
             $(DefineConstants);Suffix32=-32;
         </DefineConstants>
index 2431dc2f2f9611d10c3518297728afd7a8f5060e..a40d9c4f926689afa892ccd81110d9c18ec6423f 100644 (file)
@@ -26,7 +26,7 @@
 
     <Target Name="_TransformWxlTemplates" AfterTargets="PrepareForBuild" Inputs="@(WxlTemplate);$(PySourcePath)include\patchlevel.h" Outputs="$(IntermediateOutputPath)%(Filename).wxl">
         <PropertyGroup>
-            <_Content>$([System.IO.File]::ReadAllText(%(WxlTemplate.FullPath)).Replace(`{{ShortVersion}}`, `$(MajorVersionNumber).$(MinorVersionNumber)`).Replace(`{{LongVersion}}`, `$(PythonVersion)`).Replace(`{{Bitness}}`, `$(Bitness)`))</_Content>
+            <_Content>$([System.IO.File]::ReadAllText(%(WxlTemplate.FullPath)).Replace(`{{ShortVersion}}`, `$(MajorVersionNumber).$(MinorVersionNumber)$(PyTestExt)`).Replace(`{{LongVersion}}`, `$(PythonVersion)$(PyTestExt)`).Replace(`{{Bitness}}`, `$(Bitness)`))</_Content>
             <_ExistingContent Condition="Exists('$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl')">$([System.IO.File]::ReadAllText($(IntermediateOutputPath)%(WxlTemplate.Filename).wxl))</_ExistingContent>
         </PropertyGroup>
         
index e09892747ecf57b368f898ab6dd7e79e2b5258e8..2778bcc80669b6d9f32b8570e8bb6306f39d24f9 100644 (file)
@@ -5,25 +5,25 @@
             <!-- We fix the guid of the Subcommands key so that it is correctly reference counted -->
             <Component Id="assoc_subcommands" Directory="InstallDirectory" Guid="{57D47B4C-96E6-40A0-A958-57083D74423F}">
                 <Condition>VersionNT > 600</Condition>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle" Name="Subcommands" Value="" Type="string" KeyPath="no" />
+                <RegistryValue Root="HKCR" Key="Python.File\Shell\editwithidle$(var.PyTestExt)" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
+                <RegistryValue Root="HKCR" Key="Python.File\Shell\editwithidle$(var.PyTestExt)" Name="Subcommands" Value="" Type="string" KeyPath="no" />
             </Component>
             <Component Id="assoc_subcommands_nocon" Directory="InstallDirectory" Guid="{07061D85-9151-4FC4-BB78-13628020D026}">
                 <Condition>VersionNT > 600</Condition>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle" Name="Subcommands" Value="" Type="string" KeyPath="no" />
+                <RegistryValue Root="HKCR" Key="Python.NoConFile\Shell\editwithidle$(var.PyTestExt)" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
+                <RegistryValue Root="HKCR" Key="Python.NoConFile\Shell\editwithidle$(var.PyTestExt)" Name="Subcommands" Value="" Type="string" KeyPath="no" />
             </Component>
             
             <Component Id="assoc_editwithidle" Directory="InstallDirectory">
                 <Condition>VersionNT > 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                <RegistryKey Root="HKCR" Key="Python.File\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
                     <RegistryValue Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
                     <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
                 </RegistryKey>
             </Component>
             <Component Id="assoc_editwithidle_nocon" Directory="InstallDirectory">
                 <Condition>VersionNT > 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                <RegistryKey Root="HKCR" Key="Python.NoConFile\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
                     <RegistryValue Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
                     <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
                 </RegistryKey>
             
             <Component Id="assoc_editwithidle_vista" Directory="InstallDirectory">
                 <Condition>VersionNT = 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                <RegistryKey Root="HKCR" Key="Python.File\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
                     <RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
                     <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
                 </RegistryKey>
             </Component>
             <Component Id="assoc_editwithidle_nocon_vista" Directory="InstallDirectory">
                 <Condition>VersionNT = 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                <RegistryKey Root="HKCR" Key="Python.NoConFile\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
                     <RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
                     <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
                 </RegistryKey>