You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is not a request to change everything in one day, but a possible improvement/POC of the build.
What are your feelings about a cmake setup?
improvements:
get rid of node-gyp one day (like me, what I've read community is not very happy with it)
no config-only rigid builds
cmake features
build is code
cross-os compilation
actively maintained
standard build tool for C/C++ (support ninja/Makefile)
disadvantages:
maybe cannot drop node-gyp support for the first time
Other improvements are:
I could simplify how tests are compiled/executed: *.test.cc files are compiled, *.test.js files are executed, so simply add files
logging/documentation: I love to read code as documentation, so that I can understand how sth. works. With node-gyp it's like "understand node-gyp configuration or die", and with cmake it's easy to understand what happens, maybe not for a beginner to write, but to also to read and understand
There has been some exploratory work to look at using cmake with node core, but its not gotten to the point where there is consensus or a view on when it might/might not happen.
I think it is interesting it exploring using cmake instead. Is it possible that we could support both at the same time?
@mhdawson I did some refactoring of the build, but in general if I hadn't remove the gyp files, we could support both the same time. No change of the sources, so: yes.
I'm not sure yet. It would be good to have a more complete picture on the suitability of cmake for building addons in general. A distinct PR might make it easier to see the changes that it introduces but I'm not sure we'd be ready to land it.
Can we revive this at all? Would anyone be interested in a PR that simply adds a CMakeList for the library, and a CI job that makes sure it builds, but we keep using gyp for now?
Activity
build: cmake-js
build: cmake-js
gabrielschulhof commentedon Dec 29, 2018
@DaAitch we need to ensure that CMake is available on all the machines of https://ci.nodejs.org/job/node-test-node-addon-api/. I'm totally in favour of switching to CMake though.
DaAitch commentedon Dec 29, 2018
@gabrielschulhof: cool, so that should not be a big thing, right :-) ?
gabrielschulhof commentedon Dec 29, 2018
Well, it's a modification to the CI infrastructure. We need to see if a switch to CMake is already in work on https://github.com/nodejs/build/.
DaAitch commentedon Dec 30, 2018
what I could found on nodejs and builds is:
@mhdawson has been involved to some issues. maybe he can help us here?
mhdawson commentedon Jan 2, 2019
There has been some exploratory work to look at using cmake with node core, but its not gotten to the point where there is consensus or a view on when it might/might not happen.
I think it is interesting it exploring using cmake instead. Is it possible that we could support both at the same time?
DaAitch commentedon Jan 2, 2019
@mhdawson I did some refactoring of the build, but in general if I hadn't remove the gyp files, we could support both the same time. No change of the sources, so: yes.
mhdawson commentedon Jan 2, 2019
Can you share what it looks like with cmake support added? Would be good to look at the changes to better understand.
DaAitch commentedon Jan 2, 2019
sure, it's already attached above: 98cc0c3
mhdawson commentedon Jan 2, 2019
Opened nodejs/TSC#648 to rekindle the discussion for using cmake in node core.
DaAitch commentedon Jan 3, 2019
@mhdawson would a PR makes sense, that touches nothing, but adds an experimental
CMakeLists.txt?Maybe we can run cmake build on CI as well?
The commit I did was a mix of many small things I found (maybe I will create a PR for them as well).
mhdawson commentedon Jan 4, 2019
I'm not sure yet. It would be good to have a more complete picture on the suitability of cmake for building addons in general. A distinct PR might make it easier to see the changes that it introduces but I'm not sure we'd be ready to land it.
DaAitch commentedon Jan 4, 2019
@mhdawson okay, so we can retrigger this after nodejs/TSC#648. I'll close this.
refack commentedon Jan 20, 2019
FYI: there is https://github.com/cmake-js/cmake-js
bkotzz commentedon Oct 23, 2019
Can we revive this at all? Would anyone be interested in a PR that simply adds a CMakeList for the library, and a CI job that makes sure it builds, but we keep using gyp for now?