stduhpf
0ffa607dee
tools: fix vcbuild test when path contain spaces
...
PR-URL: https://github.com/nodejs/node/pull/56481
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2025-12-09 11:18:58 +00:00
Michaël Zasso
934d90735a
build: add support for Visual Studio 2026
...
PR-URL: https://github.com/nodejs/node/pull/60727
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
2025-11-19 16:01:37 +00:00
Jacob Nichols
94cbb77582
build: use call command when calling python configure
...
PR-URL: https://github.com/nodejs/node/pull/60098
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com >
2025-10-21 10:21:33 +00:00
Chengzhong Wu
80245da920
tools: add v8windbg target
...
PR-URL: https://github.com/nodejs/node/pull/59767
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
2025-09-07 21:39:13 +00:00
Gerhard Stöbich
a6bc06fa06
build: escape > metachar in vcbuild
...
Escape the > metachar in vcbuild.bat to avoid that a file named as the
major node version number is created.
PR-URL: https://github.com/nodejs/node/pull/58157
Refs: https://github.com/nodejs/node/pull/57991
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2025-05-06 11:54:00 +00:00
Stefan Stojanovic
2244a09774
doc,build,win: update docs with clang
...
Updated BUILDING.md to make ClangCL mandatory for new versions of Node.
Forcing clang-cl flag in vcbuild if not specified, thus disabling MSVC.
PR-URL: https://github.com/nodejs/node/pull/57991
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2025-04-30 11:35:41 +00:00
Antoine du Hamel
86bfdb5528
build: remove nocorepack vcbuild flag
...
PR-URL: https://github.com/nodejs/node/pull/57772
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Jordan Harband <ljharb@gmail.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
2025-04-08 08:53:00 +00:00
Hüseyin Açacak
f161033bd5
win,build: add option to enable Control Flow Guard
...
PR-URL: https://github.com/nodejs/node/pull/56605
Fixes: https://github.com/nodejs/node/issues/42100
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2025-03-07 07:09:26 +00:00
Stefan Stojanovic
a017307e7e
build,win: enable ccache
...
PR-URL: https://github.com/nodejs/node/pull/56847
Refs: https://github.com/nodejs/node/pull/56705
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2025-02-09 12:11:15 +00:00
Gerhard Stöbich
6e42433054
Revert "build: avoid compiling with VS v17.12"
...
This reverts commit 542f252d36 .
PR-URL: https://github.com/nodejs/node/pull/56151
Refs: https://github.com/nodejs/build/issues/3963
Refs: https://github.com/nodejs/node/pull/55930
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
2024-12-07 22:31:45 +00:00
Stefan Stojanovic
542f252d36
build: avoid compiling with VS v17.12
...
Refs: https://github.com/nodejs/build/issues/3963
PR-URL: https://github.com/nodejs/node/pull/55930
Refs: https://github.com/nodejs/node/pull/53863
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-11-26 10:12:34 +00:00
Michaël Zasso
d37214bb5d
build: use rclone instead of aws CLI
...
Use rclone to upload assets to Cloudflare as it is more reliable.
Refs: https://github.com/nodejs/build/issues/3508
PR-URL: https://github.com/nodejs/node/pull/55617
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-11-02 08:00:53 +00:00
Aviv Keller
5ce3d1078d
build: stop pre-compiling lint-md
...
PR-URL: https://github.com/nodejs/node/pull/55266
Reviewed-By: Claudio Wunder <cwunder@gnome.org >
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com >
2024-11-01 23:45:02 +00:00
Segev Finer
beb1892036
build: add the option to generate compile_commands.json in vcbuild.bat
...
Refs: https://github.com/nodejs/gyp-next/pull/238
PR-URL: https://github.com/nodejs/node/pull/52279
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-09-21 09:00:01 -07:00
Aviv Keller
437e168c06
build: don't store eslint locally
...
PR-URL: https://github.com/nodejs/node/pull/54231
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2024-09-06 17:31:45 +00:00
Aviv Keller
accf2acdfb
build: support lint-js-fix in vcbuild.bat
...
PR-URL: https://github.com/nodejs/node/pull/53695
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com >
2024-08-06 05:57:35 +00:00
Hüseyin Açacak
852a1a6742
build: avoid compiling with VS v17.10
...
Refs: https://github.com/nodejs/build/issues/3739
PR-URL: https://github.com/nodejs/node/pull/53863
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de >
2024-07-25 10:08:16 +00:00
Michaël Zasso
2eff28fb7a
tools: move ESLint to tools/eslint
...
Greatly simplify how ESLint and its plugins are installed.
PR-URL: https://github.com/nodejs/node/pull/53413
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2024-06-19 19:54:08 +00:00
Stefan Stojanovic
0758c9b6d0
build: find version of Clang installed on Windows
...
PR-URL: https://github.com/nodejs/node/pull/53228
Refs: https://github.com/nodejs/node/issues/52809
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2024-06-11 17:37:26 +00:00
Chengzhong Wu
1aab854fa8
build: generate binlog in out directories
...
Directories link `Release\` will be created as a junction to
`out\Release` when build completes. When binlog was written to
`Release\` before the junction is created, the build will fail for
unable to create junction when directory `Release\` already exists.
PR-URL: https://github.com/nodejs/node/pull/53325
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2024-06-06 10:13:17 +00:00
Michaël Zasso
7ad0cc3e57
build: remove support for 32-bit Windows
...
Closes: https://github.com/nodejs/node/issues/42543
PR-URL: https://github.com/nodejs/node/pull/53184
Fixes: https://github.com/nodejs/node/issues/42543
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Robert Nagy <ronagy@icloud.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
2024-05-30 14:28:47 +00:00
Aviv Keller
d0a7272b57
build: use broader detection for 'help'
...
PR-URL: https://github.com/nodejs/node/pull/53045
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-05-25 19:00:02 +00:00
Michaël Zasso
7e6d92c485
tools: update ESLint to v9 and use flat config
...
Closes: https://github.com/nodejs/node/issues/52567
PR-URL: https://github.com/nodejs/node/pull/52780
Fixes: https://github.com/nodejs/node/issues/52567
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2024-05-23 19:45:18 +00:00
Vladimir Morozov
98a1ecfc7b
test,doc: enable running embedtest for Windows
...
PR-URL: https://github.com/nodejs/node/pull/52646
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-05-23 18:33:40 +00:00
Michaël Zasso
efa63f3d05
build: add option to enable clang-cl on Windows
...
Most changes are gated by the `clang==1` condition to avoid breaking
MSVC builds.
Select C/C++ language standard with ClCompile options.
This avoids passing the `-std:c++20` flag while compiling C code.
Do it only under clang option to avoid breaking addons until node-gyp
supports the new LanguageStandard options.
Disable precompiled header configuration for now as it doesn't seem to
work with clang-cl.
Disable C++20 warnings emitted by the Visual Studio C++ STL.
They're very noisy and not our responsibility to fix.
Co-authored-by: Daniel Lemire <daniel@lemire.me >
Co-authored-by: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
PR-URL: https://github.com/nodejs/node/pull/52870
Reviewed-By: Daniel Lemire <daniel@lemire.me >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2024-05-13 19:05:05 +00:00
flakey5
e5a76f16e1
build, tools: copy release assets to staging R2 bucket once built
...
Co-authored-by: Michaël Zasso <targos@protonmail.com >
PR-URL: https://github.com/nodejs/node/pull/51394
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2024-05-06 07:42:32 +00:00
Vladimir Morozov
2334d5cda8
build,tools,node-api: fix building node-api tests for Windows Debug
...
PR-URL: https://github.com/nodejs/node/pull/52632
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Cheng Zhao <zcbenz@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com >
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2024-04-26 11:36:13 +00:00
Segev Finer
c29d53c5cf
build: fix headers install for shared mode on Win
...
PR-URL: https://github.com/nodejs/node/pull/52442
Reviewed-By: Michael Dawson <midawson@redhat.com >
2024-04-25 11:43:04 -04:00
Hüseyin Açacak
bed1fa9c59
doc: add .gitattributes for md files
...
PR-URL: https://github.com/nodejs/node/pull/52161
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2024-04-24 08:15:07 +03:00
Luke Karrys
4d8602046e
tools: install npm PowerShell scripts on Windows
...
npm 9.8.0 added PowerShell scripts that should be installed alongside
the cmd and shell scripts on Windows.
Fixes: https://github.com/nodejs/node/issues/48471
Refs: https://github.com/npm/cli/pull/6548
PR-URL: https://github.com/nodejs/node/pull/52009
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2024-03-27 20:39:55 +00:00
Cheng Zhao
b1468d21ee
build,tools: make addons tests work with GN
...
PR-URL: https://github.com/nodejs/node/pull/50737
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
2024-02-23 16:14:42 +09:00
liudonghua
b9a427976b
build: check before removing %config% link
...
PR-URL: https://github.com/nodejs/node/pull/51437
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2024-01-25 20:46:09 +00:00
Michaël Zasso
ac2a68c76b
build: drop support for Visual Studio 2019
...
V8 and Chromium are starting to use C++20 features.
Only Visual Studio 2022 17.6 includes a version of MSVC
with sufficient C++20 support to compile V8.
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=1284275
Refs: https://github.com/nodejs/node/pull/45427
PR-URL: https://github.com/nodejs/node/pull/49051
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Ruy Adorno <ruyadorno@google.com >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2023-10-09 16:25:32 +00:00
Antoine du Hamel
553b052648
tools: remove targets for individual test suites in Makefile
...
PR-URL: https://github.com/nodejs/node/pull/46892
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2023-03-31 13:48:59 +00:00
Stefan Stojanovic
0b66df61ef
msi: migrate to WiX4
...
To be able to build x86, x64, and ARM64 MSI installers with the same WiX
version, migration to WiX4 is required.
PR-URL: https://github.com/nodejs/node/pull/45943
Refs: https://github.com/nodejs/build/issues/2540
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2023-03-22 22:16:57 +00:00
Radek Bartoň
0abe5ecacb
build: fix Visual Studio installation detection for Arm64
...
PR-URL: https://github.com/nodejs/node/pull/46420
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2023-03-02 13:23:11 +00:00
Stefan Stojanovic
2e71aef710
build: fix arm64 cross-compile from powershell
...
Starting vcbuild.bat for cross-compiling from powershell was failing the
licensertf step because it couldn't find x64_node_exe after downloading.
PR-URL: https://github.com/nodejs/node/pull/45890
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2022-12-24 20:20:39 +00:00
Anna Henningsen
eb5895ae3e
build: add option to disable shared readonly heap
...
PR-URL: https://github.com/nodejs/node/pull/45887
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2022-12-21 19:16:56 +00:00
Shi Lei
d783a1c128
build,deps,src: fix Intel VTune profiling support
...
PR-URL: https://github.com/nodejs/node/pull/45248
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2022-11-22 08:28:19 +00:00
Santiago Gimeno
159cf51f87
build,win: pass --debug-nghttp2 to configure
...
PR-URL: https://github.com/nodejs/node/pull/45209
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2022-11-01 20:05:22 +00:00
Ben Noordhuis
aa3a572e6b
build: remove dtrace & etw support
...
There are no clear indicators anyone is using the dtrace USDT probes.
ETW support is very intertwined with the dtrace infrastructure. It's not
clear if anyone uses ETW so to keep things simple it too is removed.
Fixes: https://github.com/nodejs/node/issues/43649
PR-URL: https://github.com/nodejs/node/pull/43652
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com >
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de >
2022-07-17 17:33:52 +01:00
Feng Yu
a42099564c
tools: refactor tools/license2rtf to ESM
...
This reverts commit 331088f4a4 .
PR-URL: https://github.com/nodejs/node/pull/43232
Refs: https://github.com/nodejs/node/issues/43213
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: LiviaMedeiros <livia@cirno.name >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2022-07-08 02:38:04 +08:00
Darshan Sen
9a11ea14b7
build: add nonpm and nocorepack to vcbuild.bat
...
The `./configure` script allows you to produce a build without npm and
corepack with the `--without-npm` and `--without-corepack` options
respectively, so this change adds the same capability to the
`vcbuild.bat` script.
Signed-off-by: Darshan Sen <raisinten@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/43219
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2022-06-02 16:39:08 +01:00
Richard Lau
331088f4a4
Revert "tools: refactor tools/license2rtf to ESM"
...
This reverts commit 30cb1bf8b8 .
PR-URL: https://github.com/nodejs/node/pull/43214
Fixes: https://github.com/nodejs/node/issues/43213
Refs: https://github.com/nodejs/node/pull/43101
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Beth Griggs <bgriggs@redhat.com >
Reviewed-By: LiviaMedeiros <livia@cirno.name >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2022-05-26 17:03:12 +01:00
Feng Yu
30cb1bf8b8
tools: refactor tools/license2rtf to ESM
...
PR-URL: https://github.com/nodejs/node/pull/43101
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com >
Reviewed-By: Darshan Sen <raisinten@gmail.com >
2022-05-25 17:11:42 +02:00
Feng Yu
b4398df2e5
tools: refactor build-addons.js to ESM
...
PR-URL: https://github.com/nodejs/node/pull/43099
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2022-05-22 14:28:41 +01:00
William Marlow
1af70548bd
build: fix various shared library build issues
...
Node.js unofficially supports a shared library variant where the
main node executable is a thin wrapper around node.dll/libnode.so.
The key benefit of this is to support embedding Node.js in other
applications.
Since Node.js 12 there have been a number of issues preventing the
shared library build from working correctly, primarily on Windows:
* A number of functions used executables such as `mksnapshot` are
not exported from `libnode.dll` using a `NODE_EXTERN` attribute
* A dependency on the `Winmm` system library is missing
* Incorrect defines on executable targets leads to `node.exe`
claiming to export a number of functions that are actually in
`libnode.dll`
* Because `node.exe` attempts to export symbols, `node.lib` gets
generated causing native extensions to try to link against
`node.exe` not `libnode.dll`.
* Similarly, because `node.dll` was renamed to `libnode.dll`,
native extensions don't know to look for `libnode.lib` rather
than `node.lib`.
* On macOS an RPATH is added to find `libnode.dylib` relative to
`node` in the same folder. This works fine from the
`out/Release` folder but not from an installed prefix, where
`node` will be in `bin/` and `libnode.dylib` will be in `lib/`.
* Similarly on Linux, no RPATH is added so LD_LIBRARY_PATH needs
setting correctly for `bin/node` to find `lib/libnode.so`.
For the `libnode.lib` vs `node.lib` issue there are two possible
options:
1. Ensure `node.lib` from `node.exe` does not get generated, and
instead copy `libnode.lib` to `node.lib`. This means addons
compiled when referencing the correct `node.lib` file will
correctly depend on `libnode.dll`. The down side is that
native addons compiled with stock Node.js will still try to
resolve symbols against node.exe rather than libnode.dll.
2. After building `libnode.dll`, dump the exports using `dumpbin`,
and process this to generate a `node.def` file to be linked into
`node.exe` with the `/DEF:node.def` flag. The export entries
in `node.def` will all read
```
my_symbol=libnode.my_symbol
```
so that `node.exe` will redirect all exported symbols back to
`libnode.dll`. This has the benefit that addons compiled with
stock Node.js will load correctly into `node.exe` from a shared
library build, but means that every embedding executable also
needs to perform this same trick.
I went with the first option as it is the cleaner of the two
solutions in my opinion. Projects wishing to generate a shared
library variant of Node.js can now, for example,
```
.\vcbuild dll package vs
```
to generate a full node installation including `libnode.dll`,
`Release\node.lib`, and all the necessary headers. Native addons
can then be built against the shared library build easily by
specifying the correct `nodedir` option.
For example
```
>npx node-gyp configure --nodedir
C:\Users\User\node\Release\node-v18.0.0-win-x64
...
>npx node-gyp build
...
>dumpbin /dependents build\Release\binding.node
Microsoft (R) COFF/PE Dumper Version 14.29.30136.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file build\Release\binding.node
File Type: DLL
Image has the following dependencies:
KERNEL32.dll
libnode.dll
VCRUNTIME140.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
...
```
PR-URL: https://github.com/nodejs/node/pull/41850
Reviewed-By: Michael Dawson <midawson@redhat.com >
Reviewed-By: Beth Griggs <bgriggs@redhat.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2022-05-06 17:24:46 -04:00
Niyas Sait
9b3aad1cdd
build: windows/arm64 native compilation support
...
Added support for detecting ARM64 host architecture for windows and
avoid explicit cross-compilation flag for win/arm64 target as
configure.py can auto-detect configuration from host and
target architecture.
Refs: https://github.com/nodejs/build/issues/2540
PR-URL: https://github.com/nodejs/node/pull/42408
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2022-04-05 12:19:18 +01:00
Rich Trott
6dae965c2d
tools: use jsdoc recommended rules
...
Enable all recommended JSDoc linting rules and disable the ones we don't
(yet?) meet. They can be enabled one by one by removing the lines that
turn them off.
This requires adding --max-warnings to the ESLint invocations in
Makefile and vcbuild.bat because the preset enables the recommended
rules as warnings and not errors.
PR-URL: https://github.com/nodejs/node/pull/41057
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de >
2021-12-04 19:04:05 -08:00
Rich Trott
a2572940cd
build: remove legacy -J test.py option from Makefile/vcbuild
...
PR-URL: https://github.com/nodejs/node/pull/40945
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2021-11-27 05:45:03 +00:00