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
{{ message }}
Repository navigation
[Discussion] should we make CMake support as core function #100
Not sure why to discuss this in node-gyp, wouldn't we need a node-cmake to use cmake for native modules?
In nodejs/TSC#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.
@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 --gypjs and 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.
Activity
joaocgreis commentedon Feb 13, 2019
Not sure why to discuss this in
node-gyp, wouldn't we need anode-cmaketo use cmake for native modules?In nodejs/TSC#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.
richardlau commentedon Feb 14, 2019
https://github.com/cmake-js/cmake-js already exists for native modules.
gengjiawen commentedon Feb 14, 2019
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.
richardlau commentedon Feb 14, 2019
Then as @joaocgreis pointed out this discussion item is in the wrong place. This repository is for the
node-gypmodule used to compile native addons.gengjiawen commentedon Feb 14, 2019
I see. It should be in gyp then, though it's maintained by google.
richardlau commentedon Feb 14, 2019
@refack Whatever happened to nodejs/admin#247?
gengjiawen commentedon Jul 28, 2019
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
gengjiawen commentedon Jul 28, 2019
Also, you can directly use
node-gyp configure -- -f cmakegengjiawen commentedon Oct 27, 2019
I am thinking make cmake-support more offcial, reopening this
Related: https://github.com/orgs/nodejs/teams/collaborators/discussions/78
rvagg commentedon Oct 27, 2019
@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:
--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.