123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- var path = require('path');
- var versionArray = process.version
- .substr(1)
- .replace(/-.*$/, '')
- .split('.')
- .map(function(item) {
- return +item;
- });
- // TODO: Check if the main node semantic version is within multiple ranges,
- // or detect presence of built-in N-API by some other mechanism TBD.
- // We know which version of Node.js first shipped the incarnation of the API
- // available in *this* package. So, if we find that the Node.js version is below
- // that, we indicate that the API is missing from Node.js.
- var isNodeApiBuiltin = (
- versionArray[0] > 8 ||
- (versionArray[0] == 8 && versionArray[1] >= 6) ||
- (versionArray[0] == 6 && versionArray[1] >= 15) ||
- (versionArray[0] == 6 && versionArray[1] >= 14 && versionArray[2] >= 2));
- // The flag is not needed when the Node version is not 8, nor if the API is
- // built-in, because we removed the flag at the same time as creating the final
- // incarnation of the built-in API.
- var needsFlag = (!isNodeApiBuiltin && versionArray[0] == 8);
- var include = [__dirname];
- var gyp = path.join(__dirname, 'src', 'node_api.gyp');
- if (isNodeApiBuiltin) {
- gyp += ':nothing';
- } else {
- gyp += ':node-api';
- include.unshift(path.join(__dirname, 'external-napi'));
- }
- module.exports = {
- include: include.map(function(item) {
- return '"' + item + '"';
- }).join(' '),
- gyp: gyp,
- isNodeApiBuiltin: isNodeApiBuiltin,
- needsFlag: needsFlag
- };
|