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:
disadvantages:
Other improvements are:
*.test.cc files are compiled, *.test.js files are executed, so simply add files@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.
@gabrielschulhof: cool, so that should not be a big thing, right :-) ?
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/.
what I could found on nodejs and builds is:
@mhdawson has been involved to some issues. maybe he can help us here?
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.
Can you share what it looks like with cmake support added? Would be good to look at the changes to better understand.
sure, it's already attached above: 98cc0c3120afa6aaa25516c277f4607349ebbfe6
Opened https://github.com/nodejs/TSC/issues/648 to rekindle the discussion for using cmake in node core.
@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).
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.
@mhdawson okay, so we can retrigger this after nodejs/TSC#648. I'll close this.
FYI: there is https://github.com/cmake-js/cmake-js
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?