Merge from 3.5

This commit is contained in:
Steve Dower 2015-10-31 13:07:44 -07:00
commit bfb03a470c
17 changed files with 103 additions and 67 deletions

View File

@ -519,6 +519,8 @@ Build
Windows Windows
------- -------
- Issue #25450: Updates shortcuts to start Python in installation directory.
- Issue #25164: Changes default all-users install directory to match per-user - Issue #25164: Changes default all-users install directory to match per-user
directory. directory.

View File

@ -38,6 +38,7 @@ echo. -p x64 ^| Win32
echo. Set the platform (default: Win32) echo. Set the platform (default: Win32)
echo. -t Build ^| Rebuild ^| Clean ^| CleanAll echo. -t Build ^| Rebuild ^| Clean ^| CleanAll
echo. Set the target manually echo. Set the target manually
echo. --test-marker Enable the test marker within the build.
exit /b 127 exit /b 127
:Run :Run
@ -62,6 +63,7 @@ if "%~1"=="-m" (set parallel=/m) & shift & goto CheckOpts
if "%~1"=="-M" (set parallel=) & shift & goto CheckOpts if "%~1"=="-M" (set parallel=) & shift & goto CheckOpts
if "%~1"=="-v" (set verbose=/v:n) & shift & goto CheckOpts if "%~1"=="-v" (set verbose=/v:n) & shift & goto CheckOpts
if "%~1"=="-k" (set kill=true) & 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 if "%~1"=="-V" shift & goto Version
rem These use the actual property names used by MSBuild. We could just let 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 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:Configuration=%conf% /p:Platform=%platf%^
/p:IncludeExternals=%IncludeExternals%^ /p:IncludeExternals=%IncludeExternals%^
/p:IncludeSSL=%IncludeSSL% /p:IncludeTkinter=%IncludeTkinter%^ /p:IncludeSSL=%IncludeSSL% /p:IncludeTkinter=%IncludeTkinter%^
/p:UseTestMarker=%UseTestMarker%^
%1 %2 %3 %4 %5 %6 %7 %8 %9 %1 %2 %3 %4 %5 %6 %7 %8 %9
@goto :eof @goto :eof

View File

@ -128,8 +128,8 @@ foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses
</UsingTask> </UsingTask>
<Target Name="KillPython" BeforeTargets="PrepareForBuild" Condition="'$(KillPython)' == 'true'"> <Target Name="KillPython" BeforeTargets="PrepareForBuild" Condition="'$(KillPython)' == 'true'">
<Message Text="Killing any running python.exe instances..." Importance="high" /> <Message Text="Killing any running python$(PyDebugExt)$(PyTestExt).exe instances..." Importance="high" />
<KillPython FileName="$(OutDir)python$(PyDebugExt).exe" /> <KillPython FileName="$(OutDir)python$(PyDebugExt)$(PyTestExt).exe" />
</Target> </Target>
<!-- <!--

View File

