Skip to content

Commit 4388dad

Browse files
dennisamelingcodebytere
authored andcommitted
win,msi: add arm64 config for windows msi
Adds configuration to allow building an MSI installer for Windows ARM64. MSI can be created by running `vcbuild.bat release msi arm64` Refs: #25998 Refs: #32582 PR-URL: #33689 Reviewed-By: João Reis <[email protected]> Reviewed-By: Bartosz Sosnowski <[email protected]>
1 parent c50bd2f commit 4388dad

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed

tools/msvs/msi/custom_actions.vcxproj

+76
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|ARM64">
5+
<Configuration>Debug</Configuration>
6+
<Platform>ARM64</Platform>
7+
</ProjectConfiguration>
48
<ProjectConfiguration Include="Debug|Win32">
59
<Configuration>Debug</Configuration>
610
<Platform>Win32</Platform>
@@ -9,6 +13,10 @@
913
<Configuration>Debug</Configuration>
1014
<Platform>x64</Platform>
1115
</ProjectConfiguration>
16+
<ProjectConfiguration Include="Release|ARM64">
17+
<Configuration>Release</Configuration>
18+
<Platform>ARM64</Platform>
19+
</ProjectConfiguration>
1220
<ProjectConfiguration Include="Release|Win32">
1321
<Configuration>Release</Configuration>
1422
<Platform>Win32</Platform>
@@ -31,6 +39,12 @@
3139
<CharacterSet>Unicode</CharacterSet>
3240
<WholeProgramOptimization>true</WholeProgramOptimization>
3341
</PropertyGroup>
42+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
43+
<ConfigurationType>DynamicLibrary</ConfigurationType>
44+
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
45+
<CharacterSet>Unicode</CharacterSet>
46+
<WholeProgramOptimization>true</WholeProgramOptimization>
47+
</PropertyGroup>
3448
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
3549
<ConfigurationType>DynamicLibrary</ConfigurationType>
3650
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
@@ -42,6 +56,11 @@
4256
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
4357
<CharacterSet>Unicode</CharacterSet>
4458
</PropertyGroup>
59+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
60+
<ConfigurationType>DynamicLibrary</ConfigurationType>
61+
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
62+
<CharacterSet>Unicode</CharacterSet>
63+
</PropertyGroup>
4564
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
4665
<ConfigurationType>DynamicLibrary</ConfigurationType>
4766
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
@@ -53,12 +72,18 @@
5372
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
5473
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
5574
</ImportGroup>
75+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
76+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
77+
</ImportGroup>
5678
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
5779
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
5880
</ImportGroup>
5981
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
6082
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
6183
</ImportGroup>
84+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
85+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
86+
</ImportGroup>
6287
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
6388
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
6489
</ImportGroup>
@@ -69,12 +94,18 @@
6994
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
7095
<LinkIncremental>true</LinkIncremental>
7196
</PropertyGroup>
97+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
98+
<LinkIncremental>true</LinkIncremental>
99+
</PropertyGroup>
72100
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
73101
<LinkIncremental>true</LinkIncremental>
74102
</PropertyGroup>
75103
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
76104
<LinkIncremental>false</LinkIncremental>
77105
</PropertyGroup>
106+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
107+
<LinkIncremental>false</LinkIncremental>
108+
</PropertyGroup>
78109
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
79110
<LinkIncremental>false</LinkIncremental>
80111
</PropertyGroup>
@@ -97,6 +128,25 @@
97128
<SubSystem>Windows</SubSystem>
98129
</Link>
99130
</ItemDefinitionGroup>
131+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
132+
<ClCompile>
133+
<Optimization>Disabled</Optimization>
134+
<AdditionalIncludeDirectories>$(WixSdkDir)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
135+
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
136+
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
137+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
138+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
139+
<WarningLevel>Level3</WarningLevel>
140+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
141+
</ClCompile>
142+
<Link>
143+
<AdditionalDependencies>msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
144+
<AdditionalLibraryDirectories>$(WixSdkDir)\lib\ARM64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
145+
<ModuleDefinitionFile>custom_actions.def</ModuleDefinitionFile>
146+
<GenerateDebugInformation>true</GenerateDebugInformation>
147+
<SubSystem>Windows</SubSystem>
148+
</Link>
149+
</ItemDefinitionGroup>
100150
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
101151
<ClCompile>
102152
<Optimization>Disabled</Optimization>
@@ -142,6 +192,32 @@
142192
<EnableCOMDATFolding>true</EnableCOMDATFolding>
143193
</Link>
144194
</ItemDefinitionGroup>
195+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
196+
<ClCompile>
197+
<Optimization>MaxSpeed</Optimization>
198+
<IntrinsicFunctions>true</IntrinsicFunctions>
199+
<AdditionalIncludeDirectories>$(WixSdkDir)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
200+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
201+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
202+
<FunctionLevelLinking>true</FunctionLevelLinking>
203+
<WarningLevel>Level3</WarningLevel>
204+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
205+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
206+
<PrecompiledHeaderFile>
207+
</PrecompiledHeaderFile>
208+
<PrecompiledHeaderOutputFile>
209+
</PrecompiledHeaderOutputFile>
210+
</ClCompile>
211+
<Link>
212+
<AdditionalDependencies>msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
213+
<AdditionalLibraryDirectories>$(WixSdkDir)\lib\ARM64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
214+
<ModuleDefinitionFile>custom_actions.def</ModuleDefinitionFile>
215+
<GenerateDebugInformation>true</GenerateDebugInformation>
216+
<SubSystem>Windows</SubSystem>
217+
<OptimizeReferences>true</OptimizeReferences>
218+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
219+
</Link>
220+
</ItemDefinitionGroup>
145221
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
146222
<ClCompile>
147223
<Optimization>MaxSpeed</Optimization>

