summaryrefslogtreecommitdiffstats
path: root/Tools/msi
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@python.org>2022-03-28 23:21:08 (GMT)
committerGitHub <noreply@github.com>2022-03-28 23:21:08 (GMT)
commitbad86a621af61f383b9f06fe4a08f66245df99e2 (patch)
tree0d52b1d9356c9cd73947db5a63d9829f9c5af2f4 /Tools/msi
parent5c30388f3c586ba2f33e349e22e5949cb92de621 (diff)
downloadcpython-bad86a621af61f383b9f06fe4a08f66245df99e2.zip
cpython-bad86a621af61f383b9f06fe4a08f66245df99e2.tar.gz
cpython-bad86a621af61f383b9f06fe4a08f66245df99e2.tar.bz2
bpo-46566: Add new py.exe launcher implementation (GH-32062)
Diffstat (limited to 'Tools/msi')
-rw-r--r--Tools/msi/launcher/launcher.wixproj28
-rw-r--r--Tools/msi/launcher/launcher_files.wxs9
2 files changed, 28 insertions, 9 deletions
diff --git a/Tools/msi/launcher/launcher.wixproj b/Tools/msi/launcher/launcher.wixproj
index 7ff1690..de770bd 100644
--- a/Tools/msi/launcher/launcher.wixproj
+++ b/Tools/msi/launcher/launcher.wixproj
@@ -8,6 +8,7 @@
<DefineConstants>UpgradeCode=1B68A0EC-4DD3-5134-840E-73854B0863F1;SuppressUpgradeTable=1;$(DefineConstants)</DefineConstants>
<IgnoreCommonWxlTemplates>true</IgnoreCommonWxlTemplates>
<SuppressICEs>ICE80</SuppressICEs>
+ <_Rebuild>Build</_Rebuild>
</PropertyGroup>
<Import Project="..\msi.props" />
<ItemGroup>
@@ -18,18 +19,27 @@
<ItemGroup>
<EmbeddedResource Include="*.wxl" />
</ItemGroup>
-
- <Target Name="_EnsurePyEx86" Condition="!Exists('$(BuildPath32)py.exe')" BeforeTargets="PrepareForBuild">
- <MSBuild Projects="$(PySourcePath)PCbuild\pylauncher.vcxproj" Properties="Platform=Win32" />
+
+ <Target Name="_MarkAsRebuild" BeforeTargets="BeforeRebuild">
+ <PropertyGroup>
+ <_Rebuild>Rebuild</_Rebuild>
+ </PropertyGroup>
+ </Target>
+
+ <Target Name="_EnsurePyEx86" Condition="!Exists('$(BuildPath32)py.exe') or '$(_Rebuild)' == 'Rebuild'" BeforeTargets="PrepareForBuild">
+ <MSBuild Projects="$(PySourcePath)PCbuild\pylauncher.vcxproj" Properties="Platform=Win32" Targets="$(_Rebuild)" />
+ </Target>
+ <Target Name="_EnsurePywEx86" Condition="!Exists('$(BuildPath32)pyw.exe') or '$(_Rebuild)' == 'Rebuild'" BeforeTargets="PrepareForBuild">
+ <MSBuild Projects="$(PySourcePath)PCbuild\pywlauncher.vcxproj" Properties="Platform=Win32" Targets="$(_Rebuild)" />
</Target>
- <Target Name="_EnsurePywEx86" Condition="!Exists('$(BuildPath32)pyw.exe')" BeforeTargets="PrepareForBuild">
- <MSBuild Projects="$(PySourcePath)PCbuild\pywlauncher.vcxproj" Properties="Platform=Win32" />
+ <Target Name="_EnsurePyShellExt86" Condition="!Exists('$(BuildPath32)pyshellext.dll') or '$(_Rebuild)' == 'Rebuild'" BeforeTargets="PrepareForBuild">
+ <MSBuild Projects="$(PySourcePath)PCbuild\pyshellext.vcxproj" Properties="Platform=Win32" Targets="$(_Rebuild)" />
</Target>
- <Target Name="_EnsurePyShellExt86" Condition="!Exists('$(BuildPath32)pyshellext.dll')" BeforeTargets="PrepareForBuild">
- <MSBuild Projects="$(PySourcePath)PCbuild\pyshellext.vcxproj" Properties="Platform=Win32" />
+ <Target Name="_EnsurePyShellExt64" Condition="!Exists('$(BuildPath64)pyshellext.dll') or '$(_Rebuild)' == 'Rebuild'" BeforeTargets="PrepareForBuild">
+ <MSBuild Projects="$(PySourcePath)PCbuild\pyshellext.vcxproj" Properties="Platform=x64" Targets="$(_Rebuild)" />
</Target>
- <Target Name="_EnsurePyShellExt64" Condition="!Exists('$(BuildPath64)pyshellext.dll')" BeforeTargets="PrepareForBuild">
- <MSBuild Projects="$(PySourcePath)PCbuild\pyshellext.vcxproj" Properties="Platform=x64" />
+ <Target Name="_EnsurePyShellExtARM64" Condition="!Exists('$(BuildPathARM64)pyshellext.dll') or '$(_Rebuild)' == 'Rebuild'" BeforeTargets="PrepareForBuild">
+ <MSBuild Projects="$(PySourcePath)PCbuild\pyshellext.vcxproj" Properties="Platform=ARM64" Targets="$(_Rebuild)" />
</Target>
<Import Project="..\msi.targets" />
diff --git a/Tools/msi/launcher/launcher_files.wxs b/Tools/msi/launcher/launcher_files.wxs
index 5b79d76..2c6c808 100644
--- a/Tools/msi/launcher/launcher_files.wxs
+++ b/Tools/msi/launcher/launcher_files.wxs
@@ -33,6 +33,15 @@
<Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" />
</File>
</Component>
+ <!--
+ Currently unclear how to detect ARM64 device at this point.
+ In any case, the shell extension doesn't appear to work, so installing a non-functional
+ pyshellext_amd64.dll for a different platform isn't any worse.
+ <Component Id="pyshellext_arm64.dll" Directory="LauncherInstallDirectory" Guid="{C591963D-7FC6-4FCE-8642-5E01E6B8848F}">
+ <File Id="pyshellext_arm64.dll" Name="pyshellext.arm64.dll" Source="!(bindpath.BuildARM64)\pyshellext.dll">
+ <Class Id="{BEA218D2-6950-497B-9434-61683EC065FE}" Advertise="no" Context="InprocServer32" ThreadingModel="apartment" />
+ </File>
+ </Component>-->
</ComponentGroup>
</Fragment>
</Wix>