@ -41,6 +41,12 @@
<!-- Suffix for all binaries when building for debug --> <!-- Suffix for all binaries when building for debug -->
<PyDebugExt Condition="'$(PyDebugExt)' == '' and $(Configuration) == 'Debug'">_d</PyDebugExt> <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 --> <!-- Full path of the resulting python.exe binary -->
<PythonExe Condition="'$(PythonExe)' == ''">$(BuildPath)python$(PyDebugExt).exe</PythonExe> <PythonExe Condition="'$(PythonExe)' == ''">$(BuildPath)python$(PyDebugExt).exe</PythonExe>
</PropertyGroup> </PropertyGroup>
@ -129,17 +135,17 @@
$([msbuild]::Multiply($(MicroVersionNumber), 1000)) $([msbuild]::Multiply($(MicroVersionNumber), 1000))
)) ))
))</Field3Value> ))</Field3Value>
<Field3Value Condition="$(UseTestMarker) == 'true'">$([msbuild]::Add($(Field3Value), 9000))</Field3Value>
<!-- The name of the resulting pythonXY.dll (without the extension) --> <!-- The name of the resulting pythonXY.dll (without the extension) -->
<PyDllName>python$(MajorVersionNumber)$(MinorVersionNumber)$(PyDebugExt)</PyDllName> <PyDllName>python$(MajorVersionNumber)$(MinorVersionNumber)$(PyDebugExt)</PyDllName>
<!-- The version and platform tag to include in .pyd filenames --> <!-- The version and platform tag to include in .pyd filenames -->
<PydTag Condition="$(Platform) == 'Win32' or $(Platform) == 'x86'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win32</PydTag> <PydTag Condition="$(ArchName) == 'win32'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win32</PydTag>
<PydTag Condition="$(Platform) == 'x64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_amd64</PydTag> <PydTag Condition="$(ArchName) == 'amd64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_amd64</PydTag>
<!-- The version number for sys.winver --> <!-- The version number for sys.winver -->
<SysWinVer>$(MajorVersionNumber).$(MinorVersionNumber)</SysWinVer> <SysWinVer>$(MajorVersionNumber).$(MinorVersionNumber)$(PyArchExt)$(PyTestExt)</SysWinVer>
<SysWinVer Condition="$(Platform) == 'Win32' or $(Platform) == 'x86'">$(SysWinVer)-32</SysWinVer>
</PropertyGroup> </PropertyGroup>
<!-- Displays the calculated version info --> <!-- Displays the calculated version info -->
@ -148,5 +154,7 @@
<Message Importance="high" Text="PythonVersion: $(PythonVersion)" /> <Message Importance="high" Text="PythonVersion: $(PythonVersion)" />
<Message Importance="high" Text="PythonVersionHex: 0x$([System.UInt32]::Parse($(PythonVersionHex)).ToString(`X08`))" /> <Message Importance="high" Text="PythonVersionHex: 0x$([System.UInt32]::Parse($(PythonVersionHex)).ToString(`X08`))" />
<Message Importance="high" Text="Field3Value: $(Field3Value)" /> <Message Importance="high" Text="Field3Value: $(Field3Value)" />
<Message Importance="high" Text="SysWinVer: $(SysWinVer)" />
<Message Importance="high" Text="PyDllName: $(PyDllName)" />
</Target> </Target>
</Project> </Project>

View File

