Skip to content
This repository has been archived by the owner on Feb 17, 2023. It is now read-only.

N-API support #53

Open
computerquip-streamlabs opened this issue Nov 1, 2018 · 5 comments
Open

N-API support #53

computerquip-streamlabs opened this issue Nov 1, 2018 · 5 comments

Comments

@computerquip-streamlabs
Copy link

N-API is starting to gain traction. This should have the ability to compile against it similar to a node runtime I feel like.

@computerquip-streamlabs
Copy link
Author

Actually, I guess I can choose just any given runtime that supports a given version of N-API? Herm.... some clarification on this would be cool.

@computerquip-streamlabs
Copy link
Author

Seems it's difficult to get node-addon-api into the include path reliably. That would be great to have.

@cjntaylor
Copy link
Owner

I need to think through the implications of using N-API instead of / adjacent to(?) NaN and just in general with this tool, but I was largely waiting for things to stabilize. I haven't completely kept up with that recently so I'll need to take a look, but I'll put this high on my list for the next major release as I definitely want to support it (it seems like its the intended path forward).

@computerquip-streamlabs
Copy link
Author

I've made an napi module using this cmake module. The example can be found here: https://github.com/computerquip-streamlabs/node-win32-np/blob/master/CMakeLists.txt

Notice the include_directories statement there for node-addon-api (which is separate from the officially support node_api headers bundled with the runtime itself). This isn't that hard to do frankly and maybe it's better if it's kept separate of the runtime headers regardless. Not sure.

@TomMettam
Copy link

TomMettam commented May 17, 2021

For the C++ node-addon-api:

Just npm install --save node-addon-api and add this to your existing node-cmake CMakeLists.txt

execute_process(COMMAND node -p "require('node-addon-api').include" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE NODE_ADDON_API_DIR)
string(REPLACE "\n" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR})
string(REPLACE "\"" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR})

target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE ${NODE_ADDON_API_DIR})

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants