addon-tools-el/index.js

60 lines
1.1 KiB
JavaScript

'use strict';
let napi = null;
try {
napi = require('node-addon-api');
} catch (ex) {
// do nothing
}
const nameWindows = 'windows';
const nameUnknown = 'unknown';
const platformNames = {
win32: nameWindows,
linux: 'linux',
darwin: 'osx',
'linux-arm64': 'aarch64',
};
const platformName = (
platformNames[process.platform] ||
platformNames[`${process.platform}-${process.arch}`] ||
'unknown'
);
if (platformName === nameUnknown) {
console.log(`Error: UNKNOWN PLATFORM "${process.platform}"`);
}
const isWindows = platformName === nameWindows;
const rootPath = __dirname.replace(/\\/g, '/');
const napiInclude = napi ? napi.include_dir.replace(/\\/g, '/') : '';
const thisInclude = `${rootPath}/include`;
const includePath = `${napiInclude} ${thisInclude}`;
const paths = (dir) => {
dir = dir.replace(/\\/g, '/');
const bin = `${dir}/bin-${platformName}`;
const include = `${dir}/include`;
if (isWindows) {
process.env.path = `${bin};${process.env.path ? `${process.env.path}` : ''}`;
}
return { bin, include };
};
module.exports = {
paths,
bin: `bin-${platformName}`,
platform: platformName,
include: includePath,
};