Skip to content
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

[Discussion] should we make CMake support as core function #100

Open
gengjiawen opened this issue Feb 13, 2019 · 10 comments
Open

[Discussion] should we make CMake support as core function #100

gengjiawen opened this issue Feb 13, 2019 · 10 comments

Comments

@gengjiawen
Copy link
Member

Related: nodejs/TSC#648.

If so, I want to add check to enhance this.

@joaocgreis
Copy link
Member

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.

@richardlau
Copy link
Member

Not sure why to discuss this in node-gyp, wouldn't we need a node-cmake to use cmake for native modules?

https://github.com/cmake-js/cmake-js already exists for native modules.

@gengjiawen
Copy link
Member Author

gengjiawen commented Feb 14, 2019

Not sure why to discuss this in node-gyp, wouldn't we need a node-cmake to 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.

@richardlau
Copy link
Member

Not sure why to discuss this in node-gyp, wouldn't we need a node-cmake to 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.

@gengjiawen
Copy link
Member Author

I see. It should be in gyp then, though it's maintained by google.

@richardlau
Copy link
Member

I see. It should be in gyp then, though it's maintained by google.

@refack Whatever happened to nodejs/admin#247?

@gengjiawen
Copy link
Member Author

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
Copy link
Member Author

Also, you can directly use node-gyp configure -- -f cmake

@gengjiawen
Copy link
Member Author

I am thinking make cmake-support more offcial, reopening this

Related: https://github.com/orgs/nodejs/teams/collaborators/discussions/78

@gengjiawen gengjiawen reopened this Oct 27, 2019
@rvagg
Copy link
Member

rvagg commented 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:

  1. 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.
  2. 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.

@gengjiawen gengjiawen transferred this issue from nodejs/node-gyp Mar 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants