-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
win: Support Visual Studio 2019 #1715
Conversation
Tar version 3 performs better and is more well tested than its predecessor. npm will be using this in the near future, so there is no benefit in shipping a node-gyp that uses the slower and less reliable fstream-based tar. This drops support for node 0.x, and thus should be considered a breaking semver-major change. PR-URL: nodejs#1212 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
* dropping support for node < 4 * signal the CI not to test node < 4
If you're providing a path to a header tarball to install, you probably want it to always be re-installed. PR-URL: nodejs#1220 Fixes: nodejs#1216 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Refael Ackermann <refack@gmail.com>
* test: build simple addon in path with non-ascii characters * test: add test-charmap.py PR-URL: nodejs#1203 Reviewed-By: Refael Ackermann <refack@gmail.com>
Enable linking to the platform specific installation instructions PR-URL: nodejs#1225 Reviewed-By: Refael Ackermann <refack@gmail.com>
Lifted verbatim from https://github.com/nodejs/node/blob/master/CONTRIBUTING.md then `s/Node.js/node-gyp/`. PR-URL: nodejs#1229 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Give users reporting bugs a clearer idea of the info that will be helpful when reporting issues. PR-URL: nodejs#1228 Refs: https://github.com/nodejs/node/tree/master/.github Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: nodejs#1292 Refs: nodejs#1195 (comment) Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Initial work to add z/OS support to node-gyp. PR-URL: nodejs#1276 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
GYP automatically turns variables ending in _dir, _file or _path into absolute paths but didn't check for empty strings. It interacted badly with variables inherited through the environment from npm, the `scripts-prepend-node-path=false` setting in particular because it is turned into `npm_config_script_prepend_node_path=`. Fixes: nodejs#1217 PR-URL: nodejs#1267 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
The description erroneously stated that it should point the node binary. It needs to point to the node source code. PR-URL: nodejs#1372 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Retry the download+install dance only once after encountering an EACCES. That only happens when both the devdir (usually: `$HOME/.node-gyp`) and the current working directory aren't writable. Users won't often hit that except through `sudo npm install` because npm drops privileges before executing node-gyp. Fixes: nodejs#1383 PR-URL: nodejs#1384 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
As node-gyp rebuild doesn't seem to need xcodebuild, we don't need to be printing the error every time GYP is run. PR-URL: nodejs#1370 Fixes: nodejs#569 Refs: nodejs#1057 Refs: https://chromium-review.googlesource.com/c/492046/
PR-URL: nodejs#1323 Fixes: nodejs#1295 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This fixes the regular expression matching in `xcode_emulation` to also handle version numbers with multiple-digit major versions which would otherwise break under use of XCode 10 Fixes: nodejs#1454 PR-URL: nodejs#1455 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Node.js on z/OS uses shared dll (libnode.so). When linking native addons, node-gyp needs to find the corresponding libnode.x during the link step. PR-URL: nodejs#1451 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1451 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1167 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Currently, on non-Windows platforms, it is possible to have a multi-target native module and specify building just some of the targets using `node-gyp build my_target`. On Windows, however, specifying the targets to build requires the `/t:` or `/target:` flag. Without this change you will get an `MSB1008` error because MSBuild thinks you are trying to specify multiple solutions. PR-URL: nodejs#1164 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Header files for deps are in a different location in the Node.js source tree compared to the release tarballs. PR-URL: nodejs#1055 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: nodejs#1158 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1436 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Shrinks node-gyp's size by about 100 kB. PR-URL: nodejs#1458 Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Fixes grammar, removes extra lines and spaces, etc. Also removes a few references to `node-waf`, which was removed ~6 years ago now. Happy to add back if people still need that information. PR-URL: nodejs#1498 Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
- Removes "module dependencies" comments and things that, IMHO, don't add too much value. Happy to add back if helps some people when reading through `node-gyp`. - DRY up `lib/process-release.js`. - Removes a bunch of extra blank lines, as well as random spaces. PR-URL: nodejs#1508 Reviewed-By: Richard Lau <riclau@uk.ibm.com>
- Uses `.eslintrc.yaml` for configuration - `npm run lint` is part of `npm test` PR-URL: nodejs#1497 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: João Reis <reis@janeasystems.com>
This makes the parsing more robust and fixes the additional issue related to USB Device Connectivity component. Fixes: nodejs#1466 PR-URL: nodejs#1516 Reviewed-By: João Reis <reis@janeasystems.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This is cleaner than filtering additional strings from platform.python_version(). PR-URL: nodejs#1504 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Rod Vagg <rod@vagg.org>
Fixes: nodejs#1472 PR-URL: nodejs#1490 Reviewed-By: Jon Moss <me@jonathanmoss.me>
Breaking change: needs Node.js version 6 or higher nodejs#1570 Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1570 Fixes: nodejs#175 Fixes: nodejs#1124 Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1534 Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1340 Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1566 Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs#1269 Refs: nodejs#1582 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: João Reis <reis@janeasystems.com>
Try everything until Python is found. PR-URL: nodejs#1582 Reviewed-By: Rod Vagg <rod@vagg.org>
PR-URL: nodejs#1245 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
Suggest using --verbose npm switch when providing logs. Hopefully, better direct users to use backticks correctly. PR-URL: nodejs#1618 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: João Reis <reis@janeasystems.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
It isn't possible to access `tools/gyp/pylib/gyp/generator/compile_commands_json.py` using the `--format` option. This commit moves the file in a place where it can be accessed. Fixes: nodejs#1526 PR-URL: nodejs#1661 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Signed-off-by: Paul Maréchal <paul.marechal@ericsson.com>
PR-URL: nodejs#1655 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: João Reis <reis@janeasystems.com>
Since ARM64 build dependencies are not included in the "Desktop development with C++" workload of Visual Studio 2017, this change adds a note explaining what additional components are required to build native modules for the new Windows platform. PR-URL: nodejs#1655 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: João Reis <reis@janeasystems.com>
PR-URL: nodejs#1650 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
If node-gyp configure has set up MSBuild location use it instead the one that happens to be first on the PATH. PR-URL: nodejs#1654 Fixes: nodejs#1653 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: João Reis <reis@janeasystems.com>
V8 7.4 removes some API functions. Replace those with their NAN counterparts. PR-URL: nodejs#1705 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Path of VS2019's MSBuild.exe is different from VS2017's MSBuild.exe. This change supports its path. And improve error check for finding msbuild.exe, if it is not found, then throws error. Fixes: nodejs#1663
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one comment, although I think it's worth considering.
try { | ||
// Visual Studio 2017 | ||
msbuildPath = path.join(vsSetup.path, 'MSBuild', '15.0', 'Bin', 'MSBuild.exe') | ||
if (!fs.existsSync(msbuildPath)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about inversing the logic here and prioritize rather VS2019 (Current) directory than 15.0. IMHO current approach would prevent users from compiling vs2019 projects when they have installed both 2017 and 2019 version of VS because msbuild 15.0 would be discovered in the first place. If it would be inverted, MSBuild 2019 would correctly detect older build tools as well. What do you think guys?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree and fix by 29b0c2e . Thanks for good suggestion.
Problem is MSVS2019 comes with 14.2 toolset, so in that case it needs to set:
But anyway, as soon as GYP3 passes all tests on 2017 & 2019, I'll PR to replace the old GYP, so we won't need these tricks (GYP3 has full support for MSVS 2017 & 2019) |
Any estimate of when it will be available? |
Please accept this ASAP... |
I want to use this solution ASAP… |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not 100% convinced this is the right approach but I'm willing to be persuaded that it's better than the alternatives.
Right now this doesn't really make node-gyp support VS 2019, it just makes it look for msbuild.exe in an alternative location.
There is existing support for detecting VS 2017, see commit ae141e1, and for detecting older VS versions by scanning the registry, see doWhich()
and findMsbuild()
in lib/build.js. I would prefer VS 2019 support reuses/extends that rather than piling on a special case.
Aside: this PR needs a rebase against master. Someone force-pushed to the repo a while ago, invalidating the merge base. :-/
@syohex support ended up landing from another PR, I believe we can close this one now. Thanks for working on this and opening this PR. node-gyp v5.0.0 is out with Visual Studio 2019 support. It's not yet integrated into npm so it has to be installed manually. This should do it (only need to be run once): Windows Command Prompt
Powershell
That is, install node-gyp globally and make the npm config variable How to undo this after node-gyp is integrated into npmnpm uninstall --global node-gyp
npm config delete node_gyp
|
Checklist
npm install && npm test
passesDescription of change
Original code does not work with Visual Studio 2019 because path of VS2019's MSBuild.exe is different from VS2017's MSBuild.exe.