-
Notifications
You must be signed in to change notification settings - Fork 30k
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
build,windows: solve build file disparity #12425
Comments
Laudable goal. Some comments:
Possible, but complicates the build prerequisites unless we bundle ninja. make is an (Bundling ninja is acceptable though, IMO.)
Probably a non-starter. GYP's cmake support is very basic and buggy.
Don't know Windows enough to comment. |
I think there will need to be a compromise either way, or adding |
(also concerning #12310) Sorry, this may be a silly question. But why not to build Node.js with... Node.js? Node.js is already promoted as integration tool: http://www.infoworld.com/article/3187923/application-development/5-reasons-node-js-rules-for-complex-integrations.html |
Yay, I love it that I'm not the only one with "silly" question. More power to you my friend! I like the idea, and @indutny is bringing us closer to it (https://github.com/indutny/dukgyp). Also there is the notion of bootstrapping, that is building without a previous existing product. It seems negligible on established platforms, but it is important for porting |
Why |
Short example of the merits of VS2015~16 minutes C:\code\node>time < nul&vcbuild > nul&time < nul
The current time is: 14:07:53.76
Enter the new time: The current time is: 14:23:41.10
Enter the new time: ninja56 seconds c:\code\node\out.ninja\out\Debug$ time < nul &echo.""&ninja -j 3 -v -f build.ninja node&time < nul
The current time is: 18:50:11.05
Enter the new time: ""
[1/5] C:\bin\dev\python27\python.exe gyp-win-tool action-wrapper environment.x64 node_js2c_target_node_js2c_bce0facc3e66b523ccf35ab2d859c2d9..rsp ..\..\..\
[2/5] C:\bin\dev\python27\python.exe gyp-win-tool stamp obj\node.actions_depends.stamp
[3/5] C:\bin\dev\python27\python.exe gyp-win-tool stamp obj\node.compile_depends.stamp
[4/5] ninja -t msvc -e environment.x64 -- "D:\bin\dev\VS\2017\BuildTools\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe" /nologo /showIncludes /FC @obj\gen\node.node_javascript.obj.rsp /c gen\node_javascript.cc /Foobj\gen\node.node_javascript.obj /Fdobj\node.cc.pdb
[5/5] C:\bin\dev\python27\python.exe gyp-win-tool link-with-manifests environment.x64 True node.exe "C:\bin\dev\python27\python.exe gyp-win-tool link-wrapper environment.x64 False link.exe /nologo /OUT:node.exe @node.exe.rsp" 1 mt.exe rc.exe "obj\node.node.exe.intermediate.manifest" obj\node.node.exe.generated.manifest ..\..\..\src\res\node.exe.extra.manifest
The current time is: 18:51:07.85
Enter the new time: |
@refack Is this still in progress? Should this remain open? I'm going to remove the |
I would love to see cmake support. It has better IDE support. |
This comment has been minimized.
This comment has been minimized.
There's been no further progress on this. Closing. Can reopen if it is picked back up. |
Patch Set 4: > Patch Set 4: > > (7 comments) > > > Patch Set 4: Commit message was updated. > > I added Gerrit comments in patchset 3 P.S. With this I am now able to compile node.js with ninja. which is a HUGE time saver nodejs/node#12425 Patch-set: 4 Reviewer: Gerrit User 1188132 <1188132@3ce6091f-6c88-37e8-8c75-72f92ae8dfba>
Up till now we have been using two mechanism to build
node
, on windowsvcbuild.bat
that triggersconfigure
and thenmsbuild
. And on all other platforms a direct call toconfigure
and then an explicit call tomake
. Having two mechanisms, leads to divergence, as often bugs-fixes/improvements are done on one and not the other. I wish we could eliminate this disparity by using a tool that works on both platforms.A few proposed solutions:
ninja
aschromium
andV8
does (generate.ninja
files withGYP
)cmake
which is now MSVS supported (generateCMakeLists.txt
files withGYP
)make
on WindowsThe text was updated successfully, but these errors were encountered: