diff --git a/lib/configure.js b/lib/configure.js index 25987bbb51..ee672cfbf2 100644 --- a/lib/configure.js +++ b/lib/configure.js @@ -93,18 +93,24 @@ async function configure (gyp, argv) { 'build dir', '"build" dir needed to be created?', isNew ? 'Yes' : 'No' ) if (win) { - let gypFormatIndex = argv.indexOf('-f') - if (gypFormatIndex === -1) { - gypFormatIndex = argv.indexOf('--format') - } - if (gypFormatIndex === -1 || !argv[gypFormatIndex + 1] || argv[gypFormatIndex + 1].startsWith('msvs')) { - const vsInfo = await findVisualStudio(release.semver, gyp.opts['msvs-version']) - return createConfigFile(vsInfo) + let usingMakeGenerator = false + for (let i = argv.length - 1; i >= 0; --i) { + const arg = argv[i] + if (arg === '-f' || arg === '--format') { + const format = argv[i + 1] + if (typeof format === 'string' && format.startsWith('make')) { + usingMakeGenerator = true + break + } + } else if (arg.startsWith('--format=make')) { + usingMakeGenerator = true + break + } } let vsInfo = {} - try { + if (!usingMakeGenerator) { vsInfo = await findVisualStudio(release.semver, gyp.opts['msvs-version']) - } catch (_) {} + } return createConfigFile(vsInfo) } return createConfigFile(null)