Commit 49437492 authored by Steve Dower's avatar Steve Dower

Issue #24585: Enables build-to-build upgrades that preserve settings.

Rather than using Burn "Persisted" variables we now add registry keys for each added feature. These can be detected by the installer regardless of which version installed them, and we use this for Modify and Upgrade. In particular, Upgrades can't access the Persisted variables, but can find well-known registry keys.
There are also some changes to the bootstrap app to properly handle upgrades.
Finally, a few minor improvements to the Windows build to keep things tidier.
parent 9e7a0468
...@@ -25,16 +25,17 @@ set verbose=/nologo /v:m ...@@ -25,16 +25,17 @@ set verbose=/nologo /v:m
set kill= set kill=
:CheckOpts :CheckOpts
if '%1'=='-c' (set conf=%2) & shift & shift & goto CheckOpts if '%~1'=='-c' (set conf=%2) & shift & shift & goto CheckOpts
if '%1'=='-p' (set platf=%2) & shift & shift & goto CheckOpts if '%~1'=='-p' (set platf=%2) & shift & shift & goto CheckOpts
if '%1'=='-r' (set target=Rebuild) & shift & goto CheckOpts if '%~1'=='-r' (set target=Rebuild) & shift & goto CheckOpts
if '%1'=='-t' (set target=%2) & shift & shift & goto CheckOpts if '%~1'=='-t' (set target=%2) & shift & shift & goto CheckOpts
if '%1'=='-d' (set conf=Debug) & shift & goto CheckOpts if '%~1'=='-d' (set conf=Debug) & shift & goto CheckOpts
if '%1'=='-e' call "%dir%get_externals.bat" & shift & goto CheckOpts if '%~1'=='-e' call "%dir%get_externals.bat" & shift & goto CheckOpts
if '%1'=='-m' (set parallel=/m) & shift & goto CheckOpts 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'=='-V' shift & goto Version
if '%platf%'=='x64' (set vs_platf=x86_amd64) if '%platf%'=='x64' (set vs_platf=x86_amd64)
...@@ -50,3 +51,9 @@ rem Passing %1-9 is not the preferred option, but argument parsing in ...@@ -50,3 +51,9 @@ rem Passing %1-9 is not the preferred option, but argument parsing in
rem batch is, shall we say, "lackluster" rem batch is, shall we say, "lackluster"
echo on echo on
msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose% /p:Configuration=%conf% /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9 msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose% /p:Configuration=%conf% /p:Platform=%platf% %1 %2 %3 %4 %5 %6 %7 %8 %9
@goto :eof
:Version
rem Display the current build version information
msbuild "%dir%python.props" /t:ShowVersionInfo /v:m /nologo %1 %2 %3 %4 %5 %6 %7 %8 %9
...@@ -42,7 +42,9 @@ ...@@ -42,7 +42,9 @@
<!-- 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 Condition="'$(OverrideVersion)' == ''">
<!-- <!--
Read version information from Include\patchlevel.h. The following properties are set: Read version information from Include\patchlevel.h. The following properties are set:
...@@ -70,7 +72,40 @@ ...@@ -70,7 +72,40 @@
<ReleaseLevelName Condition="$(_ReleaseLevel) == 'ALPHA'">a$(ReleaseSerial)</ReleaseLevelName> <ReleaseLevelName Condition="$(_ReleaseLevel) == 'ALPHA'">a$(ReleaseSerial)</ReleaseLevelName>
<ReleaseLevelName Condition="$(_ReleaseLevel) == 'BETA'">b$(ReleaseSerial)</ReleaseLevelName> <ReleaseLevelName Condition="$(_ReleaseLevel) == 'BETA'">b$(ReleaseSerial)</ReleaseLevelName>
<ReleaseLevelName Condition="$(_ReleaseLevel) == 'GAMMA'">rc$(ReleaseSerial)</ReleaseLevelName> <ReleaseLevelName Condition="$(_ReleaseLevel) == 'GAMMA'">rc$(ReleaseSerial)</ReleaseLevelName>
</PropertyGroup>
<PropertyGroup Condition="'$(OverrideVersion)' != ''">
<!--
Override the version number when building by specifying OverrideVersion.
For example:
PCBuild\build.bat "/p:OverrideVersion=3.5.2a1"
Use the -V option to check your version is valid:
PCBuild\build.bat -V "/p:OverrideVersion=3.5.2a1"
PythonVersionNumber: 3.5.2
PythonVersion: 3.5.2a1
PythonVersionHex: 0x030502A1
Field3Value: 2101
Note that this only affects the version numbers embedded in resources and
installers, but not sys.version.
-->
<MajorVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[1].Value)</MajorVersionNumber>
<MinorVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[2].Value)</MinorVersionNumber>
<MicroVersionNumber>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[3].Value)</MicroVersionNumber>
<ReleaseLevelName>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[4].Value)</ReleaseLevelName>
<_ReleaseLevel>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[5].Value)</_ReleaseLevel>
<ReleaseSerial>$([System.Text.RegularExpressions.Regex]::Match($(OverrideVersion), `(\d+)\.(\d+)\.(\d+)((a|b|rc)(\d))?`).Groups[6].Value)</ReleaseSerial>
<ReleaseSerial Condition="'$(ReleaseSerial)' == ''">0</ReleaseSerial>
<ReleaseLevelNumber>15</ReleaseLevelNumber>
<ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'a'">10</ReleaseLevelNumber>
<ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'b'">11</ReleaseLevelNumber>
<ReleaseLevelNumber Condition="$(_ReleaseLevel) == 'rc'">12</ReleaseLevelNumber>
</PropertyGroup>
<PropertyGroup>
<PythonVersionNumber>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)</PythonVersionNumber> <PythonVersionNumber>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)</PythonVersionNumber>
<PythonVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)$(ReleaseLevelName)</PythonVersion> <PythonVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(MicroVersionNumber)$(ReleaseLevelName)</PythonVersion>
<PythonVersionHex>$([msbuild]::BitwiseOr( <PythonVersionHex>$([msbuild]::BitwiseOr(
...@@ -110,7 +145,7 @@ ...@@ -110,7 +145,7 @@
<Target Name="ShowVersionInfo"> <Target Name="ShowVersionInfo">
<Message Importance="high" Text="PythonVersionNumber: $(PythonVersionNumber)" /> <Message Importance="high" Text="PythonVersionNumber: $(PythonVersionNumber)" />
<Message Importance="high" Text="PythonVersion: $(PythonVersion)" /> <Message Importance="high" Text="PythonVersion: $(PythonVersion)" />
<Message Importance="high" Text="$([System.String]::Format(`PythonVersionHex: 0x{0:x}`, $([System.UInt32]::Parse($(PythonVersionHex)))))" /> <Message Importance="high" Text="PythonVersionHex: 0x$([System.UInt32]::Parse($(PythonVersionHex)).ToString(`X08`))" />
<Message Importance="high" Text="Field3Value: $(Field3Value)" /> <Message Importance="high" Text="Field3Value: $(Field3Value)" />
</Target> </Target>
</Project> </Project>
...@@ -8,10 +8,10 @@ set BUILDX64= ...@@ -8,10 +8,10 @@ set BUILDX64=
set BUILDDOC= set BUILDDOC=
: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 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)
......
...@@ -21,13 +21,24 @@ ...@@ -21,13 +21,24 @@
<Text X="185" Y="50" Width="-11" Height="50" FontId="3" TabStop="yes">#(loc.InstallMessage)</Text> <Text X="185" Y="50" Width="-11" Height="50" FontId="3" TabStop="yes">#(loc.InstallMessage)</Text>
<Button Name="InstallJustForMeButton" X="175" Y="101" Width="-11" Height="129" TabStop="yes" FontId="3" HexStyle="0xE">#(loc.InstallJustForMeButton)</Button> <Button Name="InstallButton" X="175" Y="101" Width="-11" Height="129" TabStop="yes" FontId="3" HexStyle="0xE">#(loc.InstallButton)</Button>
<Button Name="InstallCustomButton" X="175" Y="241" Width="-11" Height="59" TabStop="yes" FontId="3" HexStyle="0xE">#(loc.InstallCustomButton)</Button> <Button Name="InstallCustomButton" X="175" Y="241" Width="-11" Height="59" TabStop="yes" FontId="3" HexStyle="0xE">#(loc.InstallCustomButton)</Button>
<Checkbox Name="PrependPath" X="185" Y="-13" Width="-100" Height="20" TabStop="yes" FontId="3">#(loc.ShortPrependPathLabel)</Checkbox> <Checkbox Name="PrependPath" X="185" Y="-13" Width="-100" Height="20" TabStop="yes" FontId="3">#(loc.ShortPrependPathLabel)</Checkbox>
<Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.CancelButton)</Button> <Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.CancelButton)</Button>
</Page> </Page>
<Page Name="Upgrade">
<Text X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.InstallUpgradeHeader)</Text>
<Image X="0" Y="0" Width="162" Height="352" ImageFile="SideBar.png"/>
<Text X="185" Y="50" Width="-11" Height="50" FontId="3" TabStop="yes">#(loc.InstallUpgradeMessage)</Text>
<Button Name="InstallUpgradeButton" X="175" Y="101" Width="-11" Height="129" TabStop="yes" FontId="3" HexStyle="0xE">#(loc.InstallUpgradeButton)</Button>
<Button Name="InstallUpgradeCustomButton" X="175" Y="241" Width="-11" Height="59" TabStop="yes" FontId="3" HexStyle="0xE">#(loc.InstallUpgradeCustomButton)</Button>
<Button Name="InstallCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.CancelButton)</Button>
</Page>
<Page Name="SimpleInstall"> <Page Name="SimpleInstall">
<Text X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.InstallHeader)</Text> <Text X="185" Y="11" Width="-11" Height="32" FontId="1" DisablePrefix="yes">#(loc.InstallHeader)</Text>
<Image X="0" Y="0" Width="162" Height="352" ImageFile="SideBar.png"/> <Image X="0" Y="0" Width="162" Height="352" ImageFile="SideBar.png"/>
......
...@@ -21,6 +21,8 @@ Continue?</String> ...@@ -21,6 +21,8 @@ Continue?</String>
<String Id="InstallHeader">Install [WixBundleName]</String> <String Id="InstallHeader">Install [WixBundleName]</String>
<String Id="InstallMessage">Select Install Now to install Python with default settings, or choose Customize to enable or disable features.</String> <String Id="InstallMessage">Select Install Now to install Python with default settings, or choose Customize to enable or disable features.</String>
<String Id="InstallVersion">Version [WixBundleVersion]</String> <String Id="InstallVersion">Version [WixBundleVersion]</String>
<String Id="InstallUpgradeHeader">Upgrade to [WixBundleName]</String>
<String Id="InstallUpgradeMessage">Select Upgrade Now to keep your current settings, or choose Customize to enable or disable features.</String>
<String Id="ConfirmCancelMessage">Are you sure you want to cancel?</String> <String Id="ConfirmCancelMessage">Are you sure you want to cancel?</String>
<String Id="ExecuteUpgradeRelatedBundleMessage">Previous version</String> <String Id="ExecuteUpgradeRelatedBundleMessage">Previous version</String>
<String Id="HelpHeader">Setup Help</String> <String Id="HelpHeader">Setup Help</String>
...@@ -40,8 +42,8 @@ Continue?</String> ...@@ -40,8 +42,8 @@ Continue?</String>
Logs to a specific file. By default, log files are created in %TEMP%.</String> Logs to a specific file. By default, log files are created in %TEMP%.</String>
<String Id="InstallLicenseLinkText">[WixBundleName] &lt;a href="#"&gt;license terms&lt;/a&gt;.</String> <String Id="InstallLicenseLinkText">[WixBundleName] &lt;a href="#"&gt;license terms&lt;/a&gt;.</String>
<String Id="InstallAcceptCheckbox">I &amp;agree to the license terms and conditions</String> <String Id="InstallAcceptCheckbox">I &amp;agree to the license terms and conditions</String>
<String Id="InstallJustForMeButton">&amp;Install Now</String> <String Id="InstallButton">&amp;Install Now</String>
<String Id="InstallJustForMeButtonNote">[DefaultJustForMeTargetDir] <String Id="InstallButtonNote">[DefaultJustForMeTargetDir]
Includes IDLE, pip and documentation Includes IDLE, pip and documentation
Creates shortcuts and file associations</String> Creates shortcuts and file associations</String>
...@@ -49,6 +51,13 @@ Creates shortcuts and file associations</String> ...@@ -49,6 +51,13 @@ Creates shortcuts and file associations</String>
<String Id="InstallCustomButtonNote">Choose location and features</String> <String Id="InstallCustomButtonNote">Choose location and features</String>
<String Id="InstallSimpleButton">&amp;Install</String> <String Id="InstallSimpleButton">&amp;Install</String>
<String Id="InstallSimpleButtonNote">Uses setting preselected by your administrator</String> <String Id="InstallSimpleButtonNote">Uses setting preselected by your administrator</String>
<String Id="InstallUpgradeButton">&amp;Upgrade Now</String>
<String Id="InstallUpgradeButtonNote">[TargetDir]
Replaces your existing installation without changing settings.
Select Customize to review current options.</String>
<String Id="InstallUpgradeCustomButton">C&amp;ustomize installation</String>
<String Id="InstallUpgradeCustomButtonNote">Choose location and features</String>
<String Id="Custom1Header">Optional Features</String> <String Id="Custom1Header">Optional Features</String>
<String Id="Custom2Header">Advanced Options</String> <String Id="Custom2Header">Advanced Options</String>
<String Id="CustomLocationLabel">Customize install location</String> <String Id="CustomLocationLabel">Customize install location</String>
...@@ -107,4 +116,5 @@ Feel free to email &lt;a href="mailto:python-list@python.org"&gt;python-list@pyt ...@@ -107,4 +116,5 @@ Feel free to email &lt;a href="mailto:python-list@python.org"&gt;python-list@pyt
<String Id="FailureHyperlinkLogText">One or more issues caused the setup to fail. Please fix the issues and then retry setup. For more information see the &lt;a href="#"&gt;log file&lt;/a&gt;.</String> <String Id="FailureHyperlinkLogText">One or more issues caused the setup to fail. Please fix the issues and then retry setup. For more information see the &lt;a href="#"&gt;log file&lt;/a&gt;.</String>
<String Id="FailureRestartText">You must restart your computer to complete the rollback of the software.</String> <String Id="FailureRestartText">You must restart your computer to complete the rollback of the software.</String>
<String Id="FailureRestartButton">&amp;Restart</String> <String Id="FailureRestartButton">&amp;Restart</String>
<String Id="FailureExistingInstall">Unable to install [WixBundleName] due to an existing install. Use Programs and Features to modify, repair or remove [WixBundleName].</String>
</WixLocalization> </WixLocalization>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<IntDir>$(ProjectDir)..\..\obj\$(Configuration)_Bootstrap\</IntDir> <IntDir>$(PySourcePath)PCBuild\obj\$(Configuration)_$(Platform)_Setup\Bootstrap\</IntDir>
<OutDir>$(IntDir)</OutDir> <OutDir>$(IntDir)</OutDir>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
......
...@@ -23,14 +23,18 @@ ...@@ -23,14 +23,18 @@
<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="InstallAllUsers" Value="0" Persisted="yes" bal:Overridable="yes" /> <Variable Name="InstallAllUsers" Value="0" bal:Overridable="yes" />
<Variable Name="TargetDir" Value="" Persisted="yes" bal:Overridable="yes" /> <Variable Name="TargetDir" Value="" bal:Overridable="yes" />
<?if $(var.Platform)~="x64" ?> <?if $(var.Platform)~="x64" ?>
<Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]Python [ShortVersion]" bal:Overridable="yes" /> <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]Python [ShortVersion]" bal:Overridable="yes" />
<Variable Name="TargetPlatform" Value="x64" />
<?else ?> <?else ?>
<Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesFolder]Python [ShortVersion]" bal:Overridable="yes" /> <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesFolder]Python [ShortVersion]" bal:Overridable="yes" />
<Variable Name="TargetPlatform" Value="x86" />
<?endif ?> <?endif ?>
<Variable Name="DefaultJustForMeTargetDir" Value="[LocalAppDataFolder]Programs\Python\Python[ShortVersionNoDot]$(var.Suffix32)" bal:Overridable="yes" /> <Variable Name="DefaultJustForMeTargetDir" Value="[LocalAppDataFolder]Programs\Python\Python[ShortVersionNoDot]$(var.Suffix32)" bal:Overridable="yes" />
<Variable Name="OptionalFeaturesRegistryKey" Value="Software\$(var.TestPrefix)Python\PythonCore\[ShortVersion]$(var.Suffix32)\InstalledFeatures" />
<Variable Name="TargetDirRegistryKey" Value="Software\$(var.TestPrefix)Python\PythonCore\[ShortVersion]$(var.Suffix32)\InstallPath" />
<!-- <!--
An empty string will use the other defaults based on InstallAllUsers An empty string will use the other defaults based on InstallAllUsers
...@@ -44,23 +48,23 @@ ...@@ -44,23 +48,23 @@
<Variable Name="TargetDirState" Value="enabled" /> <Variable Name="TargetDirState" Value="enabled" />
<Variable Name="CustomBrowseButtonState" Value="enabled" /> <Variable Name="CustomBrowseButtonState" Value="enabled" />
<Variable Name="Include_core" Value="1" Persisted="yes" /> <Variable Name="Include_core" Value="1" />
<Variable Name="Include_exe" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_exe" Value="1" bal:Overridable="yes" />
<Variable Name="Include_dev" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_dev" Value="1" bal:Overridable="yes" />
<Variable Name="Include_lib" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_lib" Value="1" bal:Overridable="yes" />
<Variable Name="Include_test" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_test" Value="1" bal:Overridable="yes" />
<Variable Name="Include_doc" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_doc" Value="1" bal:Overridable="yes" />
<Variable Name="Include_tools" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_tools" Value="1" bal:Overridable="yes" />
<Variable Name="Include_tcltk" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_tcltk" Value="1" bal:Overridable="yes" />
<Variable Name="Include_pip" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_pip" Value="1" bal:Overridable="yes" />
<Variable Name="Include_launcher" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_launcher" Value="1" bal:Overridable="yes" />
<Variable Name="Include_symbols" Value="0" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_symbols" Value="0" bal:Overridable="yes" />
<Variable Name="Include_debug" Value="0" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Include_debug" Value="0" bal:Overridable="yes" />
<Variable Name="AssociateFiles" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="AssociateFiles" Value="1" bal:Overridable="yes" />
<Variable Name="Shortcuts" Value="1" Persisted="yes" bal:Overridable="yes" /> <Variable Name="Shortcuts" Value="1" bal:Overridable="yes" />
<Variable Name="PrependPath" Value="0" Persisted="yes" bal:Overridable="yes" /> <Variable Name="PrependPath" Value="0" bal:Overridable="yes" />
<Variable Name="CompileAll" Value="0" Persisted="yes" bal:Overridable="yes" /> <Variable Name="CompileAll" Value="0" bal:Overridable="yes" />
<Variable Name="SimpleInstall" Value="0" bal:Overridable="yes" /> <Variable Name="SimpleInstall" Value="0" bal:Overridable="yes" />
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip)"> InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip)">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="core_AllUsers_pdb" <MsiPackage Id="core_AllUsers_pdb"
SourceFile="core_pdb.msi" SourceFile="core_pdb.msi"
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols"> InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="core_AllUsers_d" <MsiPackage Id="core_AllUsers_d"
SourceFile="core_d.msi" SourceFile="core_d.msi"
...@@ -25,6 +27,7 @@ ...@@ -25,6 +27,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug"> InstallCondition="InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="core_JustForMe" <MsiPackage Id="core_JustForMe"
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip)"> InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip)">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="core_JustForMe_pdb" <MsiPackage Id="core_JustForMe_pdb"
SourceFile="core_pdb.msi" SourceFile="core_pdb.msi"
...@@ -42,6 +46,7 @@ ...@@ -42,6 +46,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols"> InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="core_JustForMe_d" <MsiPackage Id="core_JustForMe_d"
SourceFile="core_d.msi" SourceFile="core_d.msi"
...@@ -50,6 +55,7 @@ ...@@ -50,6 +55,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug"> InstallCondition="not InstallAllUsers and (Include_core or Include_exe or Include_launcher or Include_pip) and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_dev"> InstallCondition="InstallAllUsers and Include_dev">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="dev_AllUsers_d" <MsiPackage Id="dev_AllUsers_d"
SourceFile="dev_d.msi" SourceFile="dev_d.msi"
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_dev and Include_debug"> InstallCondition="InstallAllUsers and Include_dev and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="dev_JustForMe" <MsiPackage Id="dev_JustForMe"
...@@ -26,6 +28,7 @@ ...@@ -26,6 +28,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_dev"> InstallCondition="not InstallAllUsers and Include_dev">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="dev_JustForMe_d" <MsiPackage Id="dev_JustForMe_d"
SourceFile="dev_d.msi" SourceFile="dev_d.msi"
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_dev and Include_debug"> InstallCondition="not InstallAllUsers and Include_dev and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_doc"> InstallCondition="InstallAllUsers and Include_doc">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="doc_JustForMe" <MsiPackage Id="doc_JustForMe"
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_doc"> InstallCondition="not InstallAllUsers and Include_doc">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip)"> InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip)">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="exe_AllUsers_pdb" <MsiPackage Id="exe_AllUsers_pdb"
SourceFile="exe_pdb.msi" SourceFile="exe_pdb.msi"
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
DownloadUrl="$(var.DownloadUrl)" DownloadUrl="$(var.DownloadUrl)"
InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols"> InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="exe_AllUsers_d" <MsiPackage Id="exe_AllUsers_d"
SourceFile="exe_d.msi" SourceFile="exe_d.msi"
...@@ -26,6 +28,7 @@ ...@@ -26,6 +28,7 @@
DownloadUrl="$(var.DownloadUrl)" DownloadUrl="$(var.DownloadUrl)"
InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug"> InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="exe_JustForMe" <MsiPackage Id="exe_JustForMe"
...@@ -36,6 +39,7 @@ ...@@ -36,6 +39,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip)"> InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip)">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="exe_JustForMe_pdb" <MsiPackage Id="exe_JustForMe_pdb"
SourceFile="exe_pdb.msi" SourceFile="exe_pdb.msi"
...@@ -44,6 +48,7 @@ ...@@ -44,6 +48,7 @@
DownloadUrl="$(var.DownloadUrl)" DownloadUrl="$(var.DownloadUrl)"
InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols"> InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="exe_JustForMe_d" <MsiPackage Id="exe_JustForMe_d"
SourceFile="exe_d.msi" SourceFile="exe_d.msi"
...@@ -52,6 +57,7 @@ ...@@ -52,6 +57,7 @@
DownloadUrl="$(var.DownloadUrl)" DownloadUrl="$(var.DownloadUrl)"
InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug"> InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip) and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_lib"> InstallCondition="InstallAllUsers and Include_lib">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="lib_AllUsers_pdb" <MsiPackage Id="lib_AllUsers_pdb"
SourceFile="lib_pdb.msi" SourceFile="lib_pdb.msi"
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_lib and Include_symbols"> InstallCondition="InstallAllUsers and Include_lib and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="lib_AllUsers_d" <MsiPackage Id="lib_AllUsers_d"
SourceFile="lib_d.msi" SourceFile="lib_d.msi"
...@@ -25,6 +27,7 @@ ...@@ -25,6 +27,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_lib and Include_debug"> InstallCondition="InstallAllUsers and Include_lib and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="lib_JustForMe" <MsiPackage Id="lib_JustForMe"
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_lib"> InstallCondition="not InstallAllUsers and Include_lib">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="lib_JustForMe_pdb" <MsiPackage Id="lib_JustForMe_pdb"
SourceFile="lib_pdb.msi" SourceFile="lib_pdb.msi"
...@@ -42,6 +46,7 @@ ...@@ -42,6 +46,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_lib and Include_symbols"> InstallCondition="not InstallAllUsers and Include_lib and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="lib_JustForMe_d" <MsiPackage Id="lib_JustForMe_d"
SourceFile="lib_d.msi" SourceFile="lib_d.msi"
...@@ -50,6 +55,7 @@ ...@@ -50,6 +55,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_lib and Include_debug"> InstallCondition="not InstallAllUsers and Include_lib and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_pip"> InstallCondition="InstallAllUsers and Include_pip">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="pip_JustForMe" <MsiPackage Id="pip_JustForMe"
SourceFile="pip.msi" SourceFile="pip.msi"
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_pip"> InstallCondition="not InstallAllUsers and Include_pip">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="path_AllUsers" <MsiPackage Id="path_AllUsers"
...@@ -26,6 +28,7 @@ ...@@ -26,6 +28,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and PrependPath"> InstallCondition="InstallAllUsers and PrependPath">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="path_JustForMe" <MsiPackage Id="path_JustForMe"
SourceFile="path.msi" SourceFile="path.msi"
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and PrependPath"> InstallCondition="not InstallAllUsers and PrependPath">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<?define CompileAllCommand=-$(var.ShortVersion)$(var.Suffix32) -E -s -Wi "[TargetDir]\Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py2_|lib2to3\\tests|venv\\scripts" "[TargetDir]\Lib"?> <?define CompileAllCommand=-$(var.ShortVersion)$(var.Suffix32) -E -s -Wi "[TargetDir]\Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py2_|lib2to3\\tests|venv\\scripts" "[TargetDir]\Lib"?>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="InstallAllUsers and Include_tcltk"> InstallCondition="InstallAllUsers and Include_tcltk">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="tcltk_AllUsers_pdb" <MsiPackage Id="tcltk_AllUsers_pdb"
SourceFile="tcltk_pdb.msi" SourceFile="tcltk_pdb.msi"
...@@ -19,6 +20,7 @@ ...@@ -19,6 +20,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="InstallAllUsers and Include_tcltk and Include_symbols"> InstallCondition="InstallAllUsers and Include_tcltk and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="tcltk_AllUsers_d" <MsiPackage Id="tcltk_AllUsers_d"
SourceFile="tcltk_d.msi" SourceFile="tcltk_d.msi"
...@@ -28,6 +30,7 @@ ...@@ -28,6 +30,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="InstallAllUsers and Include_tcltk and Include_debug"> InstallCondition="InstallAllUsers and Include_tcltk and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="tcltk_JustForMe" <MsiPackage Id="tcltk_JustForMe"
...@@ -38,6 +41,7 @@ ...@@ -38,6 +41,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="not InstallAllUsers and Include_tcltk"> InstallCondition="not InstallAllUsers and Include_tcltk">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="tcltk_JustForMe_pdb" <MsiPackage Id="tcltk_JustForMe_pdb"
SourceFile="tcltk_pdb.msi" SourceFile="tcltk_pdb.msi"
...@@ -47,6 +51,7 @@ ...@@ -47,6 +51,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="not InstallAllUsers and Include_tcltk and Include_symbols"> InstallCondition="not InstallAllUsers and Include_tcltk and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="tcltk_JustForMe_d" <MsiPackage Id="tcltk_JustForMe_d"
SourceFile="tcltk_d.msi" SourceFile="tcltk_d.msi"
...@@ -56,6 +61,7 @@ ...@@ -56,6 +61,7 @@
EnableFeatureSelection="yes" EnableFeatureSelection="yes"
InstallCondition="not InstallAllUsers and Include_tcltk and Include_debug"> InstallCondition="not InstallAllUsers and Include_tcltk and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_test"> InstallCondition="InstallAllUsers and Include_test">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="test_AllUsers_pdb" <MsiPackage Id="test_AllUsers_pdb"
SourceFile="test_pdb.msi" SourceFile="test_pdb.msi"
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_test and Include_symbols"> InstallCondition="InstallAllUsers and Include_test and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="test_AllUsers_d" <MsiPackage Id="test_AllUsers_d"
SourceFile="test_d.msi" SourceFile="test_d.msi"
...@@ -25,6 +27,7 @@ ...@@ -25,6 +27,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_test and Include_debug"> InstallCondition="InstallAllUsers and Include_test and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="test_JustForMe" <MsiPackage Id="test_JustForMe"
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_test"> InstallCondition="not InstallAllUsers and Include_test">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="test_JustForMe_pdb" <MsiPackage Id="test_JustForMe_pdb"
SourceFile="test_pdb.msi" SourceFile="test_pdb.msi"
...@@ -42,6 +46,7 @@ ...@@ -42,6 +46,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_test and Include_symbols"> InstallCondition="not InstallAllUsers and Include_test and Include_symbols">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="test_JustForMe_d" <MsiPackage Id="test_JustForMe_d"
SourceFile="test_d.msi" SourceFile="test_d.msi"
...@@ -50,6 +55,7 @@ ...@@ -50,6 +55,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_test and Include_debug"> InstallCondition="not InstallAllUsers and Include_test and Include_debug">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
ForcePerMachine="yes" ForcePerMachine="yes"
InstallCondition="InstallAllUsers and Include_tools"> InstallCondition="InstallAllUsers and Include_tools">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
<MsiPackage Id="tools_JustForMe" <MsiPackage Id="tools_JustForMe"
...@@ -18,6 +19,7 @@ ...@@ -18,6 +19,7 @@
ForcePerMachine="no" ForcePerMachine="no"
InstallCondition="not InstallAllUsers and Include_tools"> InstallCondition="not InstallAllUsers and Include_tools">
<MsiProperty Name="TARGETDIR" Value="[TargetDir]" /> <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
<MsiProperty Name="OPTIONALFEATURESREGISTRYKEY" Value="[OptionalFeaturesRegistryKey]" />
</MsiPackage> </MsiPackage>
</PackageGroup> </PackageGroup>
</Fragment> </Fragment>
......
...@@ -4,6 +4,15 @@ ...@@ -4,6 +4,15 @@
<Property Id="REGISTRYKEY" Value="Software\$(var.TestPrefix)Python\PythonCore\$(var.ShortVersion)$(var.Suffix32)" /> <Property Id="REGISTRYKEY" Value="Software\$(var.TestPrefix)Python\PythonCore\$(var.ShortVersion)$(var.Suffix32)" />
</Fragment> </Fragment>
<Fragment>
<Component Id="OptionalFeature" Guid="*" Directory="InstallDirectory">
<Condition>OPTIONALFEATURESREGISTRYKEY</Condition>
<RegistryKey Root="HKMU" Key="[OPTIONALFEATURESREGISTRYKEY]">
<RegistryValue Type="string" Name="$(var.OptionalFeatureName)" Value="$(var.Version)" KeyPath="yes" />
</RegistryKey>
</Component>
</Fragment>
<Fragment> <Fragment>
<Property Id="UpgradeTable" Value="1" /> <Property Id="UpgradeTable" Value="1" />
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)"> <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
<ComponentGroupRef Id="core_dll_d" /> <ComponentGroupRef Id="core_dll_d" />
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
</Product> </Product>
</Wix> </Wix>
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)"> <Feature Id="Symbols" AllowAdvertise="no" Title="!(loc.TitlePdb)" Description="!(loc.DescriptionPdb)">
<ComponentGroupRef Id="core_symbols" /> <ComponentGroupRef Id="core_symbols" />
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
</Product> </Product>
</Wix> </Wix>
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
<?ifdef IncludeMinGWLib ?> <?ifdef IncludeMinGWLib ?>
<ComponentGroupRef Id="dev_mingw" /> <ComponentGroupRef Id="dev_mingw" />
<?endif ?> <?endif ?>
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
</Product> </Product>
</Wix> </Wix>
...@@ -9,13 +9,16 @@ ...@@ -9,13 +9,16 @@
<Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<ComponentGroupRef Id="doc" Primary="yes" /> <ComponentGroupRef Id="doc" Primary="yes" />
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
<Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<ComponentGroupRef Id="doc" /> <ComponentGroupRef Id="doc" />
<?ifdef DocFilename ?> <?ifdef DocFilename ?>
<Component Id="doc_shortcut" Directory="MenuDir" Guid="*"> <Component Id="doc_shortcut" Directory="MenuDir" Guid="*">
<RegistryValue Root="HKMU" Key="[REGISTRYKEY]\DocShortcuts" Type="integer" Value="1" KeyPath="yes" /> <RegistryKey Root="HKMU" Key="[OPTIONALFEATURESREGISTRYKEY]">
<RegistryValue Name="$(var.OptionalFeatureName)_shortcut" Type="string" Value="$(var.Version)" KeyPath="yes" />
</RegistryKey>
<Shortcut Id="python.chm" <Shortcut Id="python.chm"
Target="[#python.chm]" Target="[#python.chm]"
Name="!(loc.ShortcutName)" Name="!(loc.ShortcutName)"
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<ComponentGroupRef Id="exe_python" Primary="yes" /> <ComponentGroupRef Id="exe_python" Primary="yes" />
<ComponentGroupRef Id="exe_txt" /> <ComponentGroupRef Id="exe_txt" />
<ComponentGroupRef Id="exe_icons" /> <ComponentGroupRef Id="exe_icons" />
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
<Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
...@@ -23,6 +24,7 @@ ...@@ -23,6 +24,7 @@
<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" />
<RegistryValue Key="InstalledFeatures" Name="Shortcuts" Type="string" Value="$(var.Version)" />
</RegistryKey> </RegistryKey>
</Component> </Component>
</Feature> </Feature>
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
<RegistryKey Root="HKMU" Key="[REGISTRYKEY]"> <RegistryKey Root="HKMU" Key="[REGISTRYKEY]">
<RegistryValue Key="InstallPath" Type="string" Value="[InstallDirectory]" KeyPath="no" /> <RegistryValue Key="InstallPath" Type="string" Value="[InstallDirectory]" KeyPath="no" />
<RegistryValue Key="InstallPath" Name="ExecutablePath" Type="string" Value="[#python.exe]" KeyPath="no" />
</RegistryKey> </RegistryKey>
</Component> </Component>
<Component Id="pythonw.exe" Directory="InstallDirectory" Guid="$(var.PythonwExeComponentGuid)"> <Component Id="pythonw.exe" Directory="InstallDirectory" Guid="$(var.PythonwExeComponentGuid)">
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<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.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>
<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.exe" Source="pyw.exe" KeyPath="yes" /> <File Id="pyw.exe" Name="pyw.exe" Source="pyw.exe" KeyPath="yes" />
...@@ -12,12 +13,12 @@ ...@@ -12,12 +13,12 @@
<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\Python\PyLauncher\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\Python\PyLauncher\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>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<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\Python\PyLauncher\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="$(var.TestPrefix)Python.File" Description="!(loc.PythonFileDescription)" Advertise="no" Icon="py.exe" IconIndex="1">
<Extension Id="$(var.FileExtension)" ContentType="text/plain"> <Extension Id="$(var.FileExtension)" ContentType="text/plain">
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<ComponentGroupRef Id="lib_py" /> <ComponentGroupRef Id="lib_py" />
<ComponentGroupRef Id="lib_files" /> <ComponentGroupRef Id="lib_files" />
<ComponentGroupRef Id="lib_extensions" /> <ComponentGroupRef Id="lib_extensions" />
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
</Product> </Product>
</Wix> </Wix>
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
<IntermediateOutputPath>$(MSBuildThisFileDirectory)\obj\$(Configuration)_$(Platform)\$(OutputName)</IntermediateOutputPath> <IntermediateOutputPath>$(PySourcePath)PCBuild\obj\$(Configuration)_$(Platform)_Setup\$(OutputName)</IntermediateOutputPath>
<IntermediateOutputPath Condition="'$(OutputSuffix)' != ''">$(IntermediateOutputPath)_$(OutputSuffix)</IntermediateOutputPath> <IntermediateOutputPath Condition="'$(OutputSuffix)' != ''">$(IntermediateOutputPath)_$(OutputSuffix)</IntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)' == ''">$(BuildPath)</OutputPath> <OutputPath Condition="'$(OutputPath)' == ''">$(BuildPath)</OutputPath>
<OutputPath Condition="!HasTrailingSlash($(OutputPath))">$(OutputPath)\</OutputPath> <OutputPath Condition="!HasTrailingSlash($(OutputPath))">$(OutputPath)\</OutputPath>
...@@ -71,6 +71,7 @@ ...@@ -71,6 +71,7 @@
NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0; NextMajorVersionNumber=$(MajorVersionNumber).$([msbuild]::Add($(MinorVersionNumber), 1)).0.0;
Bitness=$(Bitness); Bitness=$(Bitness);
PyDebugExt=$(PyDebugExt); PyDebugExt=$(PyDebugExt);
OptionalFeatureName=$(OutputName);
</DefineConstants> </DefineConstants>
<DefineConstants Condition="'$(CRTRedist)' != ''"> <DefineConstants Condition="'$(CRTRedist)' != ''">
$(DefineConstants);CRTRedist=$(CRTRedist); $(DefineConstants);CRTRedist=$(CRTRedist);
...@@ -112,9 +113,6 @@ ...@@ -112,9 +113,6 @@
<LinkerBindInputPaths Include="$(CRTRedist)" Condition="'$(CRTRedist)' != ''"> <LinkerBindInputPaths Include="$(CRTRedist)" Condition="'$(CRTRedist)' != ''">
<BindName>redist</BindName> <BindName>redist</BindName>
</LinkerBindInputPaths> </LinkerBindInputPaths>
<LinkerBindInputPaths Include="$(CRTRedist)\$(Platform)" Condition="'$(CRTRedist)' != ''">
<BindName>crt</BindName>
</LinkerBindInputPaths>
</ItemGroup> </ItemGroup>
<Target Name="_ValidateMsiProps" BeforeTargets="PrepareForBuild"> <Target Name="_ValidateMsiProps" BeforeTargets="PrepareForBuild">
......
...@@ -9,7 +9,9 @@ ...@@ -9,7 +9,9 @@
<Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<Component Id="PrependPath_CU" Directory="InstallDirectory" Guid="*"> <Component Id="PrependPath_CU" Directory="InstallDirectory" Guid="*">
<Condition>NOT ALLUSERS=1</Condition> <Condition>NOT ALLUSERS=1</Condition>
<RegistryValue KeyPath="yes" Root="HKCU" Key="[REGISTRYKEY]\PrependPath" Value="1" Type="integer" /> <RegistryKey Root="HKCU" Key="[REGISTRYKEY]">
<RegistryValue KeyPath="yes" Key="InstalledFeatures" Name="$(var.OptionalFeatureName)" Value="$(var.Version)" Type="string" />
</RegistryKey>
<CreateFolder Directory="Scripts" /> <CreateFolder Directory="Scripts" />
<RemoveFolder Id="Remove_Scripts_CU" Directory="Scripts" On="uninstall" /> <RemoveFolder Id="Remove_Scripts_CU" Directory="Scripts" On="uninstall" />
...@@ -19,7 +21,9 @@ ...@@ -19,7 +21,9 @@
</Component> </Component>
<Component Id="PrependPath_LM" Directory="InstallDirectory" Guid="*"> <Component Id="PrependPath_LM" Directory="InstallDirectory" Guid="*">
<Condition>ALLUSERS=1</Condition> <Condition>ALLUSERS=1</Condition>
<RegistryValue KeyPath="yes" Root="HKLM" Key="[REGISTRYKEY]\PrependPath" Value="1" Type="integer" /> <RegistryKey Root="HKLM" Key="[REGISTRYKEY]">
<RegistryValue KeyPath="yes" Key="InstalledFeatures" Name="$(var.OptionalFeatureName)" Value="$(var.Version)" Type="string" />
</RegistryKey>
<CreateFolder Directory="Scripts" /> <CreateFolder Directory="Scripts" />
<RemoveFolder Id="Remove_Scripts_LM" Directory="Scripts" On="uninstall" /> <RemoveFolder Id="Remove_Scripts_LM" Directory="Scripts" On="uninstall" />
......
...@@ -15,9 +15,7 @@ ...@@ -15,9 +15,7 @@
<Condition Message="!(loc.NoPython)">PYTHON_EXE</Condition> <Condition Message="!(loc.NoPython)">PYTHON_EXE</Condition>
<Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<Component Id="pip" Guid="*" Directory="InstallDirectory"> <ComponentRef Id="OptionalFeature" />
<RegistryValue KeyPath="yes" Root="HKMU" Key="[REGISTRYKEY]\EnsurePipRun" Value="1" Type="integer" />
</Component>
</Feature> </Feature>
<?if $(var.Platform)~="x64" ?> <?if $(var.Platform)~="x64" ?>
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
<Component Id="idle_reg" Directory="InstallDirectory"> <Component Id="idle_reg" Directory="InstallDirectory">
<RegistryValue KeyPath="yes" Root="HKMU" Key="[REGISTRYKEY]\Idle" Type="string" Value="[#Lib_idlelib_idle.pyw]" /> <RegistryValue KeyPath="yes" Root="HKMU" Key="[REGISTRYKEY]\Idle" Type="string" Value="[#Lib_idlelib_idle.pyw]" />
</Component> </Component>
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
<Feature Id="AssociateFiles" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="AssociateFiles" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<ComponentGroupRef Id="tkinter_lib" /> <ComponentGroupRef Id="tkinter_lib" />
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<ComponentGroupRef Id="test_py" /> <ComponentGroupRef Id="test_py" />
<ComponentGroupRef Id="test_extensions" /> <ComponentGroupRef Id="test_extensions" />
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
</Product> </Product>
</Wix> </Wix>
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)"> <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<ComponentGroupRef Id="tools_py" /> <ComponentGroupRef Id="tools_py" />
<ComponentGroupRef Id="tools_scripts" /> <ComponentGroupRef Id="tools_scripts" />
<ComponentRef Id="OptionalFeature" />
</Feature> </Feature>
</Product> </Product>
</Wix> </Wix>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment