Skip to content

Commit f371562

Browse files
joaocgreisMylesBorins
authored andcommitted
build,win: support building MSI with VS2019
Explicitly pass the WiX SDK directory when building the MSI. WiX doesn't (yet?) have a directory for VS2019, so use the one for VS2017 which should be compatible. PR-URL: #30895 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Rich Trott <[email protected]>
1 parent 96a65e8 commit f371562

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
/*.swp
3838
/out
3939
/*.txt
40+
/*.msi
41+
/*.wixpdb
4042

4143
# === Rules for artifacts of `./configure` ===
4244
/icu_config.gypi
@@ -58,6 +60,9 @@ _UpgradeReport_Files/
5860
*.wixobj
5961
/tools/msvs/genfiles/
6062
/npm.wxs
63+
/tools/msvs/msi/Release/
64+
/tools/msvs/msi/obj/
65+
/tools/msvs/msi/x64/
6166
# Exclude MSVS files used for .msi file generation
6267
!tools/msvs/msi/custom_actions.vcxproj
6368
!tools/msvs/msi/nodemsi.sln

tools/msvs/msi/custom_actions.vcxproj

+8-8
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
8282
<ClCompile>
8383
<Optimization>Disabled</Optimization>
84-
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
84+
<AdditionalIncludeDirectories>$(WixSdkDir)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
8585
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
8686
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
8787
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -91,7 +91,7 @@
9191
</ClCompile>
9292
<Link>
9393
<AdditionalDependencies>msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
94-
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
94+
<AdditionalLibraryDirectories>$(WixSdkDir)\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
9595
<ModuleDefinitionFile>custom_actions.def</ModuleDefinitionFile>
9696
<GenerateDebugInformation>true</GenerateDebugInformation>
9797
<SubSystem>Windows</SubSystem>
@@ -100,7 +100,7 @@
100100
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
101101
<ClCompile>
102102
<Optimization>Disabled</Optimization>
103-
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
103+
<AdditionalIncludeDirectories>$(WixSdkDir)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
104104
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
105105
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
106106
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -110,7 +110,7 @@
110110
</ClCompile>
111111
<Link>
112112
<AdditionalDependencies>msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
113-
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
113+
<AdditionalLibraryDirectories>$(WixSdkDir)\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
114114
<ModuleDefinitionFile>custom_actions.def</ModuleDefinitionFile>
115115
<GenerateDebugInformation>true</GenerateDebugInformation>
116116
<SubSystem>Windows</SubSystem>
@@ -120,7 +120,7 @@
120120
<ClCompile>
121121
<Optimization>MaxSpeed</Optimization>
122122
<IntrinsicFunctions>true</IntrinsicFunctions>
123-
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
123+
<AdditionalIncludeDirectories>$(WixSdkDir)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
124124
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
125125
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
126126
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -134,7 +134,7 @@
134134
</ClCompile>
135135
<Link>
136136
<AdditionalDependencies>msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
137-
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
137+
<AdditionalLibraryDirectories>$(WixSdkDir)\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
138138
<ModuleDefinitionFile>custom_actions.def</ModuleDefinitionFile>
139139
<GenerateDebugInformation>true</GenerateDebugInformation>
140140
<SubSystem>Windows</SubSystem>
@@ -146,7 +146,7 @@
146146
<ClCompile>
147147
<Optimization>MaxSpeed</Optimization>
148148
<IntrinsicFunctions>true</IntrinsicFunctions>
149-
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
149+
<AdditionalIncludeDirectories>$(WixSdkDir)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
150150
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
151151
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
152152
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -160,7 +160,7 @@
160160
</ClCompile>
161161
<Link>
162162
<AdditionalDependencies>msi.lib;dutil.lib;wcautil.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
163-
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
163+
<AdditionalLibraryDirectories>$(WixSdkDir)\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
164164
<ModuleDefinitionFile>custom_actions.def</ModuleDefinitionFile>
165165
<GenerateDebugInformation>true</GenerateDebugInformation>
166166
<SubSystem>Windows</SubSystem>

vcbuild.bat

+5-3
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,10 @@ echo Looking for Visual Studio 2019
252252
set "VCINSTALLDIR="
253253
call tools\msvs\vswhere_usability_wrapper.cmd "[16.0,17.0)"
254254
if "_%VCINSTALLDIR%_" == "__" goto vs-set-2017
255+
set "WIXSDKDIR=%WIX%\SDK\VS2017"
255256
if defined msi (
256257
echo Looking for WiX installation for Visual Studio 2019...
257-
if not exist "%WIX%\SDK\VS2017" (
258+
if not exist "%WIXSDKDIR%" (
258259
echo Failed to find WiX install for Visual Studio 2019
259260
echo VS2019 support for WiX is only present starting at version 3.11
260261
goto vs-set-2017
@@ -287,9 +288,10 @@ if defined target_env if "%target_env%" NEQ "vs2017" goto msbuild-not-found
287288
echo Looking for Visual Studio 2017
288289
call tools\msvs\vswhere_usability_wrapper.cmd "[15.0,16.0)"
289290
if "_%VCINSTALLDIR%_" == "__" goto msbuild-not-found
291+
set "WIXSDKDIR=%WIX%\SDK\VS2017"
290292
if defined msi (
291293
echo Looking for WiX installation for Visual Studio 2017...
292-
if not exist "%WIX%\SDK\VS2017" (
294+
if not exist "%WIXSDKDIR%" (
293295
echo Failed to find WiX install for Visual Studio 2017
294296
echo VS2017 support for WiX is only present starting at version 3.11
295297
goto msbuild-not-found
@@ -474,7 +476,7 @@ if not defined msi goto install-doctools
474476
echo Building node-v%FULLVERSION%-%target_arch%.msi
475477
set "msbsdk="
476478
if defined WindowsSDKVersion set "msbsdk=/p:WindowsTargetPlatformVersion=%WindowsSDKVersion:~0,-1%"
477-
msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build %msbsdk% /p:PlatformToolset=%PLATFORM_TOOLSET% /p:GypMsvsVersion=%GYP_MSVS_VERSION% /p:Configuration=%config% /p:Platform=%target_arch% /p:NodeVersion=%NODE_VERSION% /p:FullVersion=%FULLVERSION% /p:DistTypeDir=%DISTTYPEDIR% %noetw_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
479+
msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build %msbsdk% /p:PlatformToolset=%PLATFORM_TOOLSET% /p:WixSdkDir="%WIXSDKDIR%" /p:Configuration=%config% /p:Platform=%target_arch% /p:NodeVersion=%NODE_VERSION% /p:FullVersion=%FULLVERSION% /p:DistTypeDir=%DISTTYPEDIR% %noetw_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
478480
if errorlevel 1 goto exit
479481

480482
if not defined sign goto upload

0 commit comments

Comments
 (0)