diff options
-rw-r--r-- | PCbuild/build.bat | 3 | ||||
-rw-r--r-- | PCbuild/pyproject.props | 4 | ||||
-rw-r--r-- | PCbuild/python.props | 16 | ||||
-rw-r--r-- | Tools/msi/build.bat | 24 | ||||
-rw-r--r-- | Tools/msi/bundle/Default.thm | 2 | ||||
-rw-r--r-- | Tools/msi/bundle/bundle.targets | 8 | ||||
-rw-r--r-- | Tools/msi/bundle/bundle.wxs | 27 | ||||
-rw-r--r-- | Tools/msi/common.wxs | 4 | ||||
-rw-r--r-- | Tools/msi/launcher/launcher_files.wxs | 8 | ||||
-rw-r--r-- | Tools/msi/launcher/launcher_reg.wxs | 34 | ||||
-rw-r--r-- | Tools/msi/msi.props | 8 | ||||
-rw-r--r-- | Tools/msi/msi.targets | 2 | ||||
-rw-r--r-- | Tools/msi/tcltk/tcltk_reg.wxs | 16 |
13 files changed, 93 insertions, 63 deletions
diff --git a/PCbuild/build.bat b/PCbuild/build.bat index 2c41fb2..cfbc4a2 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -38,6 +38,7 @@ echo. -p x64 ^| Win32 echo. Set the platform (default: Win32)
echo. -t Build ^| Rebuild ^| Clean ^| CleanAll
echo. Set the target manually
+echo. --test-marker Enable the test marker within the build.
exit /b 127
:Run
@@ -62,6 +63,7 @@ if "%~1"=="-m" (set parallel=/m) & shift & goto CheckOpts if "%~1"=="-M" (set parallel=) & shift & goto CheckOpts
if "%~1"=="-v" (set verbose=/v:n) & shift & goto CheckOpts
if "%~1"=="-k" (set kill=true) & shift & goto CheckOpts
+if "%~1"=="--test-marker" (set UseTestMarker=true) & shift & goto CheckOpts
if "%~1"=="-V" shift & goto Version
rem These use the actual property names used by MSBuild. We could just let
rem them in through the environment, but we specify them on the command line
@@ -93,6 +95,7 @@ msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose%^ /p:Configuration=%conf% /p:Platform=%platf%^
/p:IncludeExternals=%IncludeExternals%^
/p:IncludeSSL=%IncludeSSL% /p:IncludeTkinter=%IncludeTkinter%^
+ /p:UseTestMarker=%UseTestMarker%^
%1 %2 %3 %4 %5 %6 %7 %8 %9
@goto :eof
diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props index a2c44f3..25cdfcc 100644 --- a/PCbuild/pyproject.props +++ b/PCbuild/pyproject.props @@ -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> <!-- diff --git a/PCbuild/python.props b/PCbuild/python.props index 25d6d92..862f041 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -41,6 +41,12 @@ <!-- 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> @@ -129,17 +135,17 @@ $([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 --> @@ -148,5 +154,7 @@ <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> diff --git a/Tools/msi/build.bat b/Tools/msi/build.bat index b11579b..a61ace8 100644 --- a/Tools/msi/build.bat +++ b/Tools/msi/build.bat @@ -6,16 +6,18 @@ set PCBUILD=%D%..\..\PCBuild\ set BUILDX86=
set BUILDX64=
set BUILDDOC=
-set BUILDPX=
+set BUILDTEST=--test-marker
set BUILDPACK=
+set REBUILD=
:CheckOpts
if "%~1" EQU "-h" goto Help
if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts
if "%~1" EQU "-x64" (set BUILDX64=1) && shift && goto CheckOpts
if "%~1" EQU "--doc" (set BUILDDOC=1) && shift && goto CheckOpts
-if "%~1" EQU "--test-marker" (set BUILDPX=1) && shift && goto CheckOpts
+if "%~1" EQU "--no-test-marker" (set BUILDTEST=) && shift && goto CheckOpts
if "%~1" EQU "--pack" (set BUILDPACK=1) && shift && goto CheckOpts
+if "%~1" EQU "-r" (set REBUILD=-r) && shift && goto CheckOpts
if not defined BUILDX86 if not defined BUILDX64 (set BUILDX86=1) && (set BUILDX64=1)
@@ -24,15 +26,15 @@ call "%D%get_externals.bat" call "%PCBUILD%env.bat" x86
if defined BUILDX86 (
- call "%PCBUILD%build.bat" -d -e
+ call "%PCBUILD%build.bat" -d -e %REBUILD% %BUILDTEST%
if errorlevel 1 goto :eof
- call "%PCBUILD%build.bat" -e
+ call "%PCBUILD%build.bat" -e %REBUILD% %BUILDTEST%
if errorlevel 1 goto :eof
)
if defined BUILDX64 (
- call "%PCBUILD%build.bat" -p x64 -d -e
+ call "%PCBUILD%build.bat" -p x64 -d -e %REBUILD% %BUILDTEST%
if errorlevel 1 goto :eof
- call "%PCBUILD%build.bat" -p x64 -e
+ call "%PCBUILD%build.bat" -p x64 -e %REBUILD% %BUILDTEST%
if errorlevel 1 goto :eof
)
@@ -42,12 +44,15 @@ if defined BUILDDOC ( )
set BUILD_CMD="%D%bundle\snapshot.wixproj"
-if defined BUILDPX (
+if defined BUILDTEST (
set BUILD_CMD=%BUILD_CMD% /p:UseTestMarker=true
)
if defined BUILDPACK (
set BUILD_CMD=%BUILD_CMD% /p:Pack=true
)
+if defined REBUILD (
+ set BUILD_CMD=%BUILD_CMD% /t:Rebuild
+)
if defined BUILDX86 (
msbuild %BUILD_CMD%
@@ -61,10 +66,11 @@ if defined BUILDX64 ( exit /B 0
:Help
-echo build.bat [-x86] [-x64] [--doc] [-h] [--test-marker] [--pack]
+echo build.bat [-x86] [-x64] [--doc] [-h] [--no-test-marker] [--pack] [-r]
echo.
echo -x86 Build x86 installers
echo -x64 Build x64 installers
echo --doc Build CHM documentation
-echo --test-marker Build installers with 'x' markers
+echo --no-test-marker Build without test markers
echo --pack Embed core MSIs into installer
+echo -r Rebuild rather than incremental build
diff --git a/Tools/msi/bundle/Default.thm b/Tools/msi/bundle/Default.thm index 903af4f..8ff4c3b 100644 --- a/Tools/msi/bundle/Default.thm +++ b/Tools/msi/bundle/Default.thm @@ -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> diff --git a/Tools/msi/bundle/bundle.targets b/Tools/msi/bundle/bundle.targets index 9b7d090..57ca1dc 100644 --- a/Tools/msi/bundle/bundle.targets +++ b/Tools/msi/bundle/bundle.targets @@ -88,8 +88,12 @@ </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> diff --git a/Tools/msi/bundle/bundle.wxs b/Tools/msi/bundle/bundle.wxs index ffaadbd..b8430a4 100644 --- a/Tools/msi/bundle/bundle.wxs +++ b/Tools/msi/bundle/bundle.wxs @@ -22,22 +22,26 @@ <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 @@ -48,7 +52,11 @@ <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" /> @@ -62,7 +70,12 @@ <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" /> diff --git a/Tools/msi/common.wxs b/Tools/msi/common.wxs index 100a013..b907872 100644 --- a/Tools/msi/common.wxs +++ b/Tools/msi/common.wxs @@ -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> @@ -105,7 +105,7 @@ <Fragment> <DirectoryRef Id="TARGETDIR"> <Directory Id="ProgramMenuFolder"> - <Directory Id="MenuDir" Name="$(var.TestPrefix)!(loc.ProductName)" /> + <Directory Id="MenuDir" Name="!(loc.ProductName)" /> </Directory> </DirectoryRef> </Fragment> diff --git a/Tools/msi/launcher/launcher_files.wxs b/Tools/msi/launcher/launcher_files.wxs index 7148258..589dee5 100644 --- a/Tools/msi/launcher/launcher_files.wxs +++ b/Tools/msi/launcher/launcher_files.wxs @@ -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> diff --git a/Tools/msi/launcher/launcher_reg.wxs b/Tools/msi/launcher/launcher_reg.wxs index d00f442..bb42255 100644 --- a/Tools/msi/launcher/launcher_reg.wxs +++ b/Tools/msi/launcher/launcher_reg.wxs @@ -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=""%L" %*" /> </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=""%L" %*" /> </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=""%L" %*" /> </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=""%L" %*" /> </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=""%L" %*" /> </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> diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props index 01a81b4..bbb8aeb 100644 --- a/Tools/msi/msi.props +++ b/Tools/msi/msi.props @@ -80,17 +80,13 @@ 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> diff --git a/Tools/msi/msi.targets b/Tools/msi/msi.targets index 2431dc2..a40d9c4 100644 --- a/Tools/msi/msi.targets +++ b/Tools/msi/msi.targets @@ -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> diff --git a/Tools/msi/tcltk/tcltk_reg.wxs b/Tools/msi/tcltk/tcltk_reg.wxs index e098927..2778bcc 100644 --- a/Tools/msi/tcltk/tcltk_reg.wxs +++ b/Tools/msi/tcltk/tcltk_reg.wxs @@ -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> @@ -31,14 +31,14 @@ <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> |