gyp-next
gyp-next copied to clipboard
[Discussion] should we make CMake support as core function
Related: https://github.com/nodejs/TSC/issues/648.
If so, I want to add check to enhance this.
Not sure why to discuss this in node-gyp, wouldn't we need a node-cmake to use cmake for native modules?
In https://github.com/nodejs/TSC/issues/648 there seems to be consensus that the build system for node core doesn't need to be the same for native modules. I don't think we will be able to stop supporting node-gyp soon, even if we move to something else there will probably be modules that will take a long time to update.
In my opinion, it would be great if we could find the resources to make Gyp.js the solution, not breaking anything in the ecosystem and not depending on anything besides Node.
Not sure why to discuss this in
node-gyp, wouldn't we need anode-cmaketo use cmake for native modules?
https://github.com/cmake-js/cmake-js already exists for native modules.
Not sure why to discuss this in
node-gyp, wouldn't we need anode-cmaketo use cmake for native modules?
I mean the CMake files for node itself. node-gyp can gernerate CMake files, but not tested for nodejs repo.
CMake function is defined in https://github.com/nodejs/node-gyp/blob/master/gyp/pylib/gyp/generator/cmake.py.
Not sure why to discuss this in
node-gyp, wouldn't we need anode-cmaketo use cmake for native modules?I mean the CMake files for node itself. node-gyp can gernerate CMake files, but not tested for nodejs repo.
CMake function is defined in https://github.com/nodejs/node-gyp/blob/master/gyp/pylib/gyp/generator/cmake.py.
Then as @joaocgreis pointed out this discussion item is in the wrong place. This repository is for the node-gyp module used to compile native addons.
I see. It should be in gyp then, though it's maintained by google.
I see. It should be in gyp then, though it's maintained by google.
@refack Whatever happened to https://github.com/nodejs/admin/issues/247?
For anyone want to try cmake, you can change the code here, change it to argv.push('-f', 'cmake') :
https://github.com/nodejs/node-gyp/blob/2592036261ec588689e07072e1bef31993a9d7ac/lib/configure.js#L228-L240
Also, you can directly use node-gyp configure -- -f cmake
I am thinking make cmake-support more offcial, reopening this
Related: https://github.com/orgs/nodejs/teams/collaborators/discussions/78
@gengjiawen if you want to champion this then I'd support it. It's just something that needs people and there's no extra bandwidth here in the existing team to extend to this. We can bolster the test suite and CI to make sure it works nicely though.
Some things to be aware of when deciding to invest in this though:
- https://github.com/cmake-js/cmake-js is relatively popular and I expect it to gain in popularity. People are already switching their addon builds to it and IMO that kind of diversity is a good thing.
- We want to push toward gyp.js in the near future. The plan is to put out a release with an opt-in
--gypjsand iterate on its compatibility to where it's opt-out and eventually remove gyp.py. Currently gyp.js depends on ninja.js for builds, having CMake output would be a nice addition to it.