build, tools, win: add nasm detection for OpenSSL

OpenSSL-1.1.0 requires the nasm assembler for building asm files on
Windows. This finds nasm at \Program Files\NASM\nasm.exe or
\ProgramFiles(x86)\NASM\nasm.exe in vcbuild.bat for users who did not
add its path in their enviroments.

Fixes: https://github.com/nodejs/build/issues/1190
Fixes: https://github.com/nodejs/node/issues/4270
PR-URL: https://github.com/nodejs/node/pull/19794
Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
This commit is contained in:
João Reis 2018-03-24 22:56:59 +00:00 коммит произвёл Shigeki Ohtsu
Родитель ae096ba27c
Коммит eec659c138
3 изменённых файлов: 25 добавлений и 0 удалений

Просмотреть файл

@ -258,6 +258,9 @@ Prerequisites:
* Basic Unix tools required for some tests,
[Git for Windows](http://git-scm.com/download/win) includes Git Bash
and tools which can be included in the global `PATH`.
* **Optional** (for OpenSSL assembler modules): the [NetWide Assembler](http://www.nasm.us/),
if not installed in the default location it needs to be manually added
to `PATH`.
* **Optional** (to build the MSI): the [WiX Toolset v3.11](http://wixtoolset.org/releases/)
and the [Wix Toolset Visual Studio 2017 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WixToolsetVisualStudio2017Extension).

19
tools/msvs/find_nasm.cmd Normal file
Просмотреть файл

@ -0,0 +1,19 @@
@IF NOT DEFINED DEBUG_HELPER @ECHO OFF
ECHO Looking for NASM
FOR /F "delims=" %%a IN ('where nasm 2^> NUL') DO (
EXIT /B 0
)
IF EXIST "%ProgramFiles%\NASM\nasm.exe" (
SET "Path=%Path%;%ProgramFiles%\NASM"
EXIT /B 0
)
IF EXIST "%ProgramFiles(x86)%\NASM\nasm.exe" (
SET "Path=%Path%;%ProgramFiles(x86)%\NASM"
EXIT /B 0
)
EXIT /B 1

Просмотреть файл

@ -170,6 +170,9 @@ if "%target%"=="Clean" rmdir /S /Q %~dp0deps\icu
call tools\msvs\find_python.cmd
if errorlevel 1 goto :exit
call tools\msvs\find_nasm.cmd
if errorlevel 1 echo Could not find NASM, it will not be used.
call :getnodeversion || exit /b 1
if defined TAG set configure_flags=%configure_flags% --tag=%TAG%