-
Notifications
You must be signed in to change notification settings - Fork 30.5k
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, build: add node.lib file into headers package #6600
Conversation
tools/install.py will now include the AIX node.exp and the Windows node.lib file if they are present.
Adds option to vcbuild.bat to build header package.
@nodejs/platform-windows @nodejs/build |
Thanks for the contribution @gibm . I think Node can use some improvement in this area. How do you envision the header package being consumed? Are you thinking to extend node-gyp to point to it? Fwiw, I think node-gyp can consume headers/libs from a local build by using the One thing that has been discussed is adding the headers/libs to the installer so that node-gyp can find them locally rather than having to download them. |
7z a %TARNAME%-headers.tar %TARNAME% | ||
rmdir /s /q %TARNAME% | ||
7z a %TARNAME%-headers.tar.gz %TARNAME%-headers.tar | ||
del %TARNAME%-headers.tar |
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.
A zip
and 7z
would be better (similar to the gz
and xz
on unix). We did some work to find the best flags for 7z
: https://github.com/janeasystems/node/blob/36b525a78119a1fc3af9a6934762b4cee0f78a5c/vcbuild.bat#L243-L251
@orangemocha Thanks for the response, I'm currently doing a bit more research into how it all works, and I'll get back to you when I'm more clear. |
As I understand it the state of headers/node-gyp is as follows: Unix:The If you install the mac pkg presumably the If you don't have the Windows:Windows requires both the .h files (what's currently in The AFAIK by default node-gyp will download the header tarball (on *nix/mac), and also the node.lib file (on windows), or in theory the node.exp file (on AIX) when it is used to build native modules. @orangemocha Is there a situation in which you would want a header package for a version of node that you didn't have installed? For example can you use 64 bit node to compile 32 bit native modules? Judging by this you can, in which case it would probably be useful to provide both. Possible changes/fixesMy initial idea would be to do some/all of these. If they make sense, I can add them to this PR.
Installer/Tarball Sizes
Let me know if I've misunderstood anything! |
Adding the 'stalled' label. Please remove again if that is mistaken. |
c133999
to
83c7a88
Compare
@gibfahn what happened, did something like this ever appear in the node build for windows? I'm having the worst luck with the vcbuild script.. |
Checklist
Affected core subsystem(s)
build (win)
Description of change
This PR makes two changes.
tools/install.py
so that it includes AIX'sout/Release/node.exp
and WindowsRelease/node.lib
if those files exist.vcbuild.bat tar-headers
option to vcbuild.bat that does the same asmake tar-headers
.Issues/Comments
Release/node.lib
before runningmake tar-headers
.node-7.0.0/include/node
directory, it might make sense to put the .exp and .lib files in a different directory, e.g.node-7.0.0/lib
.Related: #6274 (comment)