Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGar <gar+gh@danger.computer>2021-10-19 17:43:59 +0300
committerGar <gar+gh@danger.computer>2021-10-19 18:33:03 +0300
commit1d07f21876994c6d4d69559203cfdac6022536b6 (patch)
treeea7acbbfef11011f2460e499f36648f85aad665f /node_modules/node-gyp/lib/configure.js
parent69bff9cc1108e7d131fe5873cff0fb0e9a71c52f (diff)
deps: node-gyp@8.3.0
* feat(gyp): update gyp to v0.10.0 PR-URL: https://github.com/npm/cli/pull/3913 Credit: @wraithgar Close: #3913 Reviewed-by: @lukekarrys
Diffstat (limited to 'node_modules/node-gyp/lib/configure.js')
-rw-r--r--node_modules/node-gyp/lib/configure.js102
1 files changed, 5 insertions, 97 deletions
diff --git a/node_modules/node-gyp/lib/configure.js b/node_modules/node-gyp/lib/configure.js
index 038ccbf20..682f1e6f9 100644
--- a/node_modules/node-gyp/lib/configure.js
+++ b/node_modules/node-gyp/lib/configure.js
@@ -7,6 +7,7 @@ const os = require('os')
const processRelease = require('./process-release')
const win = process.platform === 'win32'
const findNodeDirectory = require('./find-node-directory')
+const createConfigGypi = require('./create-config-gypi')
const msgFormat = require('util').format
var findPython = require('./find-python')
if (win) {
@@ -92,107 +93,14 @@ function configure (gyp, argv, callback) {
if (err) {
return callback(err)
}
-
- var configFilename = 'config.gypi'
- var configPath = path.resolve(buildDir, configFilename)
-
- log.verbose('build/' + configFilename, 'creating config file')
-
- var config = process.config ? JSON.parse(JSON.stringify(process.config)) : {}
- var defaults = config.target_defaults
- var variables = config.variables
-
- // default "config.variables"
- if (!variables) {
- variables = config.variables = {}
- }
-
- // default "config.defaults"
- if (!defaults) {
- defaults = config.target_defaults = {}
- }
-
- // don't inherit the "defaults" from node's `process.config` object.
- // doing so could cause problems in cases where the `node` executable was
- // compiled on a different machine (with different lib/include paths) than
- // the machine where the addon is being built to
- defaults.cflags = []
- defaults.defines = []
- defaults.include_dirs = []
- defaults.libraries = []
-
- // set the default_configuration prop
- if ('debug' in gyp.opts) {
- defaults.default_configuration = gyp.opts.debug ? 'Debug' : 'Release'
- }
-
- if (!defaults.default_configuration) {
- defaults.default_configuration = 'Release'
- }
-
- // set the target_arch variable
- variables.target_arch = gyp.opts.arch || process.arch || 'ia32'
- if (variables.target_arch === 'arm64') {
- defaults.msvs_configuration_platform = 'ARM64'
- defaults.xcode_configuration_platform = 'arm64'
- }
-
- // set the node development directory
- variables.nodedir = nodeDir
-
- // disable -T "thin" static archives by default
- variables.standalone_static_library = gyp.opts.thin ? 0 : 1
-
- if (win) {
+ if (process.platform === 'win32') {
process.env.GYP_MSVS_VERSION = Math.min(vsInfo.versionYear, 2015)
process.env.GYP_MSVS_OVERRIDE_PATH = vsInfo.path
- defaults.msbuild_toolset = vsInfo.toolset
- if (vsInfo.sdk) {
- defaults.msvs_windows_target_platform_version = vsInfo.sdk
- }
- if (variables.target_arch === 'arm64') {
- if (vsInfo.versionMajor > 15 ||
- (vsInfo.versionMajor === 15 && vsInfo.versionMajor >= 9)) {
- defaults.msvs_enable_marmasm = 1
- } else {
- log.warn('Compiling ARM64 assembly is only available in\n' +
- 'Visual Studio 2017 version 15.9 and above')
- }
- }
- variables.msbuild_path = vsInfo.msBuild
}
-
- // loop through the rest of the opts and add the unknown ones as variables.
- // this allows for module-specific configure flags like:
- //
- // $ node-gyp configure --shared-libxml2
- Object.keys(gyp.opts).forEach(function (opt) {
- if (opt === 'argv') {
- return
- }
- if (opt in gyp.configDefs) {
- return
- }
- variables[opt.replace(/-/g, '_')] = gyp.opts[opt]
+ createConfigGypi({ gyp, buildDir, nodeDir, vsInfo }, (err, configPath) => {
+ configs.push(configPath)
+ findConfigs(err)
})
-
- // ensures that any boolean values from `process.config` get stringified
- function boolsToString (k, v) {
- if (typeof v === 'boolean') {
- return String(v)
- }
- return v
- }
-
- log.silly('build/' + configFilename, config)
-
- // now write out the config.gypi file to the build/ dir
- var prefix = '# Do not edit. File was generated by node-gyp\'s "configure" step'
-
- var json = JSON.stringify(config, boolsToString, 2)
- log.verbose('build/' + configFilename, 'writing out config file: %s', configPath)
- configs.push(configPath)
- fs.writeFile(configPath, [prefix, json, ''].join('\n'), findConfigs)
}
function findConfigs (err) {