From 89428c7a2d5ec061f6c9d4787effc67a371a2401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 2 Jun 2020 11:04:17 +0200 Subject: [PATCH] build: drop support for VS2017 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/33694 Reviewed-By: Bartosz Sosnowski Reviewed-By: Richard Lau Reviewed-By: Ruben Bridgewater Reviewed-By: Beth Griggs Reviewed-By: Jiawen Geng Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Shelley Vohr Reviewed-By: João Reis Reviewed-By: Rich Trott Reviewed-By: Zeyu Yang Reviewed-By: Matheus Marchini --- BUILDING.md | 9 ++-- tools/msvs/install_tools/install_tools.bat | 4 +- vcbuild.bat | 50 +++------------------- 3 files changed, 12 insertions(+), 51 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 0a8f24c694222e..b549fec555ed9e 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -159,7 +159,7 @@ Depending on the host platform, the selection of toolchains may vary. | Operating System | Compiler Versions | | ---------------- | -------------------------------------------------------------- | | Linux | GCC >= 6.3 | -| Windows | Visual Studio >= 2017 with the Windows 10 SDK on a 64-bit host | +| Windows | Visual Studio >= 2019 with the Windows 10 SDK on a 64-bit host | | macOS | Xcode >= 10 (Apple LLVM >= 10) | ### Official binary platforms and toolchains @@ -528,7 +528,7 @@ to run it again before invoking `make -j4`. * [Python 2.7](https://www.python.org/downloads/) * The "Desktop development with C++" workload from - [Visual Studio 2017 or 2019](https://visualstudio.microsoft.com/downloads/) or + [Visual Studio 2019](https://visualstudio.microsoft.com/downloads/) or the "Visual C++ build tools" workload from the [Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019), with the default optional components. @@ -543,8 +543,7 @@ to run it again before invoking `make -j4`. Optional requirements to build the MSI installer package: * The [WiX Toolset v3.11](https://wixtoolset.org/releases/) and the - [Wix Toolset Visual Studio 2017 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WixToolsetVisualStudio2017Extension) - or the [Wix Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=WixToolset.WixToolsetVisualStudio2019Extension). + [Wix Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=WixToolset.WixToolsetVisualStudio2019Extension). Optional requirements for compiling for Windows 10 on ARM (ARM64): @@ -569,7 +568,7 @@ packages: * [Python 3.x](https://chocolatey.org/packages/python) and [legacy Python](https://chocolatey.org/packages/python2) * [Visual Studio 2019 Build Tools](https://chocolatey.org/packages/visualstudio2019buildtools) - with [Visual C++ workload](https://chocolatey.org/packages/visualstudio2017-workload-vctools) + with [Visual C++ workload](https://chocolatey.org/packages/visualstudio2019-workload-vctools) * [NetWide Assembler](https://chocolatey.org/packages/nasm) To install Node.js prerequisites using diff --git a/tools/msvs/install_tools/install_tools.bat b/tools/msvs/install_tools/install_tools.bat index eac70e2159fa86..334763113af0d3 100644 --- a/tools/msvs/install_tools/install_tools.bat +++ b/tools/msvs/install_tools/install_tools.bat @@ -39,7 +39,7 @@ echo license terms or not. Read and understand the license terms of the packages echo being installed and their dependencies prior to installation: echo - https://chocolatey.org/packages/chocolatey echo - https://chocolatey.org/packages/python -echo - https://chocolatey.org/packages/visualstudio2017-workload-vctools +echo - https://chocolatey.org/packages/visualstudio2019-workload-vctools echo. echo This script is provided AS-IS without any warranties of any kind echo ---------------------------------------------------------------- @@ -52,4 +52,4 @@ pause cls -"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command Start-Process '%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe' -ArgumentList '-NoProfile -InputFormat None -ExecutionPolicy Bypass -Command iex ((New-Object System.Net.WebClient).DownloadString(''https://chocolatey.org/install.ps1'')); choco upgrade -y python visualstudio2017-workload-vctools; Read-Host ''Type ENTER to exit'' ' -Verb RunAs +"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command Start-Process '%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe' -ArgumentList '-NoProfile -InputFormat None -ExecutionPolicy Bypass -Command iex ((New-Object System.Net.WebClient).DownloadString(''https://chocolatey.org/install.ps1'')); choco upgrade -y python visualstudio2019-workload-vctools; Read-Host ''Type ENTER to exit'' ' -Verb RunAs diff --git a/vcbuild.bat b/vcbuild.bat index f1e83ead5d372c..0cec4409d4e690 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -79,7 +79,6 @@ if /i "%1"=="ia32" set target_arch=x86&goto arg-ok if /i "%1"=="x86" set target_arch=x86&goto arg-ok if /i "%1"=="x64" set target_arch=x64&goto arg-ok if /i "%1"=="arm64" set target_arch=arm64&goto arg-ok -if /i "%1"=="vs2017" set target_env=vs2017&goto arg-ok if /i "%1"=="vs2019" set target_env=vs2019&goto arg-ok if /i "%1"=="noprojgen" set noprojgen=1&goto arg-ok if /i "%1"=="projgen" set projgen=1&goto arg-ok @@ -175,7 +174,6 @@ if defined package set stage_package=1 set "node_exe=%config%\node.exe" set "node_gyp_exe="%node_exe%" deps\npm\node_modules\node-gyp\bin\node-gyp" set "npm_exe="%~dp0%node_exe%" %~dp0deps\npm\bin\npm-cli.js" -if "%target_env%"=="vs2017" set "node_gyp_exe=%node_gyp_exe% --msvs_version=2017" if "%target_env%"=="vs2019" set "node_gyp_exe=%node_gyp_exe% --msvs_version=2019" :: skip building if the only argument received was lint @@ -242,25 +240,25 @@ if %target_arch%==x86 if %msvs_host_arch%==x86 set vcvarsall_arg=x86 @rem Look for Visual Studio 2019 :vs-set-2019 -if defined target_env if "%target_env%" NEQ "vs2019" goto vs-set-2017 +if defined target_env if "%target_env%" NEQ "vs2019" goto msbuild-not-found echo Looking for Visual Studio 2019 @rem VCINSTALLDIR may be set if run from a VS Command Prompt and needs to be @rem cleared first as vswhere_usability_wrapper.cmd doesn't when it fails to @rem detect the version searched for set "VCINSTALLDIR=" call tools\msvs\vswhere_usability_wrapper.cmd "[16.0,17.0)" -if "_%VCINSTALLDIR%_" == "__" goto vs-set-2017 +if "_%VCINSTALLDIR%_" == "__" goto msbuild-not-found set "WIXSDKDIR=%WIX%\SDK\VS2017" if defined msi ( echo Looking for WiX installation for Visual Studio 2019... if not exist "%WIXSDKDIR%" ( echo Failed to find WiX install for Visual Studio 2019 echo VS2019 support for WiX is only present starting at version 3.11 - goto vs-set-2017 + goto msbuild-not-found ) if not exist "%VCINSTALLDIR%\..\MSBuild\Microsoft\WiX" ( echo Failed to find the WiX Toolset Visual Studio 2019 Extension - goto vs-set-2017 + goto msbuild-not-found ) ) @rem check if VS2019 is already setup, and for the requested arch @@ -272,7 +270,7 @@ set "VSCMD_START_DIR=%CD%" set vcvars_call="%VCINSTALLDIR%\Auxiliary\Build\vcvarsall.bat" %vcvarsall_arg% echo calling: %vcvars_call% call %vcvars_call% -if errorlevel 1 goto vs-set-2017 +if errorlevel 1 goto msbuild-not-found if defined DEBUG_HELPER @ECHO ON :found_vs2019 echo Found MSVS version %VisualStudioVersion% @@ -280,42 +278,6 @@ set GYP_MSVS_VERSION=2019 set PLATFORM_TOOLSET=v142 goto msbuild-found -@rem Look for Visual Studio 2017 -:vs-set-2017 -if defined target_env if "%target_env%" NEQ "vs2017" goto msbuild-not-found -echo Looking for Visual Studio 2017 -call tools\msvs\vswhere_usability_wrapper.cmd "[15.0,16.0)" -if "_%VCINSTALLDIR%_" == "__" goto msbuild-not-found -set "WIXSDKDIR=%WIX%\SDK\VS2017" -if defined msi ( - echo Looking for WiX installation for Visual Studio 2017... - if not exist "%WIXSDKDIR%" ( - echo Failed to find WiX install for Visual Studio 2017 - echo VS2017 support for WiX is only present starting at version 3.11 - goto msbuild-not-found - ) - if not exist "%VCINSTALLDIR%\..\MSBuild\Microsoft\WiX" ( - echo Failed to find the WiX Toolset Visual Studio 2017 Extension - goto msbuild-not-found - ) -) -@rem check if VS2017 is already setup, and for the requested arch -if "_%VisualStudioVersion%_" == "_15.0_" if "_%VSCMD_ARG_TGT_ARCH%_"=="_%target_arch%_" goto found_vs2017 -@rem need to clear VSINSTALLDIR for vcvarsall to work as expected -set "VSINSTALLDIR=" -@rem prevent VsDevCmd.bat from changing the current working directory -set "VSCMD_START_DIR=%CD%" -set vcvars_call="%VCINSTALLDIR%\Auxiliary\Build\vcvarsall.bat" %vcvarsall_arg% -echo calling: %vcvars_call% -call %vcvars_call% -if errorlevel 1 goto msbuild-not-found -if defined DEBUG_HELPER @ECHO ON -:found_vs2017 -echo Found MSVS version %VisualStudioVersion% -set GYP_MSVS_VERSION=2017 -set PLATFORM_TOOLSET=v141 -goto msbuild-found - :msbuild-not-found echo Failed to find a suitable Visual Studio installation. echo Try to run in a "Developer Command Prompt" or consult @@ -705,7 +667,7 @@ set exit_code=1 goto exit :help -echo vcbuild.bat [debug/release] [msi] [doc] [test/test-all/test-addons/test-js-native-api/test-node-api/test-benchmark/test-internet/test-pummel/test-simple/test-message/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [noetw] [ltcg] [licensetf] [sign] [ia32/x86/x64/arm64] [vs2017/vs2019] [download-all] [lint/lint-ci/lint-js/lint-js-ci/lint-md] [lint-md-build] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [cctest] [no-cctest] [openssl-no-asm] +echo vcbuild.bat [debug/release] [msi] [doc] [test/test-all/test-addons/test-js-native-api/test-node-api/test-benchmark/test-internet/test-pummel/test-simple/test-message/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [noetw] [ltcg] [licensetf] [sign] [ia32/x86/x64/arm64] [vs2019] [download-all] [lint/lint-ci/lint-js/lint-js-ci/lint-md] [lint-md-build] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [cctest] [no-cctest] [openssl-no-asm] echo Examples: echo vcbuild.bat : builds release build echo vcbuild.bat debug : builds debug build