mirror of
https://github.com/electron/node-gyp.git
synced 2025-08-15 12:58:19 +02:00

For AIX we need to use gmake. For AIX we need to set up the path to the exp file which contains the symbols needed for linking. The file will either be in one of the following depeding on whether are are in installed or development environment: - the include/node directory - the out/Release directory PR-URL: https://github.com/nodejs/node-gyp/pull/753 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
61 lines
2.3 KiB
JavaScript
61 lines
2.3 KiB
JavaScript
var path = require('path')
|
|
, log = require('npmlog')
|
|
|
|
function findNodeDirectory(scriptLocation, processObj) {
|
|
// set dirname and process if not passed in
|
|
// this facilitates regression tests
|
|
if (scriptLocation === undefined) {
|
|
scriptLocation = __dirname
|
|
}
|
|
if (processObj === undefined) {
|
|
processObj = process
|
|
}
|
|
|
|
// Have a look to see what is above us, to try and work out where we are
|
|
npm_parent_directory = path.join(scriptLocation, '../../../..')
|
|
log.verbose('node-gyp root', 'npm_parent_directory is '
|
|
+ path.basename(npm_parent_directory))
|
|
node_root_dir = ""
|
|
|
|
log.verbose('node-gyp root', 'Finding node root directory')
|
|
if (path.basename(npm_parent_directory) === 'deps') {
|
|
// We are in a build directory where this script lives in
|
|
// deps/npm/node_modules/node-gyp/lib
|
|
node_root_dir = path.join(npm_parent_directory, '..')
|
|
log.verbose('node-gyp root', 'in build directory, root = '
|
|
+ node_root_dir)
|
|
} else if (path.basename(npm_parent_directory) === 'node_modules') {
|
|
// We are in a node install directory where this script lives in
|
|
// lib/node_modules/npm/node_modules/node-gyp/lib or
|
|
// node_modules/npm/node_modules/node-gyp/lib depending on the
|
|
// platform
|
|
if (processObj.platform === 'win32') {
|
|
node_root_dir = path.join(npm_parent_directory, '..')
|
|
} else {
|
|
node_root_dir = path.join(npm_parent_directory, '../..')
|
|
}
|
|
log.verbose('node-gyp root', 'in install directory, root = '
|
|
+ node_root_dir)
|
|
} else {
|
|
// We don't know where we are, try working it out from the location
|
|
// of the node binary
|
|
var node_dir = path.dirname(processObj.execPath)
|
|
var directory_up = path.basename(node_dir)
|
|
if (directory_up === 'bin') {
|
|
node_root_dir = path.join(node_dir, '..')
|
|
} else if (directory_up === 'Release' || directory_up === 'Debug') {
|
|
// If we are a recently built node, and the directory structure
|
|
// is that of a repository. If we are on Windows then we only need
|
|
// to go one level up, everything else, two
|
|
if (processObj.platform === 'win32') {
|
|
node_root_dir = path.join(node_dir, '..')
|
|
} else {
|
|
node_root_dir = path.join(node_dir, '../..')
|
|
}
|
|
}
|
|
// Else return the default blank, "".
|
|
}
|
|
return node_root_dir
|
|
}
|
|
|
|
module.exports = findNodeDirectory
|