mirror of
https://github.com/Open-Shell/Open-Shell-Menu.git
synced 2026-04-17 13:23:04 +10:00
Add ARM64 support (#641)
* Add ARM64 build configurations to projects * StartMenu: add ARM64 support * Add support for IAT hooking on ARM64 * Add ARM64 support to Classic IE * Add ARM64 support to installer NB: WiX 3.14.0.3910 or higher is required to create the MSI * Revert whitespace change * Separate x86/x64 and ARM64 installers * Change suffix of ARM64 binaries * Put also ARM64 MSI to final installer * Fix sln * Build some DLLs as ARM64X These are meant to be loaded to both x64 and ARM64 processes. We will compile them as ARM64X (when building for ARM64). That way they will contain both x64 and ARM64 code paths. https://learn.microsoft.com/en-us/windows/arm/arm64x-pe * Make sure x64 installer cannot be installed on ARM64 In case if somebody manually tries to install x64 MSI on ARM64. This is not supported/working scenario. --------- Co-authored-by: ge0rdi <ge0rdi@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
146c27ecd2
commit
58b909037f
@@ -3,7 +3,7 @@
|
||||
# This comment is generated by WixEdit, the specific commandline
|
||||
# arguments for the WiX Toolset are stored here.
|
||||
|
||||
candleArgs: "<projectfile>" -out "<projectname>.wixobj" -ext WixUIExtension -ext WixUtilExtension -dx64=0
|
||||
candleArgs: "<projectfile>" -out "<projectname>.wixobj" -ext WixUIExtension -ext WixUtilExtension -dx64=0 -dARM64=0
|
||||
lightArgs: "<projectname>.wixobj" -out "<projectname>.msi" -ext WixUIExtension -ext WixUtilExtension -loc OpenShellText-en-US.wxl
|
||||
-->
|
||||
<?if $(var.x64)=1 ?>
|
||||
@@ -11,6 +11,11 @@
|
||||
<?define CS_PLATFORM = "x64"?>
|
||||
<?define CS_PROGRAM_FILES = "ProgramFiles64Folder"?>
|
||||
<?define CS_WIN64 = "yes"?>
|
||||
<?elseif $(var.ARM64)=1 ?>
|
||||
<?define CS_UPGRADE = "BECF7DE9-53D0-41E7-92DC-0EF4ACCCD867"?>
|
||||
<?define CS_PLATFORM = "arm64"?>
|
||||
<?define CS_PROGRAM_FILES = "ProgramFiles64Folder"?>
|
||||
<?define CS_WIN64 = "yes"?>
|
||||
<?else ?>
|
||||
<?define CS_UPGRADE = "EB7DA1D9-44EA-43BF-8A08-0B103007D4F2"?>
|
||||
<?define CS_PLATFORM = "x86"?>
|
||||
@@ -22,9 +27,13 @@
|
||||
<Package Description="Open-Shell" Comments="Start Menu Replacement" InstallerVersion="500" Compressed="yes" Platform="$(var.CS_PLATFORM)" />
|
||||
<Media Id="1" Cabinet="cshell.cab" EmbedCab="yes" CompressionLevel="high" />
|
||||
<Media Id="2" Cabinet="simple.cab" EmbedCab="yes" CompressionLevel="high" />
|
||||
<?if $(var.x64)=0 ?>
|
||||
<PropertyRef Id="WIX_NATIVE_MACHINE" />
|
||||
<?if $(var.x64)=0 And $(var.ARM64)=0 ?>
|
||||
<Condition Message="!(loc.Error32bit)">not Msix64</Condition>
|
||||
<?endif ?>
|
||||
<?if $(var.x64)=1 ?>
|
||||
<Condition Message="!(loc.Error64bit)">NOT (WIX_NATIVE_MACHINE AND WIX_NATIVE_MACHINE="43620")</Condition>
|
||||
<?endif ?>
|
||||
<Condition Message="!(loc.ErrorWin7)">VersionNT>=601</Condition>
|
||||
<Condition Message="!(loc.ErrorNewVersion)">NOT NEWERPRODUCTFOUND OR Installed</Condition>
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
@@ -59,7 +68,7 @@
|
||||
<?endif ?>
|
||||
<Feature Id="ClassicExplorer" Level="1" Title="!(loc.ExplorerTitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.ExplorerDesc)">
|
||||
<ComponentRef Id="ClassicExplorer32.dll" />
|
||||
<?if $(var.x64)=1 ?>
|
||||
<?if $(var.x64)=1 Or $(var.ARM64)=1 ?>
|
||||
<ComponentRef Id="ClassicExplorer64.dll" />
|
||||
<?endif ?>
|
||||
<ComponentRef Id="ExplorerL10N.ini" />
|
||||
@@ -71,7 +80,7 @@
|
||||
<ComponentRef Id="StartMenuDLL.dll" />
|
||||
<ComponentRef Id="StartMenuL10N.ini" />
|
||||
<ComponentRef Id="StartMenuHelper32.dll" />
|
||||
<?if $(var.x64)=1 ?>
|
||||
<?if $(var.x64)=1 Or $(var.ARM64)=1 ?>
|
||||
<ComponentRef Id="StartMenuHelper64.dll" />
|
||||
<?endif ?>
|
||||
<ComponentRef Id="StartScreenLink" />
|
||||
@@ -98,7 +107,7 @@
|
||||
<Feature Id="ClassicIE" Level="2" Title="!(loc.IETitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.IEDesc)">
|
||||
<ComponentRef Id="ClassicIEDLL_32.dll" />
|
||||
<ComponentRef Id="ClassicIE_32.exe" />
|
||||
<?if $(var.x64)=1 ?>
|
||||
<?if $(var.x64)=1 Or $(var.ARM64)=1 ?>
|
||||
<ComponentRef Id="ClassicIEDLL_64.dll" />
|
||||
<ComponentRef Id="ClassicIE_64.exe" />
|
||||
<?endif ?>
|
||||
@@ -443,6 +452,25 @@
|
||||
<Component Id="StartMenuDLL.dll" Guid="C5226061-17DE-4DF6-A088-CC84F6A7BE84" Win64="yes" DiskId="2">
|
||||
<File Id="StartMenuDLL.dll" Checksum="yes" KeyPath="yes" Source="Output\x64\StartMenuDLL.dll" Vital="yes" />
|
||||
</Component>
|
||||
<?elseif $(var.ARM64)=1 ?>
|
||||
<Component Id="ClassicExplorer64.dll" Guid="2C25783D-394D-4E5B-9259-1650F561E2CE" Win64="yes" DiskId="2">
|
||||
<File Id="ClassicExplorer64.dll" KeyPath="yes" Source="Output\ARM64\ClassicExplorer64.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
|
||||
</Component>
|
||||
<Component Id="ClassicIEDLL_64.dll" Guid="43E62408-40EB-4FBB-98CC-7463F5B78266" Win64="yes" DiskId="2">
|
||||
<File Id="ClassicIEDLL_64.dll" KeyPath="yes" Source="Output\ARM64\ClassicIEDLL_64.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
|
||||
</Component>
|
||||
<Component Id="ClassicIE_64.exe" Guid="E822E720-8477-4511-AD93-172313EFA636" Win64="yes" DiskId="2">
|
||||
<File Id="ClassicIE_64.exe" KeyPath="yes" Source="Output\ARM64\ClassicIE_64.exe" Checksum="yes" Vital="yes" />
|
||||
</Component>
|
||||
<Component Id="StartMenu.exe" Guid="FC69E080-4232-4161-A1E5-20E255FB2F6B" Win64="yes" DiskId="2">
|
||||
<File Id="StartMenu.exe" KeyPath="yes" Checksum="yes" Source="Output\ARM64\StartMenu.exe" Vital="yes" />
|
||||
<Shortcut Id="StartMenuSettings" Name="Start Menu Settings" Advertise="no" Arguments="-settings" Description="!(loc.StartSettingsDesc)" Target="[APPLICATIONFOLDER]StartMenu.exe" WorkingDirectory="APPLICATIONFOLDER">
|
||||
<ShortcutProperty Key="System.AppUserModel.ID" Value="OpenShell.StartMenu.Settings" />
|
||||
</Shortcut>
|
||||
</Component>
|
||||
<Component Id="StartMenuDLL.dll" Guid="ED99E7BC-9F2C-4A96-A942-6E7D41628AB0" Win64="yes" DiskId="2">
|
||||
<File Id="StartMenuDLL.dll" Checksum="yes" KeyPath="yes" Source="Output\ARM64\StartMenuDLL.dll" Vital="yes" />
|
||||
</Component>
|
||||
<?else ?>
|
||||
<Component Id="StartMenu.exe" Guid="F74C0FF3-A8C0-4B6E-AFD2-F9467DE4D90B" Win64="no" DiskId="2">
|
||||
<File Id="StartMenu.exe" KeyPath="yes" Checksum="yes" Source="Output\StartMenu.exe" Vital="yes" />
|
||||
@@ -624,6 +652,11 @@
|
||||
<File Id="StartMenuHelper64.dll" KeyPath="yes" Source="Output\x64\StartMenuHelper64.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
|
||||
</Component>
|
||||
<?endif ?>
|
||||
<?if $(var.ARM64)=1 ?>
|
||||
<Component Id="StartMenuHelper64.dll" Guid="108B11E8-2F76-4C37-A274-62BAE6240490" Win64="yes" DiskId="2">
|
||||
<File Id="StartMenuHelper64.dll" KeyPath="yes" Source="Output\ARM64\StartMenuHelper64.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
|
||||
</Component>
|
||||
<?endif ?>
|
||||
</DirectoryRef>
|
||||
<Icon Id="icon.ico" SourceFile="..\Setup\OpenShell.ico" />
|
||||
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
|
||||
|
||||
Reference in New Issue
Block a user