Skip to content

Commit b865f9d

Browse files
Julien Gillijoaocgreis
Julien Gilli
authored andcommitted
win: fix custom actions on Visual Studio != 2013
This is a port of 16bcd68 . Original commit message: The original change that added support for running custom actions during the install process (e7c84f8) assumed that Visual Studio 2013 is used to generate the installer file. However, that is not always the case, and older versions of Visual Studio should allow users to generate Windows installer files. This change makes the custom actions visual studio project use the visual studio version that is found by vcbuild.bat. Reviewed-By: João Reis <[email protected]> PR-URL: nodejs/node-v0.x-archive#25569
1 parent 071c860 commit b865f9d

File tree

2 files changed

+49
-15
lines changed

2 files changed

+49
-15
lines changed

tools/msvs/msi/custom_actions.vcxproj

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Label="ProjectConfigurations">
44
<ProjectConfiguration Include="Debug|Win32">
55
<Configuration>Debug</Configuration>
@@ -27,24 +27,24 @@
2727
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
2828
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
2929
<ConfigurationType>DynamicLibrary</ConfigurationType>
30-
<PlatformToolset>v120</PlatformToolset>
30+
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
3131
<CharacterSet>Unicode</CharacterSet>
3232
<WholeProgramOptimization>true</WholeProgramOptimization>
3333
</PropertyGroup>
3434
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
3535
<ConfigurationType>DynamicLibrary</ConfigurationType>
36-
<PlatformToolset>v120</PlatformToolset>
36+
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
3737
<CharacterSet>Unicode</CharacterSet>
3838
<WholeProgramOptimization>true</WholeProgramOptimization>
3939
</PropertyGroup>
4040
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
4141
<ConfigurationType>DynamicLibrary</ConfigurationType>
42-
<PlatformToolset>v120</PlatformToolset>
42+
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
4343
<CharacterSet>Unicode</CharacterSet>
4444
</PropertyGroup>
4545
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
4646
<ConfigurationType>DynamicLibrary</ConfigurationType>
47-
<PlatformToolset>v120</PlatformToolset>
47+
<PlatformToolset>$(PlatformToolset)</PlatformToolset>
4848
<CharacterSet>Unicode</CharacterSet>
4949
</PropertyGroup>
5050
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
@@ -81,7 +81,7 @@
8181
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
8282
<ClCompile>
8383
<Optimization>Disabled</Optimization>
84-
<AdditionalIncludeDirectories>$(WIX)sdk\VS2013\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
84+
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\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\VS2013\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
94+
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\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\VS2013\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
103+
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\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\VS2013\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
113+
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\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\VS2013\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
123+
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\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\VS2013\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
137+
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\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\VS2013\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
149+
<AdditionalIncludeDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\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\VS2013\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
163+
<AdditionalLibraryDirectories>$(WIX)sdk\VS$(GypMsvsVersion)\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
164164
<ModuleDefinitionFile>custom_actions.def</ModuleDefinitionFile>
165165
<GenerateDebugInformation>true</GenerateDebugInformation>
166166
<SubSystem>Windows</SubSystem>
@@ -178,4 +178,4 @@
178178
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
179179
<ImportGroup Label="ExtensionTargets">
180180
</ImportGroup>
181-
</Project>
181+
</Project>

vcbuild.bat

+35-1
Original file line numberDiff line numberDiff line change
@@ -109,43 +109,77 @@ if defined NIGHTLY set TAG=nightly-%NIGHTLY%
109109
@rem Set environment for msbuild
110110

111111
@rem Look for Visual Studio 2013
112+
echo Looking for Visual Studio 2013
112113
if not defined VS120COMNTOOLS goto vc-set-2012
113114
if not exist "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2012
115+
echo Found Visual Studio 2013
116+
if defined msi (
117+
echo Looking for WiX installation for Visual Studio 2013...
118+
if not exist "%WIX%\SDK\VS2013" (
119+
echo Failed to find WiX install for Visual Studio 2013
120+
goto vc-set-2012
121+
)
122+
)
114123
if "%VCVARS_VER%" NEQ "120" (
115124
call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat"
116125
SET VCVARS_VER=120
117126
)
118127
if not defined VCINSTALLDIR goto msbuild-not-found
119128
set GYP_MSVS_VERSION=2013
129+
set PLATFORM_TOOLSET=v120
120130
goto msbuild-found
121131

122132
:vc-set-2012
123133
@rem Look for Visual Studio 2012
134+
echo Looking for Visual Studio 2012
124135
if not defined VS110COMNTOOLS goto vc-set-2010
125136
if not exist "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat" goto vc-set-2010
137+
echo Found Visual Studio 2012
138+
if defined msi (
139+
echo Looking for WiX installation for Visual Studio 2012...
140+
if not exist "%WIX%\SDK\VS2012" (
141+
echo Failed to find WiX install for Visual Studio 2012
142+
goto vc-set-2010
143+
)
144+
)
126145
if "%VCVARS_VER%" NEQ "110" (
127146
call "%VS110COMNTOOLS%\..\..\vc\vcvarsall.bat"
128147
SET VCVARS_VER=110
129148
)
130149
if not defined VCINSTALLDIR goto msbuild-not-found
131150
set GYP_MSVS_VERSION=2012
151+
set PLATFORM_TOOLSET=v110
132152
goto msbuild-found
133153

134154
:vc-set-2010
155+
echo Looking for Visual Studio 2010
135156
if not defined VS100COMNTOOLS goto msbuild-not-found
136157
if not exist "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat" goto msbuild-not-found
158+
echo Found Visual Studio 2010
159+
if defined msi (
160+
echo Looking for WiX installation for Visual Studio 2010...
161+
if not exist "%WIX%\SDK\VS2010" (
162+
echo Failed to find WiX install for Visual Studio 2010
163+
goto wix-not-found
164+
)
165+
)
137166
if "%VCVARS_VER%" NEQ "100" (
138167
call "%VS100COMNTOOLS%\..\..\vc\vcvarsall.bat"
139168
SET VCVARS_VER=100
140169
)
141170
if not defined VCINSTALLDIR goto msbuild-not-found
142171
set GYP_MSVS_VERSION=2010
172+
set PLATFORM_TOOLSET=v100
143173
goto msbuild-found
144174

145175
:msbuild-not-found
146176
echo Failed to find Visual Studio installation.
147177
goto exit
148178

179+
:wix-not-found
180+
echo Build skipped. To generate installer, you need to install Wix.
181+
goto run
182+
149183
:msbuild-found
150184

151185
:project-gen
@@ -190,7 +224,7 @@ set NODE_VERSION=%NODE_VERSION%.%NIGHTLY%
190224

191225
:msibuild
192226
echo Building node-%NODE_VERSION%
193-
msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build /p:Configuration=%config% /p:Platform=%msiplatform% /p:NodeVersion=%NODE_VERSION% %noetw_msi_arg% %noperfctr_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
227+
msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build /p:PlatformToolset=%PLATFORM_TOOLSET% /p:GypMsvsVersion=%GYP_MSVS_VERSION% /p:Configuration=%config% /p:Platform=%msiplatform% /p:NodeVersion=%NODE_VERSION% %noetw_msi_arg% %noperfctr_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
194228
if errorlevel 1 goto exit
195229

196230
if defined nosign goto run

0 commit comments

Comments
 (0)