tools/msvs/msi/nodemsi.sln

+10
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,34 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "custom_actions", "custom_ac
77
EndProject
88
Global
99
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|ARM64 = Debug|ARM64
1011
Debug|x64 = Debug|x64
1112
Debug|x86 = Debug|x86
13+
Release|ARM64 = Release|ARM64
1214
Release|x64 = Release|x64
1315
Release|x86 = Release|x86
1416
EndGlobalSection
1517
GlobalSection(ProjectConfigurationPlatforms) = postSolution
18+
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|ARM64.ActiveCfg = Debug|arm64
19+
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|ARM64.Build.0 = Debug|arm64
1620
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x64.ActiveCfg = Debug|x64
1721
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x64.Build.0 = Debug|x64
1822
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x86.ActiveCfg = Debug|x86
1923
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Debug|x86.Build.0 = Debug|x86
24+
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|ARM64.ActiveCfg = Release|arm64
25+
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|ARM64.Build.0 = Release|arm64
2026
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x64.ActiveCfg = Release|x64
2127
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x64.Build.0 = Release|x64
2228
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x86.ActiveCfg = Release|x86
2329
{1D808FF0-B5A9-4BE9-859D-B334B6F48BE2}.Release|x86.Build.0 = Release|x86
30+
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|ARM64.ActiveCfg = Debug|ARM64
31+
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|ARM64.Build.0 = Debug|ARM64
2432
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x64.ActiveCfg = Debug|x64
2533
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x64.Build.0 = Debug|x64
2634
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x86.ActiveCfg = Debug|Win32
2735
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Debug|x86.Build.0 = Debug|Win32
36+
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|ARM64.ActiveCfg = Release|ARM64
37+
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|ARM64.Build.0 = Release|ARM64
2838
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|x64.ActiveCfg = Release|x64
2939
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|x64.Build.0 = Release|x64
3040
{B70585F8-DAB7-40FA-9904-13CF53A73A06}.Release|x86.ActiveCfg = Release|Win32

tools/msvs/msi/nodemsi.wixproj

+10
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@
3434
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
3535
<DefineConstants>Debug;ProductVersion=$(NodeVersion);FullVersion=$(FullVersion);DistTypeDir=$(DistTypeDir);NoETW=$(NoETW);NpmSourceDir=..\..\..\Release\node-v$(FullVersion)-win-$(Platform)\node_modules\npm\;ProgramFilesFolderId=ProgramFiles64Folder</DefineConstants>
3636
</PropertyGroup>
37+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|arm64' ">
38+
<OutputPath>..\..\..\</OutputPath>
39+
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
40+
<DefineConstants>Debug;ProductVersion=$(NodeVersion);FullVersion=$(FullVersion);DistTypeDir=$(DistTypeDir);NoETW=$(NoETW);NpmSourceDir=..\..\..\Release\node-v$(FullVersion)-win-$(Platform)\node_modules\npm\;ProgramFilesFolderId=ProgramFiles64Folder</DefineConstants>
41+
</PropertyGroup>
42+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|arm64' ">
43+
<OutputPath>..\..\..\</OutputPath>
44+
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
45+
<DefineConstants>Debug;ProductVersion=$(NodeVersion);FullVersion=$(FullVersion);DistTypeDir=$(DistTypeDir);NoETW=$(NoETW);NpmSourceDir=..\..\..\Release\node-v$(FullVersion)-win-$(Platform)\node_modules\npm\;ProgramFilesFolderId=ProgramFiles64Folder</DefineConstants>
46+
</PropertyGroup>
3747
<PropertyGroup>
3848
<EnableProjectHarvesting>True</EnableProjectHarvesting>
3949
</PropertyGroup>

0 commit comments

Comments
 (0)