summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRefael Ackermann <refack@gmail.com>2019-04-06 14:22:45 -0400
committerRefael Ackermann <refack@gmail.com>2019-04-12 14:12:40 -0400
commit25df3c10f4a54d04e0391d6b9673059f6a7918bd (patch)
tree0121301f5a77d3e833f728544c55e2f4f3c41988
parent7b854959e79a1ae4cb325123ba118b83a619aaea (diff)
downloadandroid-node-v8-25df3c10f4a54d04e0391d6b9673059f6a7918bd.tar.gz
android-node-v8-25df3c10f4a54d04e0391d6b9673059f6a7918bd.tar.bz2
android-node-v8-25df3c10f4a54d04e0391d6b9673059f6a7918bd.zip
build,win: put all compilation artifacts into `out`
* Add symlink from Release to out\Release for backward compat PR-URL: https://github.com/nodejs/node/pull/27149 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
-rw-r--r--.gitignore10
-rw-r--r--common.gypi7
-rwxr-xr-xconfigure.py2
-rw-r--r--node.gyp25
-rw-r--r--node.gypi24
-rw-r--r--vcbuild.bat19
6 files changed, 51 insertions, 36 deletions
diff --git a/.gitignore b/.gitignore
index 86664b4146..7e26394862 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,23 +41,19 @@ coverage/
/out
-# various stuff that VC++ produces/uses
-Debug/
-!**/node_modules/debug/
-Release/
-!**/node_modules/**/release
+# various stuff that VC++ produces/uses and is not in /out
+/Debug/
+/Release/
!doc/blog/**
*.sln
!nodemsi.sln
*.suo
-*.vcproj
*.vcxproj
!custom_actions.vcxproj
*.vcxproj.user
*.vcxproj.filters
UpgradeLog*.XML
_UpgradeReport_Files/
-ipch/
*.sdf
*.opensdf
*.VC.db
diff --git a/common.gypi b/common.gypi
index 11b5d3b7ae..8676d28ca5 100644
--- a/common.gypi
+++ b/common.gypi
@@ -1,5 +1,6 @@
{
'variables': {
+ 'configuring_node%': 0,
'asan%': 0,
'werror': '', # Turn off -Werror in V8 build.
'visibility%': 'hidden', # V8's visibility setting
@@ -280,6 +281,12 @@
'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin
'conditions': [
+ [ 'configuring_node', {
+ 'msvs_configuration_attributes': {
+ 'OutputDirectory': '<(DEPTH)/out/$(Configuration)/',
+ 'IntermediateDirectory': '$(OutDir)obj/$(ProjectName)/'
+ },
+ }],
[ 'target_arch=="x64"', {
'msvs_configuration_platform': 'x64',
}],
diff --git a/configure.py b/configure.py
index c23af24873..d78a1caf64 100755
--- a/configure.py
+++ b/configure.py
@@ -1625,7 +1625,7 @@ if bin_override:
write('config.mk', do_not_edit + config)
-gyp_args = ['--no-parallel']
+gyp_args = ['--no-parallel', '-Dconfiguring_node=1']
if options.use_ninja:
gyp_args += ['-f', 'ninja']
diff --git a/node.gyp b/node.gyp
index 2ad76020f5..9d6d0dd7cb 100644
--- a/node.gyp
+++ b/node.gyp
@@ -251,6 +251,31 @@
],
},
+ 'target_defaults': {
+ # Putting these explicitly here so not to depend on `common.gypi`.
+ # `common.gypi` need to be more general because it is used to build userland native addons.
+ # Refs: https://github.com/nodejs/node-gyp/issues/1118
+ 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
+ 'xcode_settings': {
+ 'WARNING_CFLAGS': [
+ '-Wall',
+ '-Wendif-labels',
+ '-W',
+ '-Wno-unused-parameter',
+ '-Werror=undefined-inline',
+ ],
+ },
+
+ # Relevant only for x86.
+ # Refs: https://github.com/nodejs/node/pull/25852
+ # Refs: https://docs.microsoft.com/en-us/cpp/build/reference/safeseh-image-has-safe-exception-handlers
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'ImageHasSafeExceptionHandlers': 'false',
+ },
+ },
+ },
+
'targets': [
{
'target_name': '<(node_core_target_name)',
diff --git a/node.gypi b/node.gypi
index b53ccfd6be..d6c4c26698 100644
--- a/node.gypi
+++ b/node.gypi
@@ -24,36 +24,20 @@
},
'force_load%': '<(force_load)',
},
- # Putting these explicitly here so not to be dependant on common.gypi.
- 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
- 'xcode_settings': {
- 'WARNING_CFLAGS': [
- '-Wall',
- '-Wendif-labels',
- '-W',
- '-Wno-unused-parameter',
- '-Werror=undefined-inline',
- ],
- },
- # Relevant only for x86.
- # Refs: https://docs.microsoft.com/en-us/cpp/build/reference/safeseh-image-has-safe-exception-handlers
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'ImageHasSafeExceptionHandlers': 'false',
- },
- },
+
'conditions': [
[ 'clang==1', {
'cflags': [ '-Werror=undefined-inline', ]
}],
- [ 'node_shared=="false"', {
+ [ 'node_shared=="false" and "<(_type)"=="executable"', {
'msvs_settings': {
'VCManifestTool': {
'EmbedManifest': 'true',
'AdditionalManifestFiles': 'src/res/node.exe.extra.manifest'
}
},
- }, {
+ }],
+ [ 'node_shared=="true"', {
'defines': [
'NODE_SHARED_MODE',
],
diff --git a/vcbuild.bat b/vcbuild.bat
index 3128bc5db4..73405b46ed 100644
--- a/vcbuild.bat
+++ b/vcbuild.bat
@@ -211,7 +211,7 @@ if not "%target%"=="Clean" goto skip-clean
rmdir /Q /S "%~dp0%config%\%TARGET_NAME%" > nul 2> nul
:skip-clean
-if defined noprojgen if defined nobuild if not defined sign if not defined msi goto licensertf
+if defined noprojgen if defined nobuild goto :after-build
@rem Set environment for msbuild
@@ -301,7 +301,7 @@ where /R . /T *.gyp? >> .gyp_configure_stamp
:msbuild
@rem Skip build if requested.
-if defined nobuild goto sign
+if defined nobuild goto :after-build
@rem Build the sln with msbuild.
set "msbcpu=/m:2"
@@ -319,10 +319,13 @@ if defined msbuild_args set "extra_msbuild_args=%extra_msbuild_args% %msbuild_ar
msbuild node.sln %msbcpu% /t:%target% /p:Configuration=%config% /p:Platform=%msbplatform% /clp:NoItemAndPropertyList;Verbosity=minimal /nologo %extra_msbuild_args%
if errorlevel 1 (
if not defined project_generated echo Building Node with reused solution failed. To regenerate project files use "vcbuild projgen"
- goto exit
+ exit /B 1
)
if "%target%" == "Clean" goto exit
+:after-build
+if EXIST out\%config% mklink /D %config% out\%config%
+
:sign
@rem Skip signing unless the `sign` option was specified.
if not defined sign goto licensertf
@@ -334,7 +337,7 @@ if errorlevel 1 echo Failed to sign exe&goto exit
@rem Skip license.rtf generation if not requested.
if not defined licensertf goto stage_package
-%config%\node.exe tools\license2rtf.js < LICENSE > %config%\license.rtf
+%node_exe% tools\license2rtf.js < LICENSE > %config%\license.rtf
if errorlevel 1 echo Failed to generate license.rtf&goto exit
:stage_package
@@ -553,7 +556,7 @@ goto node-tests
:node-test-inspect
set USE_EMBEDDED_NODE_INSPECT=1
-%config%\node tools\test-npm-package.js --install deps\node-inspect test
+%node_exe% tools\test-npm-package.js --install deps\node-inspect test
goto node-tests
:node-tests
@@ -635,12 +638,12 @@ if defined lint_js_ci goto lint-js-ci
if not defined lint_js goto lint-md-build
if not exist tools\node_modules\eslint goto no-lint
echo running lint-js
-%config%\node tools\node_modules\eslint\bin\eslint.js --cache --report-unused-disable-directives --rule "linebreak-style: 0" --ext=.js,.mjs,.md .eslintrc.js benchmark doc lib test tools
+%node_exe% tools\node_modules\eslint\bin\eslint.js --cache --report-unused-disable-directives --rule "linebreak-style: 0" --ext=.js,.mjs,.md .eslintrc.js benchmark doc lib test tools
goto lint-md-build
:lint-js-ci
echo running lint-js-ci
-%config%\node tools\lint-js.js -J -f tap -o test-eslint.tap benchmark doc lib test tools
+%node_exe% tools\lint-js.js -J -f tap -o test-eslint.tap benchmark doc lib test tools
goto lint-md-build
:no-lint
@@ -663,7 +666,7 @@ for /D %%D IN (doc\*) do (
set "lint_md_files="%%F" !lint_md_files!"
)
)
-%config%\node tools\lint-md.js -q -f %lint_md_files%
+%node_exe% tools\lint-md.js -q -f %lint_md_files%
ENDLOCAL
goto exit