This commit tries to make it simpler to add unit tests (cctest) for
code that needs to test node core funtionality but that might not be
appropriate as an addon or a JavaScript test. An example of this could
be adding functionality targeted for situations when Node itself is
embedded.
Currently it was not as easy, or efficient, as one would have hoped to
add such tests. The object output directories vary for different
operating systems which we need to link to so that we don't have an
additional compilation step.
PR-URL: https://github.com/nodejs/node/pull/11956
Ref: https://github.com/nodejs/node/pull/9163
Reviewed-By: James M Snell <jasnell@gmail.com>
Add a compile_commands.json generator for use with clang-based tooling.
Pass the (undocumented) -C switch to configure to make it generate the
files in out/Debug and out/Release.
PR-URL: https://github.com/nodejs/node/pull/7986
Reviewed-By: James M Snell <jasnell@gmail.com>
Required to support the shared library builds on AIX - this sets the
shared library suffix within GYP to .a instead of .so on AIX
My patch: https://codereview.chromium.org/2492233002/ was landed as
as part of this one which fixed some other (not required, but
included for completeness of the backport) changes:
Ref: https://codereview.chromium.org/2511733005/
Pulling in https://codereview.chromium.org/2019133002/ in its current
state, as gyp seems to be largely abandoned as a project.
Original commit message:
Hash intermediate file name to avoid ENAMETOOLONG
Hash the intermediate Makefile target used for multi-output rules
so that it still works when the involved file names are very long.
Since the intermediate file's name is effectively arbitrary, this
does not come with notable behavioural changes.
The `import hashlib` boilerplate is taken directly
from `xcodeproj_file.py`.
Concretely, this makes the V8 inspector build currently fail when long
pathnames are involved, notably when using ecryptfs which has a lower
file name length limit.
Fixes: https://github.com/nodejs/node/issues/7959
Ref: https://github.com/nodejs/node/issues/7510
PR-URL: https://github.com/nodejs/node/pull/7963
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Gyp defaults to gcc/g++ if CC.host/CXX.host is unset. This is not
suitable for environments that only uses the clang toolchain.
Since we already assume that the user will provide clang/clang++
through CC/CXX, lean against it (then drop to gcc/g++).
Also apply the same logic for link/ar for consistency although
it doesn't affect us.
PR-URL: https://github.com/nodejs/node/pull/6173
Fixes: https://github.com/nodejs/node/issues/6152
Reviewed-By: João Reis <reis@janeasystems.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
gyp tests are not performed in iojs and it's size about 8M bytes. We
can check gyp tests outside of iojs and reduce the size of the
repository by removing them.
PR-URL: https://github.com/iojs/io.js/pull/1350
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
For some reason, aa5961a445 caused
'make test' to rebuild the entire project every time. Applying
the fix to the other place where gyp chops up the argument list
makes it behave properly.
Older bash versions in `sh -c` mode don't parse `export FOO=42` constructs,
they bail out with a "FOO is not an identifier" error message.
This was fixed somewhere between bash 4.1.0 and 4.1.5 but let's support the
older versions anyway.
Hoist common settings into common.gypi.
Restrict v8's common.gypi to v8 projects.
Ensure v8 doesn't use /MP in debug builds.
Add basic settings for other platforms.
Make uv import common.gypi properly.
Remove LTCG warning.