mirror of https://github.com/nodejs/node.git
win,msi: install tools for native modules
Add a dialog during installation with information about native modules that can optionally run a Boxstarter script at the end of the installation. This script can also be run from Start menu. Fixes: https://github.com/nodejs/node/issues/22311 PR-URL: https://github.com/nodejs/node/pull/22645 Reviewed-By: Richard Lau <riclau@uk.ibm.com>pull/22645/merge
parent
54e76fb873
commit
39937938d7
|
@ -0,0 +1,25 @@
|
|||
@echo off
|
||||
|
||||
echo ====================================================
|
||||
echo Tools for Node.js Native Modules Installation Script
|
||||
echo ====================================================
|
||||
echo.
|
||||
echo This Boxstarter script will install Python and the Visual Studio Build Tools,
|
||||
echo necessary to compile Node.js native modules. All necessary Windows updates
|
||||
echo will also be installed.
|
||||
echo.
|
||||
echo This will require about 3 Gb of free disk space, plus any space necessary to
|
||||
echo install Windows updates.
|
||||
echo.
|
||||
echo This will take a while to run. Your computer may reboot during the
|
||||
echo installation, and will resume automatically.
|
||||
echo.
|
||||
echo Please close all open programs for the duration of the installation.
|
||||
echo.
|
||||
echo You can close this window to stop now. This script can be invoked from the
|
||||
echo Start menu. Detailed instructions to install these tools manually are
|
||||
echo available at https://github.com/nodejs/node-gyp#on-windows
|
||||
echo.
|
||||
pause
|
||||
|
||||
"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://boxstarter.org/bootstrapper.ps1')); get-boxstarter -Force; Install-BoxstarterPackage -PackageName '%~dp0\install_tools.txt'"
|
|
@ -0,0 +1,3 @@
|
|||
choco upgrade -y python2
|
||||
choco upgrade -y visualstudio2017buildtools
|
||||
choco upgrade -y visualstudio2017-workload-vctools
|
|
@ -8,6 +8,14 @@
|
|||
|
||||
<String Id="MajorUpgrade_DowngradeErrorMessage">A later version of [ProductName] is already installed. Setup will now exit.</String>
|
||||
|
||||
<String Id="NativeToolsDlg_Title">[ProductName] Setup</String>
|
||||
<String Id="NativeToolsDlgTitle">{\WixUI_Font_Title}Tools for Native Modules</String>
|
||||
<String Id="NativeToolsDlgDescription">Optionally install the tools necessary to compile native modules.</String>
|
||||
<String Id="NativeToolsDlgBannerBitmap">WixUI_Bmp_Banner</String>
|
||||
<String Id="NativeToolsDlgIntro">Some npm modules need to be compiled from C/C++ when installing. If you want to be able to install such modules, some tools (Python 2 and Visual Studio Build Tools) need to be installed.</String>
|
||||
<String Id="NativeToolsDlgInstallCheckbox">Automatically install the necessary tools. The script will pop-up in a new window after the installation completes.</String>
|
||||
<String Id="NativeToolsDlgManualDetails">Alternatively, follow the instructions at <![CDATA[<a href="https://github.com/nodejs/node-gyp#on-windows">https://github.com/nodejs/node-gyp#on-windows</a>]]> to install the dependencies yourself.</String>
|
||||
|
||||
<!-- References like [ProductName] or $(var.ProductName) don't seem to work in Title attributes -->
|
||||
<String Id="NodeRuntime_Title">Node.js runtime</String>
|
||||
<String Id="NodeRuntime_Description">Install the core [ProductName] runtime (node.exe).</String>
|
||||
|
|
|
@ -72,6 +72,8 @@
|
|||
<ComponentRef Id="NodeVarsScript"/>
|
||||
<ComponentRef Id="NodeStartMenu"/>
|
||||
<ComponentRef Id="AppData" />
|
||||
<ComponentRef Id="InstallToolsBat" />
|
||||
<ComponentRef Id="InstallToolsTxt" />
|
||||
<ComponentGroupRef Id="Product.Generated"/>
|
||||
|
||||
<Feature Id="NodePerfCtrSupport"
|
||||
|
@ -162,6 +164,14 @@
|
|||
<File Id="nodevars.bat" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\nodevars.bat"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="InstallToolsBat">
|
||||
<File Id="InstallToolsBat" KeyPath="yes" Source="$(var.RepoDir)\tools\msvs\install_tools\install_tools.bat"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="InstallToolsTxt">
|
||||
<File Id="InstallToolsTxt" Source="$(var.RepoDir)\tools\msvs\install_tools\install_tools.txt"/>
|
||||
</Component>
|
||||
|
||||
<?if $(var.NoPerfCtr) != 1 ?>
|
||||
<Component Id="NodePerfCtrSupport">
|
||||
<File Id="node_perfctr_provider_man" Name="node_perfctr_provider.man" Source="$(var.RepoDir)\src\res\node_perfctr_provider.man">
|
||||
|
@ -195,6 +205,12 @@
|
|||
Arguments='/k "[INSTALLDIR]nodevars.bat"'
|
||||
Show="normal"
|
||||
WorkingDirectory="INSTALLDIR"/>
|
||||
<Shortcut Id="InstallToolsShortcut"
|
||||
Name="Install Additional Tools for Node.js"
|
||||
Target="[%ComSpec]"
|
||||
Arguments='/d /c "[INSTALLDIR]install_tools.bat"'
|
||||
Show="normal"
|
||||
WorkingDirectory="INSTALLDIR"/>
|
||||
<Shortcut Id="NodeExecutableShortcut"
|
||||
Name="Node.js"
|
||||
Target="[INSTALLDIR]node.exe"
|
||||
|
@ -310,6 +326,9 @@
|
|||
Execute="immediate"
|
||||
Return="check" />
|
||||
|
||||
<Property Id="WixShellExecTarget" Value="[#InstallToolsBat]" />
|
||||
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" />
|
||||
|
||||
<InstallUISequence>
|
||||
<Custom Action='SetInstallScope' Before='FindRelatedProducts'/>
|
||||
</InstallUISequence>
|
||||
|
@ -340,6 +359,23 @@
|
|||
<DialogRef Id="InstallDirDlg"/>
|
||||
<DialogRef Id="BrowseDlg"/>
|
||||
<DialogRef Id="InvalidDirDlg"/>
|
||||
<Dialog Id="NativeToolsDlg" Width="370" Height="270" Title="!(loc.NativeToolsDlg_Title)">
|
||||
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.NativeToolsDlgBannerBitmap)" />
|
||||
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.NativeToolsDlgTitle)" />
|
||||
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.NativeToolsDlgDescription)" />
|
||||
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
|
||||
|
||||
<Control Id="Intro" Type="Text" X="20" Y="65" Width="330" Height="30" NoPrefix="yes" Text="!(loc.NativeToolsDlgIntro)" />
|
||||
<Control Id="InstallCheckbox" Type="CheckBox" X="20" Y="105" Width="330" Height="30" Property="NATIVETOOLSCHECKBOX" CheckBoxValue="1" Text="!(loc.NativeToolsDlgInstallCheckbox)" />
|
||||
<Control Id="ManualDetails" Type="Hyperlink" X="20" Y="140" Width="330" Height="30" Text="!(loc.NativeToolsDlgManualDetails)" />
|
||||
|
||||
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
||||
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
|
||||
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
|
||||
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
|
||||
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
|
||||
</Control>
|
||||
</Dialog>
|
||||
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
|
||||
|
@ -350,7 +386,6 @@
|
|||
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="10">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="10">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="20">1</Publish>
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">NOT Installed OR WixUI_InstallMode = "Change"</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">Installed AND PATCH</Publish>
|
||||
|
@ -361,7 +396,11 @@
|
|||
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
|
||||
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">Installed</Publish>
|
||||
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="2">NOT Installed</Publish>
|
||||
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="NativeToolsDlg">1</Publish>
|
||||
<Publish Dialog="NativeToolsDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg">1</Publish>
|
||||
<Publish Dialog="NativeToolsDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">NATIVETOOLSCHECKBOX = 1</Publish>
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
|
||||
|
||||
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="!(loc.WIXUI_EXITDIALOGOPTIONALTEXT)"/>
|
||||
</UI>
|
||||
|
|
Loading…
Reference in New Issue