@ -6,16 +6,18 @@ set PCBUILD=%D%..\..\PCBuild\
set BUILDX86= set BUILDX86=
set BUILDX64= set BUILDX64=
set BUILDDOC= set BUILDDOC=
set BUILDPX= set BUILDTEST=--test-marker
set BUILDPACK= set BUILDPACK=
set REBUILD=
:CheckOpts :CheckOpts
if "%~1" EQU "-h" goto Help if "%~1" EQU "-h" goto Help
if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts if "%~1" EQU "-x86" (set BUILDX86=1) && shift && goto CheckOpts
if "%~1" EQU "-x64" (set BUILDX64=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 "--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 "--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) 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 call "%PCBUILD%env.bat" x86
if defined BUILDX86 ( if defined BUILDX86 (
call "%PCBUILD%build.bat" -d -e call "%PCBUILD%build.bat" -d -e %REBUILD% %BUILDTEST%
if errorlevel 1 goto :eof if errorlevel 1 goto :eof
call "%PCBUILD%build.bat" -e call "%PCBUILD%build.bat" -e %REBUILD% %BUILDTEST%
if errorlevel 1 goto :eof if errorlevel 1 goto :eof
) )
if defined BUILDX64 ( 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 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 if errorlevel 1 goto :eof
) )
@ -42,12 +44,15 @@ if defined BUILDDOC (
) )
set BUILD_CMD="%D%bundle\snapshot.wixproj" set BUILD_CMD="%D%bundle\snapshot.wixproj"
if defined BUILDPX ( if defined BUILDTEST (
set BUILD_CMD=%BUILD_CMD% /p:UseTestMarker=true set BUILD_CMD=%BUILD_CMD% /p:UseTestMarker=true
) )
if defined BUILDPACK ( if defined BUILDPACK (
set BUILD_CMD=%BUILD_CMD% /p:Pack=true set BUILD_CMD=%BUILD_CMD% /p:Pack=true
) )
if defined REBUILD (
set BUILD_CMD=%BUILD_CMD% /t:Rebuild
)
if defined BUILDX86 ( if defined BUILDX86 (
msbuild %BUILD_CMD% msbuild %BUILD_CMD%
@ -61,10 +66,11 @@ if defined BUILDX64 (
exit /B 0 exit /B 0
:Help :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.
echo -x86 Build x86 installers echo -x86 Build x86 installers
echo -x64 Build x64 installers echo -x64 Build x64 installers
echo --doc Build CHM documentation 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 --pack Embed core MSIs into installer
echo -r Rebuild rather than incremental build

View 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> <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> <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> <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> <Text X="205" Y="276" Width="-11" Height="24" TabStop="no" FontId="5">#(loc.Include_launcherHelpLabel)</Text>

View File

@ -88,8 +88,12 @@
</Target> </Target>
<Target Name="BuildLauncher" BeforeTargets="BeforeBuild" Condition="'$(RebuildAll)' != 'false'"> <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" /> ContinueOnError="false" />
</Target> </Target>

View File

@ -22,22 +22,26 @@
<Variable Name="ShortVersion" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)" /> <Variable Name="ShortVersion" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)" />
<Variable Name="ShortVersionNoDot" 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="WinVer" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
<Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)" /> <Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
<Variable Name="InstallAllUsers" Value="0" bal:Overridable="yes" /> <Variable Name="InstallAllUsers" Value="0" bal:Overridable="yes" />
<?ifndef PyTestExt ?>
<Variable Name="InstallLauncherAllUsers" Value="1" bal:Overridable="yes" /> <Variable Name="InstallLauncherAllUsers" Value="1" bal:Overridable="yes" />
<?else ?>
<Variable Name="InstallLauncherAllUsers" Value="0" />
<?endif ?>
<Variable Name="TargetDir" Value="" bal:Overridable="yes" /> <Variable Name="TargetDir" Value="" bal:Overridable="yes" />
<?if $(var.Platform)~="x64" ?> <?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" /> <Variable Name="TargetPlatform" Value="x64" />
<?else ?> <?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" /> <Variable Name="TargetPlatform" Value="x86" />
<?endif ?> <?endif ?>
<Variable Name="DefaultJustForMeTargetDir" Value="[LocalAppDataFolder]Programs\$(var.TestPrefix)Python\Python[WinVerNoDot]" bal:Overridable="yes" /> <Variable Name="DefaultJustForMeTargetDir" Value="[LocalAppDataFolder]Programs\Python\Python[WinVerNoDot]" bal:Overridable="yes" />
<Variable Name="OptionalFeaturesRegistryKey" Value="Software\$(var.TestPrefix)Python\PythonCore\[WinVer]\InstalledFeatures" /> <Variable Name="OptionalFeaturesRegistryKey" Value="Software\Python\PythonCore\[WinVer]\InstalledFeatures" />
<Variable Name="TargetDirRegistryKey" Value="Software\$(var.TestPrefix)Python\PythonCore\[WinVer]\InstallPath" /> <Variable Name="TargetDirRegistryKey" Value="Software\Python\PythonCore\[WinVer]\InstallPath" />
<!-- <!--
An empty string will use the other defaults based on InstallAllUsers An empty string will use the other defaults based on InstallAllUsers
@ -48,7 +52,11 @@
<Variable Name="DefaultCustomTargetDir" Value="" bal:Overridable="yes" /> <Variable Name="DefaultCustomTargetDir" Value="" bal:Overridable="yes" />
<Variable Name="InstallAllUsersState" Value="enabled" /> <Variable Name="InstallAllUsersState" Value="enabled" />
<?ifndef PyTestExt ?>
<Variable Name="InstallLauncherAllUsersState" Value="enabled" bal:Overridable="yes" /> <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="CustomInstallLauncherAllUsersState" Value="[InstallLauncherAllUsersState]" />
<Variable Name="TargetDirState" Value="enabled" /> <Variable Name="TargetDirState" Value="enabled" />
<Variable Name="CustomBrowseButtonState" Value="enabled" /> <Variable Name="CustomBrowseButtonState" Value="enabled" />
@ -62,7 +70,12 @@
<Variable Name="Include_tools" Value="1" bal:Overridable="yes" /> <Variable Name="Include_tools" Value="1" bal:Overridable="yes" />
<Variable Name="Include_tcltk" Value="1" bal:Overridable="yes" /> <Variable Name="Include_tcltk" Value="1" bal:Overridable="yes" />
<Variable Name="Include_pip" 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" /> <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_symbols" Value="0" bal:Overridable="yes" />
<Variable Name="Include_debug" Value="0" bal:Overridable="yes" /> <Variable Name="Include_debug" Value="0" bal:Overridable="yes" />

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment> <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> <Fragment>
@ -105,7 +105,7 @@
<Fragment> <Fragment>
<DirectoryRef Id="TARGETDIR"> <DirectoryRef Id="TARGETDIR">
<Directory Id="ProgramMenuFolder"> <Directory Id="ProgramMenuFolder">
<Directory Id="MenuDir" Name="$(var.TestPrefix)!(loc.ProductName)" /> <Directory Id="MenuDir" Name="!(loc.ProductName)" />
</Directory> </Directory>
</DirectoryRef> </DirectoryRef>
</Fragment> </Fragment>

View File

@ -22,7 +22,8 @@
<Shortcut Id="python.chm" <Shortcut Id="python.chm"
Target="[#python.chm]" Target="[#python.chm]"
Name="!(loc.ShortcutName)" Name="!(loc.ShortcutName)"
Description="!(loc.ShortcutDescription)" /> Description="!(loc.ShortcutDescription)"
WorkingDirectory="InstallDirectory" />
<RemoveFolder Id="Remove_MenuDir" On="uninstall" /> <RemoveFolder Id="Remove_MenuDir" On="uninstall" />
</Component> </Component>
<?endif ?> <?endif ?>

View File

@ -20,7 +20,8 @@
<Shortcut Id="python.exe" <Shortcut Id="python.exe"
Target="[#python.exe]" Target="[#python.exe]"
Name="!(loc.ShortcutName)" Name="!(loc.ShortcutName)"
Description="!(loc.ShortcutDescription)" /> Description="!(loc.ShortcutDescription)"
WorkingDirectory="InstallDirectory" />
<RemoveFolder Id="Remove_MenuDir" Directory="MenuDir" On="uninstall" /> <RemoveFolder Id="Remove_MenuDir" Directory="MenuDir" On="uninstall" />
<RegistryKey Root="HKMU" Key="[REGISTRYKEY]"> <RegistryKey Root="HKMU" Key="[REGISTRYKEY]">
<RegistryValue Key="InstallPath\InstallGroup" Type="string" Value="!(loc.ProductName)" KeyPath="yes" /> <RegistryValue Key="InstallPath\InstallGroup" Type="string" Value="!(loc.ProductName)" KeyPath="yes" />

View File

@ -3,22 +3,22 @@
<Fragment> <Fragment>
<ComponentGroup Id="launcher_exe"> <ComponentGroup Id="launcher_exe">
<Component Id="py.exe" Directory="LauncherInstallDirectory" Guid="{B5107402-6958-461B-8B0A-4037D3327160}"> <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" /> <RegistryValue Root="HKMU" Key="Software\Python\PyLauncher" Value="[#py.exe]" Type="string" />
</Component> </Component>
<Component Id="pyw.exe" Directory="LauncherInstallDirectory" Guid="{8E52B8CD-48BB-4D74-84CD-6238BCD11F20}"> <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>
<Component Id="launcher_path_cu" Directory="LauncherInstallDirectory" Guid="{95AEB930-367C-475C-A17E-A89BFCD4C670}"> <Component Id="launcher_path_cu" Directory="LauncherInstallDirectory" Guid="{95AEB930-367C-475C-A17E-A89BFCD4C670}">
<Condition>NOT ALLUSERS=1</Condition> <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]" /> <Environment Id="PATH_CU" Action="set" Name="PATH" Part="first" Value="[LauncherInstallDirectory]" />
</Component> </Component>
<Component Id="launcher_path_lm" Directory="LauncherInstallDirectory" Guid="{4A41C365-4E27-4D38-A6D1-4A01B4A6500C}"> <Component Id="launcher_path_lm" Directory="LauncherInstallDirectory" Guid="{4A41C365-4E27-4D38-A6D1-4A01B4A6500C}">
<Condition>ALLUSERS=1</Condition> <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> </Component>
</ComponentGroup> </ComponentGroup>
</Fragment> </Fragment>

View File

@ -3,43 +3,43 @@
<Fragment> <Fragment>
<ComponentGroup Id="launcher_reg"> <ComponentGroup Id="launcher_reg">
<Component Id="file_association" Directory="LauncherInstallDirectory" Guid="{5AF84D9A-D820-456B-B230-6E0105A50276}"> <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"> <ProgId Id="Python.File" Description="!(loc.PythonFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
<Extension Id="$(var.FileExtension)" ContentType="text/plain"> <Extension Id="py" ContentType="text/plain">
<Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" /> <Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" />
</Extension> </Extension>
</ProgId> </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"> <ProgId Id="Python.NoConFile" Description="!(loc.PythonNoConFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
<Extension Id="$(var.FileExtension)w" ContentType="text/plain"> <Extension Id="pyw" ContentType="text/plain">
<Verb Id="open" TargetFile="pyw.exe" Argument="&quot;%L&quot; %*" /> <Verb Id="open" TargetFile="pyw.exe" Argument="&quot;%L&quot; %*" />
</Extension> </Extension>
</ProgId> </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"> <ProgId Id="Python.CompiledFile" Description="!(loc.PythonCompiledFileDescription)" Advertise="no" Icon="py.exe" IconIndex="2">
<Extension Id="$(var.FileExtension)c"> <Extension Id="pyc">
<Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" /> <Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" />
</Extension> </Extension>
<Extension Id="$(var.FileExtension)o" /> <Extension Id="pyo" />
</ProgId> </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"> <ProgId Id="Python.ArchiveFile" Description="!(loc.PythonArchiveFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
<Extension Id="$(var.FileExtension)z" ContentType="application/x-zip-compressed"> <Extension Id="pyz" ContentType="application/x-zip-compressed">
<Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" /> <Verb Id="open" TargetFile="py.exe" Argument="&quot;%L&quot; %*" />
</Extension> </Extension>
</ProgId> </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"> <ProgId Id="Python.NoConArchiveFile" Description="!(loc.PythonNoConArchiveFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
<Extension Id="$(var.FileExtension)zw" ContentType="application/x-zip-compressed"> <Extension Id="pyzw" ContentType="application/x-zip-compressed">
<Verb Id="open" TargetFile="pyw.exe" Argument="&quot;%L&quot; %*" /> <Verb Id="open" TargetFile="pyw.exe" Argument="&quot;%L&quot; %*" />
</Extension> </Extension>
</ProgId> </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> </Component>
</ComponentGroup> </ComponentGroup>
</Fragment> </Fragment>

View File

@ -80,17 +80,13 @@
NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0; NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0;
Bitness=$(Bitness); Bitness=$(Bitness);
PyDebugExt=$(PyDebugExt); PyDebugExt=$(PyDebugExt);
PyArchExt=$(PyArchExt);
PyTestExt=$(PyTestExt);
OptionalFeatureName=$(OutputName); OptionalFeatureName=$(OutputName);
</DefineConstants> </DefineConstants>
<DefineConstants Condition="'$(CRTRedist)' != ''"> <DefineConstants Condition="'$(CRTRedist)' != ''">
$(DefineConstants);CRTRedist=$(CRTRedist); $(DefineConstants);CRTRedist=$(CRTRedist);
</DefineConstants> </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 Condition="$(Platform) != 'x64'">
$(DefineConstants);Suffix32=-32; $(DefineConstants);Suffix32=-32;
</DefineConstants> </DefineConstants>

View File

@ -26,7 +26,7 @@
<Target Name="_TransformWxlTemplates" AfterTargets="PrepareForBuild" Inputs="@(WxlTemplate);$(PySourcePath)include\patchlevel.h" Outputs="$(IntermediateOutputPath)%(Filename).wxl"> <Target Name="_TransformWxlTemplates" AfterTargets="PrepareForBuild" Inputs="@(WxlTemplate);$(PySourcePath)include\patchlevel.h" Outputs="$(IntermediateOutputPath)%(Filename).wxl">
<PropertyGroup> <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> <_ExistingContent Condition="Exists('$(IntermediateOutputPath)%(WxlTemplate.Filename).wxl')">$([System.IO.File]::ReadAllText($(IntermediateOutputPath)%(WxlTemplate.Filename).wxl))</_ExistingContent>
</PropertyGroup> </PropertyGroup>

View File

@ -49,7 +49,8 @@
Description="!(loc.ShortcutDescription)" Description="!(loc.ShortcutDescription)"
Target="[PYTHONW_EXE]" Target="[PYTHONW_EXE]"
Arguments='"[#Lib_idlelib_idle.pyw]"' Arguments='"[#Lib_idlelib_idle.pyw]"'
Icon="idle.exe"> Icon="idle.exe"
WorkingDirectory="InstallDirectory">
<Icon Id="idle.exe" SourceFile="!(bindpath.src)Lib\idlelib\Icons\idle.ico" /> <Icon Id="idle.exe" SourceFile="!(bindpath.src)Lib\idlelib\Icons\idle.ico" />
</Shortcut> </Shortcut>
<Shortcut Id="pydoc.py" <Shortcut Id="pydoc.py"
@ -57,7 +58,8 @@
Arguments='-m pydoc -b' Arguments='-m pydoc -b'
Name="!(loc.PyDocShortcutName)" Name="!(loc.PyDocShortcutName)"
Description="!(loc.PyDocShortcutDescription)" Description="!(loc.PyDocShortcutDescription)"
Icon="idle.exe" /> Icon="idle.exe"
WorkingDirectory="InstallDirectory" />
</Component> </Component>
</Feature> </Feature>
</Product> </Product>

View File

@ -5,25 +5,25 @@
<!-- We fix the guid of the Subcommands key so that it is correctly reference counted --> <!-- 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}"> <Component Id="assoc_subcommands" Directory="InstallDirectory" Guid="{57D47B4C-96E6-40A0-A958-57083D74423F}">
<Condition>VersionNT > 600</Condition> <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="Python.File\Shell\editwithidle$(var.PyTestExt)" 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="Subcommands" Value="" Type="string" KeyPath="no" />
</Component> </Component>
<Component Id="assoc_subcommands_nocon" Directory="InstallDirectory" Guid="{07061D85-9151-4FC4-BB78-13628020D026}"> <Component Id="assoc_subcommands_nocon" Directory="InstallDirectory" Guid="{07061D85-9151-4FC4-BB78-13628020D026}">
<Condition>VersionNT > 600</Condition> <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="Python.NoConFile\Shell\editwithidle$(var.PyTestExt)" 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="Subcommands" Value="" Type="string" KeyPath="no" />
</Component> </Component>
<Component Id="assoc_editwithidle" Directory="InstallDirectory"> <Component Id="assoc_editwithidle" Directory="InstallDirectory">
<Condition>VersionNT > 600</Condition> <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 Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
<RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" /> <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
</RegistryKey> </RegistryKey>
</Component> </Component>
<Component Id="assoc_editwithidle_nocon" Directory="InstallDirectory"> <Component Id="assoc_editwithidle_nocon" Directory="InstallDirectory">
<Condition>VersionNT > 600</Condition> <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 Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
<RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" /> <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
</RegistryKey> </RegistryKey>
@ -31,14 +31,14 @@
<Component Id="assoc_editwithidle_vista" Directory="InstallDirectory"> <Component Id="assoc_editwithidle_vista" Directory="InstallDirectory">
<Condition>VersionNT = 600</Condition> <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 Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
<RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" /> <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
</RegistryKey> </RegistryKey>
</Component> </Component>
<Component Id="assoc_editwithidle_nocon_vista" Directory="InstallDirectory"> <Component Id="assoc_editwithidle_nocon_vista" Directory="InstallDirectory">
<Condition>VersionNT = 600</Condition> <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 Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
<RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" /> <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
</RegistryKey> </RegistryKey>