nodejs / node-chakracore

Node.js on ChakraCore :sparkles::turtle::rocket::sparkles:
Other
1.92k stars 342 forks source link

Problems while building against node-chakracore master #597

Open gabrielschulhof opened 5 years ago

gabrielschulhof commented 5 years ago

When building an addon against a version of Node.js compiled from source, the following steps are necessary:

export npm_config_nodedir=<absolute path to the Node.js repo root>
export PATH=${npm_config_nodedir}:${PATH}
alias npm=${npm_config_nodedir}/deps/npm/bin/npm-cli.js

After these steps, it is possible to run npm install, npm test, etc., and the headers used for compilation and the node binary used for execution will be the ones residing at ${npm_config_nodedir}.

It is not possible to use the node-chakracore repo root in such a way because of the followings:

  1. out/common.gypi is not created. This can be solved with ln -s ../common.gypi out from the node-chakracore repo root.
  2. For some reason, the following directories are added to the include search path (/home/nix/node/node-chakracore is the repo root):
    -I/home/nix/node/node-addon-api
    -I/home/nix/node/node-chakracore/out/include/node
    -I/home/nix/node/node-chakracore/out/src
    -I/home/nix/node/node-chakracore/out/deps/openssl/config
    -I/home/nix/node/node-chakracore/out/deps/openssl/openssl/include
    -I/home/nix/node/node-chakracore/out/deps/uv/include
    -I/home/nix/node/node-chakracore/out/deps/zlib
    -I/home/nix/node/node-chakracore/out/deps/chakrashim/include

    The directory out should not be part of the path, unless the required directories really are copied/linked to those paths. ln -s ../src out fixes this problem for the Node.js headers.