diff options
| author | 8cy <[email protected]> | 2020-04-03 02:48:28 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-03 02:48:28 -0700 |
| commit | f9159ea2d994e14180fb02ab562f0119513e67cf (patch) | |
| tree | 09d14cdf05456567156738b681379d4bccd64e5c /node_modules/node-addon-api/doc/node-gyp.md | |
| parent | 2020/04/03, 02:42, V1.2.1 (diff) | |
| download | s5nical-f9159ea2d994e14180fb02ab562f0119513e67cf.tar.xz s5nical-f9159ea2d994e14180fb02ab562f0119513e67cf.zip | |
2020/04/03, 02:47, V1.2.2
Diffstat (limited to 'node_modules/node-addon-api/doc/node-gyp.md')
| -rw-r--r-- | node_modules/node-addon-api/doc/node-gyp.md | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/node_modules/node-addon-api/doc/node-gyp.md b/node_modules/node-addon-api/doc/node-gyp.md deleted file mode 100644 index 529aa0e..0000000 --- a/node_modules/node-addon-api/doc/node-gyp.md +++ /dev/null @@ -1,82 +0,0 @@ -# node-gyp - -C++ code needs to be compiled into executable form whether it be as an object -file to linked with others, a shared library, or a standalone executable. - -The main reason for this is that we need to link to the Node.js dependencies and -headers correctly, another reason is that we need a cross platform way to build -C++ source into binary for the target platform. - -Until now **node-gyp** is the **de-facto** standard build tool for writing -Node.js addons. It's based on Google's **gyp** build tool, which abstract away -many of the tedious issues related to cross platform building. - -**node-gyp** uses a file called ```binding.gyp``` that is located on the root of -your addon project. - -```binding.gyp``` file, contains all building configurations organized with a -JSON like syntax. The most important parameter is the **target** that must be -set to the same value used on the initialization code of the addon as in the -examples reported below: - -### **binding.gyp** - -```gyp -{ - "targets": [ - { - # myModule is the name of your native addon - "target_name": "myModule", - "sources": ["src/my_module.cc", ...], - ... - ] -} -``` - -### **my_module.cc** - -```cpp -#include <napi.h> - -// ... - -/** -* This code is our entry-point. We receive two arguments here, the first is the -* environment that represent an independent instance of the JavaScript runtime, -* the second is exports, the same as module.exports in a .js file. -* You can either add properties to the exports object passed in or create your -* own exports object. In either case you must return the object to be used as -* the exports for the module when you return from the Init function. -*/ -Napi::Object Init(Napi::Env env, Napi::Object exports) { - - // ... - - return exports; -} - -/** -* This code defines the entry-point for the Node addon, it tells Node where to go -* once the library has been loaded into active memory. The first argument must -* match the "target" in our *binding.gyp*. Using NODE_GYP_MODULE_NAME ensures -* that the argument will be correct, as long as the module is built with -* node-gyp (which is the usual way of building modules). The second argument -* points to the function to invoke. The function must not be namespaced. -*/ -NODE_API_MODULE(NODE_GYP_MODULE_NAME, Init) -``` - -## **node-gyp** reference - - - [Installation](https://www.npmjs.com/package/node-gyp#installation) - - [How to use](https://www.npmjs.com/package/node-gyp#how-to-use) - - [The binding.gyp file](https://www.npmjs.com/package/node-gyp#the-bindinggyp-file) - - [Commands](https://www.npmjs.com/package/node-gyp#commands) - - [Command options](https://www.npmjs.com/package/node-gyp#command-options) - - [Configuration](https://www.npmjs.com/package/node-gyp#configuration) - -Sometimes finding the right settings for ```binding.gyp``` is not easy so to -accomplish at most complicated task please refer to: - -- [GYP documentation](https://gyp.gsrc.io/index.md) -- [node-gyp wiki](https://github.com/nodejs/node-gyp/wiki) |