@dry-software/cmake-js 7.3.2 → 7.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cmake-js +15 -9
- package/dist/index.cjs +1975 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.mjs +1940 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +16 -4
- package/lib/appCMakeJSConfig.js +0 -58
- package/lib/buildSystem.js +0 -123
- package/lib/cMake.js +0 -362
- package/lib/cmLog.js +0 -61
- package/lib/dist.js +0 -176
- package/lib/downloader.js +0 -92
- package/lib/environment.js +0 -97
- package/lib/import/LICENSE +0 -24
- package/lib/import/README +0 -6
- package/lib/import/find-visualstudio.js +0 -439
- package/lib/import/util.js +0 -70
- package/lib/index.js +0 -12
- package/lib/locateNAN.js +0 -63
- package/lib/locateNodeApi.js +0 -18
- package/lib/npmConfig.js +0 -31
- package/lib/processHelpers.js +0 -53
- package/lib/runtimePaths.js +0 -95
- package/lib/targetOptions.js +0 -33
- package/lib/toolset.js +0 -224
- /package/{lib → dist}/cpp/win_delay_load_hook.cc +0 -0
- /package/{lib → dist}/import/Find-VisualStudio.cs +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node_modules/tsup/assets/cjs_shims.js","../lib/environment.js","../lib/cmLog.js","../lib/targetOptions.js","../lib/runtimePaths.js","../lib/downloader.js","../lib/dist.js","../lib/processHelpers.js","../lib/locateNAN.js","../lib/locateNodeApi.js","../lib/import/util.js","../lib/import/find-visualstudio.js","../lib/toolset.js","../lib/cMake.js","../lib/index.js","../lib/buildSystem.js","../lib/appCMakeJSConfig.js","../lib/npmConfig.js"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","import os from 'node:os'\nimport which from 'which'\nimport { createRequire } from 'node:module'\n\nconst require = createRequire(import.meta.url)\nconst packageJson = require('../package.json')\n\nconst environment = {\n\tcmakeJsVersion: packageJson.version,\n\tplatform: os.platform(),\n\tisWin: os.platform() === 'win32',\n\tisLinux: os.platform() === 'linux',\n\tisOSX: os.platform() === 'darwin',\n\tarch: os.arch(),\n\tisX86: os.arch() === 'ia32' || os.arch() === 'x86',\n\tisX64: os.arch() === 'x64',\n\tisArm: os.arch() === 'arm',\n\tisArm64: os.arch() === 'arm64',\n\truntime: 'node',\n\truntimeVersion: process.versions.node,\n}\n\nObject.defineProperties(environment, {\n\t_isNinjaAvailable: {\n\t\tvalue: null,\n\t\twritable: true,\n\t},\n\tisNinjaAvailable: {\n\t\tget: function () {\n\t\t\tif (this._isNinjaAvailable === null) {\n\t\t\t\tthis._isNinjaAvailable = false\n\t\t\t\ttry {\n\t\t\t\t\tif (which.sync('ninja')) {\n\t\t\t\t\t\tthis._isNinjaAvailable = true\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._isNinjaAvailable\n\t\t},\n\t},\n\t_isMakeAvailable: {\n\t\tvalue: null,\n\t\twritable: true,\n\t},\n\tisMakeAvailable: {\n\t\tget: function () {\n\t\t\tif (this._isMakeAvailable === null) {\n\t\t\t\tthis._isMakeAvailable = false\n\t\t\t\ttry {\n\t\t\t\t\tif (which.sync('make')) {\n\t\t\t\t\t\tthis._isMakeAvailable = true\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._isMakeAvailable\n\t\t},\n\t},\n\t_isGPPAvailable: {\n\t\tvalue: null,\n\t\twritable: true,\n\t},\n\tisGPPAvailable: {\n\t\tget: function () {\n\t\t\tif (this._isGPPAvailable === null) {\n\t\t\t\tthis._isGPPAvailable = false\n\t\t\t\ttry {\n\t\t\t\t\tif (which.sync('g++')) {\n\t\t\t\t\t\tthis._isGPPAvailable = true\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._isGPPAvailable\n\t\t},\n\t},\n\t_isClangAvailable: {\n\t\tvalue: null,\n\t\twritable: true,\n\t},\n\tisClangAvailable: {\n\t\tget: function () {\n\t\t\tif (this._isClangAvailable === null) {\n\t\t\t\tthis._isClangAvailable = false\n\t\t\t\ttry {\n\t\t\t\t\tif (which.sync('clang++')) {\n\t\t\t\t\t\tthis._isClangAvailable = true\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Ignore\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this._isClangAvailable\n\t\t},\n\t},\n})\n\nexport default environment\n","import log from 'npmlog'\nimport createDebug from 'debug'\n\nclass CMLog {\n\tget level() {\n\t\tif (this.options.noLog) {\n\t\t\treturn 'silly'\n\t\t} else {\n\t\t\treturn log.level\n\t\t}\n\t}\n\n\tconstructor(options) {\n\t\tthis.options = options || {}\n\t\tthis.debug = createDebug(this.options.logName || 'cmake-js')\n\t}\n\tsilly(cat, msg) {\n\t\tif (this.options.noLog) {\n\t\t\tthis.debug(cat + ': ' + msg)\n\t\t} else {\n\t\t\tlog.silly(cat, msg)\n\t\t}\n\t}\n\tverbose(cat, msg) {\n\t\tif (this.options.noLog) {\n\t\t\tthis.debug(cat + ': ' + msg)\n\t\t} else {\n\t\t\tlog.verbose(cat, msg)\n\t\t}\n\t}\n\tinfo(cat, msg) {\n\t\tif (this.options.noLog) {\n\t\t\tthis.debug(cat + ': ' + msg)\n\t\t} else {\n\t\t\tlog.info(cat, msg)\n\t\t}\n\t}\n\twarn(cat, msg) {\n\t\tif (this.options.noLog) {\n\t\t\tthis.debug(cat + ': ' + msg)\n\t\t} else {\n\t\t\tlog.warn(cat, msg)\n\t\t}\n\t}\n\thttp(cat, msg) {\n\t\tif (this.options.noLog) {\n\t\t\tthis.debug(cat + ': ' + msg)\n\t\t} else {\n\t\t\tlog.http(cat, msg)\n\t\t}\n\t}\n\terror(cat, msg) {\n\t\tif (this.options.noLog) {\n\t\t\tthis.debug(cat + ': ' + msg)\n\t\t} else {\n\t\t\tlog.error(cat, msg)\n\t\t}\n\t}\n}\n\nexport default CMLog\n","import environment from './environment.js'\n\nclass TargetOptions {\n\tget arch() {\n\t\treturn this.options.arch || environment.arch\n\t}\n\tget isX86() {\n\t\treturn this.arch === 'ia32' || this.arch === 'x86'\n\t}\n\tget isX64() {\n\t\treturn this.arch === 'x64'\n\t}\n\tget isArm() {\n\t\treturn this.arch === 'arm'\n\t}\n\tget isArm64() {\n\t\treturn this.arch === 'arm64'\n\t}\n\tget runtime() {\n\t\treturn this.options.runtime || environment.runtime\n\t}\n\tget runtimeVersion() {\n\t\treturn this.options.runtimeVersion || environment.runtimeVersion\n\t}\n\n\tconstructor(options) {\n\t\tthis.options = options || {}\n\t}\n}\n\nexport default TargetOptions\n","import assert from 'node:assert'\nimport semver from 'semver'\n\nconst NODE_MIRROR = process.env.NVM_NODEJS_ORG_MIRROR || 'https://nodejs.org/dist'\nconst ELECTRON_MIRROR = process.env.ELECTRON_MIRROR || 'https://artifacts.electronjs.org/headers/dist'\n\nconst runtimePaths = {\n\tnode: function (targetOptions) {\n\t\tif (semver.lt(targetOptions.runtimeVersion, '4.0.0')) {\n\t\t\treturn {\n\t\t\t\texternalPath: NODE_MIRROR + '/v' + targetOptions.runtimeVersion + '/',\n\t\t\t\twinLibs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdir: targetOptions.isX64 ? 'x64' : '',\n\t\t\t\t\t\tname: targetOptions.runtime + '.lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarPath: targetOptions.runtime + '-v' + targetOptions.runtimeVersion + '.tar.gz',\n\t\t\t\theaderOnly: false,\n\t\t\t}\n\t\t} else {\n\t\t\treturn {\n\t\t\t\texternalPath: NODE_MIRROR + '/v' + targetOptions.runtimeVersion + '/',\n\t\t\t\twinLibs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdir: targetOptions.isArm64 ? 'win-arm64' : targetOptions.isX64 ? 'win-x64' : 'win-x86',\n\t\t\t\t\t\tname: targetOptions.runtime + '.lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarPath: targetOptions.runtime + '-v' + targetOptions.runtimeVersion + '-headers.tar.gz',\n\t\t\t\theaderOnly: true,\n\t\t\t}\n\t\t}\n\t},\n\tnw: function (targetOptions) {\n\t\tif (semver.gte(targetOptions.runtimeVersion, '0.13.0')) {\n\t\t\treturn {\n\t\t\t\texternalPath: 'https://node-webkit.s3.amazonaws.com/v' + targetOptions.runtimeVersion + '/',\n\t\t\t\twinLibs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdir: targetOptions.isX64 ? 'x64' : '',\n\t\t\t\t\t\tname: targetOptions.runtime + '.lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdir: targetOptions.isX64 ? 'x64' : '',\n\t\t\t\t\t\tname: 'node.lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttarPath: 'nw-headers-v' + targetOptions.runtimeVersion + '.tar.gz',\n\t\t\t\theaderOnly: false,\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\texternalPath: 'https://node-webkit.s3.amazonaws.com/v' + targetOptions.runtimeVersion + '/',\n\t\t\twinLibs: [\n\t\t\t\t{\n\t\t\t\t\tdir: targetOptions.isX64 ? 'x64' : '',\n\t\t\t\t\tname: targetOptions.runtime + '.lib',\n\t\t\t\t},\n\t\t\t],\n\t\t\ttarPath: 'nw-headers-v' + targetOptions.runtimeVersion + '.tar.gz',\n\t\t\theaderOnly: false,\n\t\t}\n\t},\n\telectron: function (targetOptions) {\n\t\treturn {\n\t\t\texternalPath: ELECTRON_MIRROR + '/v' + targetOptions.runtimeVersion + '/',\n\t\t\twinLibs: [\n\t\t\t\t{\n\t\t\t\t\tdir: targetOptions.isArm64 ? 'arm64' : targetOptions.isX64 ? 'x64' : '',\n\t\t\t\t\tname: 'node.lib',\n\t\t\t\t},\n\t\t\t],\n\t\t\ttarPath: 'node' + '-v' + targetOptions.runtimeVersion + '.tar.gz',\n\t\t\theaderOnly: semver.gte(targetOptions.runtimeVersion, '4.0.0-alpha'),\n\t\t}\n\t},\n\tget: function (targetOptions) {\n\t\tassert(targetOptions && typeof targetOptions === 'object')\n\n\t\tconst runtime = targetOptions.runtime\n\t\tconst func = runtimePaths[runtime]\n\t\tlet paths\n\t\tif (typeof func === 'function') {\n\t\t\tpaths = func(targetOptions)\n\t\t\tif (paths && typeof paths === 'object') {\n\t\t\t\treturn paths\n\t\t\t}\n\t\t}\n\t\tthrow new Error('Unknown runtime: ' + runtime)\n\t},\n}\n\nexport default runtimePaths\n","import crypto from 'node:crypto'\nimport axios from 'axios'\nimport MemoryStream from 'memory-stream'\nimport zlib from 'node:zlib'\nimport * as tar from 'tar'\nimport fs from 'node:fs'\nimport CMLog from './cmLog.js'\n\nclass Downloader {\n\tconstructor(options) {\n\t\tthis.options = options || {}\n\t\tthis.log = new CMLog(this.options)\n\t}\n\tdownloadToStream(url, stream, hash) {\n\t\tconst self = this\n\t\tconst shasum = hash ? crypto.createHash(hash) : null\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tlet length = 0\n\t\t\tlet done = 0\n\t\t\tlet lastPercent = 0\n\t\t\taxios\n\t\t\t\t.get(url, { responseType: 'stream' })\n\t\t\t\t.then(function (response) {\n\t\t\t\t\tlength = parseInt(response.headers['content-length'])\n\t\t\t\t\tif (typeof length !== 'number') {\n\t\t\t\t\t\tlength = 0\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse.data.on('data', function (chunk) {\n\t\t\t\t\t\tif (shasum) {\n\t\t\t\t\t\t\tshasum.update(chunk)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (length) {\n\t\t\t\t\t\t\tdone += chunk.length\n\t\t\t\t\t\t\tlet percent = (done / length) * 100\n\t\t\t\t\t\t\tpercent = Math.round(percent / 10) * 10 + 10\n\t\t\t\t\t\t\tif (percent > lastPercent) {\n\t\t\t\t\t\t\t\tself.log.verbose('DWNL', '\\t' + lastPercent + '%')\n\t\t\t\t\t\t\t\tlastPercent = percent\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t\tresponse.data.pipe(stream)\n\t\t\t\t})\n\t\t\t\t.catch(function (err) {\n\t\t\t\t\treject(err)\n\t\t\t\t})\n\n\t\t\tstream.once('error', function (err) {\n\t\t\t\treject(err)\n\t\t\t})\n\n\t\t\tstream.once('finish', function () {\n\t\t\t\tresolve(shasum ? shasum.digest('hex') : undefined)\n\t\t\t})\n\t\t})\n\t}\n\tasync downloadString(url) {\n\t\tconst result = new MemoryStream()\n\t\tawait this.downloadToStream(url, result)\n\t\treturn result.toString()\n\t}\n\tasync downloadFile(url, options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions.path = options\n\t\t}\n\t\tconst result = fs.createWriteStream(options.path)\n\t\tconst sum = await this.downloadToStream(url, result, options.hash)\n\t\tthis.testSum(url, sum, options)\n\t\treturn sum\n\t}\n\tasync downloadTgz(url, options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions.cwd = options\n\t\t}\n\t\tconst gunzip = zlib.createGunzip()\n\t\tconst extractor = tar.extract(options)\n\t\tgunzip.pipe(extractor)\n\t\tconst sum = await this.downloadToStream(url, gunzip, options.hash)\n\t\tthis.testSum(url, sum, options)\n\t\treturn sum\n\t}\n\ttestSum(url, sum, options) {\n\t\tif (options.hash && sum && options.sum && options.sum !== sum) {\n\t\t\tthrow new Error(options.hash.toUpperCase() + \" sum of download '\" + url + \"' mismatch!\")\n\t\t}\n\t}\n}\n\nexport default Downloader\n","import environment from './environment.js'\nimport path from 'node:path'\nimport { join as urlJoin } from 'node:path/posix'\nimport fs from 'fs-extra'\nimport CMLog from './cmLog.js'\nimport TargetOptions from './targetOptions.js'\nimport runtimePaths from './runtimePaths.js'\nimport Downloader from './downloader.js'\nimport os from 'node:os'\n\nfunction testSum(sums, sum, fPath) {\n\tconst serverSum = sums.find(function (s) {\n\t\treturn s.getPath === fPath\n\t})\n\tif (serverSum && serverSum.sum === sum) {\n\t\treturn\n\t}\n\tthrow new Error(\"SHA sum of file '\" + fPath + \"' mismatch!\")\n}\n\nclass Dist {\n\tget internalPath() {\n\t\tconst cacheDirectory = '.cmake-js'\n\t\tconst runtimeArchDirectory = this.targetOptions.runtime + '-' + this.targetOptions.arch\n\t\tconst runtimeVersionDirectory = 'v' + this.targetOptions.runtimeVersion\n\n\t\treturn (\n\t\t\tthis.options.runtimeDirectory ||\n\t\t\tpath.join(os.homedir(), cacheDirectory, runtimeArchDirectory, runtimeVersionDirectory)\n\t\t)\n\t}\n\tget externalPath() {\n\t\treturn runtimePaths.get(this.targetOptions).externalPath\n\t}\n\tget downloaded() {\n\t\tlet headers = false\n\t\tlet libs = true\n\t\tlet stat = getStat(this.internalPath)\n\t\tif (stat.isDirectory()) {\n\t\t\tif (this.headerOnly) {\n\t\t\t\tstat = getStat(path.join(this.internalPath, 'include/node/node.h'))\n\t\t\t\theaders = stat.isFile()\n\t\t\t} else {\n\t\t\t\tstat = getStat(path.join(this.internalPath, 'src/node.h'))\n\t\t\t\tif (stat.isFile()) {\n\t\t\t\t\tstat = getStat(path.join(this.internalPath, 'deps/v8/include/v8.h'))\n\t\t\t\t\theaders = stat.isFile()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (environment.isWin) {\n\t\t\t\tfor (const libPath of this.winLibs) {\n\t\t\t\t\tstat = getStat(libPath)\n\t\t\t\t\tlibs = libs && stat.isFile()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn headers && libs\n\n\t\tfunction getStat(path) {\n\t\t\ttry {\n\t\t\t\treturn fs.statSync(path)\n\t\t\t} catch (e) {\n\t\t\t\treturn {\n\t\t\t\t\tisFile: () => false,\n\t\t\t\t\tisDirectory: () => false,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tget winLibs() {\n\t\tconst libs = runtimePaths.get(this.targetOptions).winLibs\n\t\tconst result = []\n\t\tfor (const lib of libs) {\n\t\t\tresult.push(path.join(this.internalPath, lib.dir, lib.name))\n\t\t}\n\t\treturn result\n\t}\n\tget headerOnly() {\n\t\treturn runtimePaths.get(this.targetOptions).headerOnly\n\t}\n\n\tconstructor(options) {\n\t\tthis.options = options || {}\n\t\tthis.log = new CMLog(this.options)\n\t\tthis.targetOptions = new TargetOptions(this.options)\n\t\tthis.downloader = new Downloader(this.options)\n\t}\n\n\tasync ensureDownloaded() {\n\t\tif (!this.downloaded) {\n\t\t\tawait this.download()\n\t\t}\n\t}\n\tasync download() {\n\t\tconst log = this.log\n\t\tlog.info('DIST', 'Downloading distribution files to: ' + this.internalPath)\n\t\tawait fs.ensureDir(this.internalPath)\n\t\tconst sums = await this._downloadShaSums()\n\t\tawait Promise.all([this._downloadLibs(sums), this._downloadTar(sums)])\n\t}\n\tasync _downloadShaSums() {\n\t\tif (this.targetOptions.runtime === 'node') {\n\t\t\tconst sumUrl = urlJoin(this.externalPath, 'SHASUMS256.txt')\n\t\t\tconst log = this.log\n\t\t\tlog.http('DIST', '\\t- ' + sumUrl)\n\t\t\treturn (await this.downloader.downloadString(sumUrl))\n\t\t\t\t.split('\\n')\n\t\t\t\t.map(function (line) {\n\t\t\t\t\tconst parts = line.split(/\\s+/)\n\t\t\t\t\treturn {\n\t\t\t\t\t\tgetPath: parts[1],\n\t\t\t\t\t\tsum: parts[0],\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.filter(function (i) {\n\t\t\t\t\treturn i.getPath && i.sum\n\t\t\t\t})\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\tasync _downloadTar(sums) {\n\t\tconst log = this.log\n\t\tconst self = this\n\t\tconst tarLocalPath = runtimePaths.get(self.targetOptions).tarPath\n\t\tconst tarUrl = urlJoin(self.externalPath, tarLocalPath)\n\t\tlog.http('DIST', '\\t- ' + tarUrl)\n\n\t\tconst sum = await this.downloader.downloadTgz(tarUrl, {\n\t\t\thash: sums ? 'sha256' : null,\n\t\t\tcwd: self.internalPath,\n\t\t\tstrip: 1,\n\t\t\tfilter: function (entryPath) {\n\t\t\t\tif (entryPath === self.internalPath) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tconst ext = path.extname(entryPath)\n\t\t\t\treturn ext && ext.toLowerCase() === '.h'\n\t\t\t},\n\t\t})\n\n\t\tif (sums) {\n\t\t\ttestSum(sums, sum, tarLocalPath)\n\t\t}\n\t}\n\tasync _downloadLibs(sums) {\n\t\tconst log = this.log\n\t\tconst self = this\n\t\tif (!environment.isWin) {\n\t\t\treturn\n\t\t}\n\n\t\tconst paths = runtimePaths.get(self.targetOptions)\n\t\tfor (const dirs of paths.winLibs) {\n\t\t\tconst subDir = dirs.dir\n\t\t\tconst fn = dirs.name\n\t\t\tconst fPath = subDir ? urlJoin(subDir, fn) : fn\n\t\t\tconst libUrl = urlJoin(self.externalPath, fPath)\n\t\t\tlog.http('DIST', '\\t- ' + libUrl)\n\n\t\t\tawait fs.ensureDir(path.join(self.internalPath, subDir))\n\n\t\t\tconst sum = await this.downloader.downloadFile(libUrl, {\n\t\t\t\tpath: path.join(self.internalPath, fPath),\n\t\t\t\thash: sums ? 'sha256' : null,\n\t\t\t})\n\n\t\t\tif (sums) {\n\t\t\t\ttestSum(sums, sum, fPath)\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default Dist\n","import { spawn, execFile as nodeExecFile } from 'node:child_process'\n\nconst processHelpers = {\n\trun: function (command, options) {\n\t\tif (!options) options = {}\n\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tconst env = Object.assign({}, process.env)\n\t\t\tif (env.Path && env.PATH) {\n\t\t\t\tif (env.Path !== env.PATH) {\n\t\t\t\t\tenv.PATH = env.Path + ';' + env.PATH\n\t\t\t\t}\n\t\t\t\tdelete env.Path\n\t\t\t}\n\t\t\tconst child = spawn(command[0], command.slice(1), {\n\t\t\t\tstdio: options.silent ? 'ignore' : 'inherit',\n\t\t\t\tenv,\n\t\t\t})\n\t\t\tlet ended = false\n\t\t\tchild.on('error', function (e) {\n\t\t\t\tif (!ended) {\n\t\t\t\t\treject(e)\n\t\t\t\t\tended = true\n\t\t\t\t}\n\t\t\t})\n\t\t\tchild.on('exit', function (code, signal) {\n\t\t\t\tif (!ended) {\n\t\t\t\t\tif (code === 0) {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(new Error('Process terminated: ' + code || signal))\n\t\t\t\t\t}\n\t\t\t\t\tended = true\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t},\n\texecFile: function (command) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tnodeExecFile(command[0], command.slice(1), function (err, stdout, stderr) {\n\t\t\t\tif (err) {\n\t\t\t\t\treject(new Error(err.message + '\\n' + (stdout || stderr)))\n\t\t\t\t} else {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t},\n}\n\nexport default processHelpers\n","import fs from 'fs-extra'\nimport path from 'node:path'\n\nconst isNANModule = async function (dir) {\n\tconst h = path.join(dir, 'nan.h')\n\ttry {\n\t\tconst stat = await fs.stat(h)\n\t\treturn stat.isFile()\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nasync function isNodeJSProject(dir) {\n\tconst pjson = path.join(dir, 'package.json')\n\tconst node_modules = path.join(dir, 'node_modules')\n\ttry {\n\t\tlet stat = await fs.stat(pjson)\n\t\tif (stat.isFile()) {\n\t\t\treturn true\n\t\t}\n\t\tstat = await fs.stat(node_modules)\n\t\tif (stat.isDirectory()) {\n\t\t\treturn true\n\t\t}\n\t} catch (e) {\n\t\t// Ignore\n\t}\n\treturn false\n}\n\nasync function locateNAN(projectRoot) {\n\tif (locateNAN.__projectRoot) {\n\t\t// Override for unit tests\n\t\tprojectRoot = locateNAN.__projectRoot\n\t}\n\n\tlet result = await isNodeJSProject(projectRoot)\n\tif (!result) {\n\t\treturn null\n\t}\n\n\tconst nanModulePath = path.join(projectRoot, 'node_modules', 'nan')\n\tresult = await isNANModule(nanModulePath)\n\tif (result) {\n\t\treturn nanModulePath\n\t}\n\n\t// Goto upper level:\n\treturn await locateNAN(goUp(projectRoot))\n}\n\nfunction goUp(dir) {\n\tconst items = dir.split(path.sep)\n\tconst scopeItem = items[items.length - 2]\n\tif (scopeItem && scopeItem[0] === '@') {\n\t\t// skip scope\n\t\tdir = path.join(dir, '..')\n\t}\n\tdir = path.join(dir, '..', '..')\n\treturn path.normalize(dir)\n}\n\nexport default locateNAN\n","import path from 'node:path'\nimport { createRequire } from 'node:module'\n\nasync function locateNodeApi(projectRoot) {\n\tif (locateNodeApi.__projectRoot) {\n\t\t// Override for unit tests\n\t\tprojectRoot = locateNodeApi.__projectRoot\n\t}\n\n\ttry {\n\t\tconst tmpRequire = createRequire(path.join(projectRoot, 'package.json'))\n\t\tconst inc = tmpRequire('node-addon-api')\n\t\treturn inc.include.replace(/\"/g, '')\n\t} catch (e) {\n\t\t// It most likely wasn't found\n\t\treturn null\n\t}\n}\n\nexport default locateNodeApi\n","import log from 'npmlog'\nimport cp from 'node:child_process'\nimport path from 'node:path'\n\nexport const execFile = async (...args) =>\n\tnew Promise((resolve) => {\n\t\tconst child = cp.execFile(...args, (...a) => resolve(a))\n\t\tchild.stdin.end()\n\t})\n\nexport function logWithPrefix(log, prefix) {\n\tfunction setPrefix(logFunction) {\n\t\treturn (...args) => logFunction.apply(null, [prefix, ...args]) // eslint-disable-line\n\t}\n\treturn {\n\t\tsilly: setPrefix(log.silly),\n\t\tverbose: setPrefix(log.verbose),\n\t\tinfo: setPrefix(log.info),\n\t\twarn: setPrefix(log.warn),\n\t\terror: setPrefix(log.error),\n\t}\n}\n\nasync function regGetValue(key, value, addOpts) {\n\tconst outReValue = value.replace(/\\W/g, '.')\n\tconst outRe = new RegExp(`^\\\\s+${outReValue}\\\\s+REG_\\\\w+\\\\s+(\\\\S.*)$`, 'im')\n\tconst reg = path.join(process.env.SystemRoot, 'System32', 'reg.exe')\n\tconst regArgs = ['query', key, '/v', value].concat(addOpts)\n\n\tlog.silly('reg', 'running', reg, regArgs)\n\tconst [err, stdout, stderr] = await execFile(reg, regArgs, { encoding: 'utf8' })\n\n\tlog.silly('reg', 'reg.exe stdout = %j', stdout)\n\tif (err || stderr.trim() !== '') {\n\t\tlog.silly('reg', 'reg.exe err = %j', err && (err.stack || err))\n\t\tlog.silly('reg', 'reg.exe stderr = %j', stderr)\n\t\tif (err) {\n\t\t\tthrow err\n\t\t}\n\t\tthrow new Error(stderr)\n\t}\n\n\tconst result = outRe.exec(stdout)\n\tif (!result) {\n\t\tlog.silly('reg', 'error parsing stdout')\n\t\tthrow new Error('Could not parse output of reg.exe')\n\t}\n\n\tlog.silly('reg', 'found: %j', result[1])\n\treturn result[1]\n}\n\nexport async function regSearchKeys(keys, value, addOpts) {\n\tfor (const key of keys) {\n\t\ttry {\n\t\t\treturn await regGetValue(key, value, addOpts)\n\t\t} catch {\n\t\t\tcontinue\n\t\t}\n\t}\n}\n","import log from 'npmlog'\nimport { existsSync } from 'node:fs'\nimport { win32 as path } from 'node:path'\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport { regSearchKeys, execFile, logWithPrefix } from './util.js'\nimport semver from 'semver'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\n\nclass VisualStudioFinder {\n\tstatic findVisualStudio = (...args) => new VisualStudioFinder(...args).findVisualStudio()\n\n\tlog = logWithPrefix(log, 'find VS')\n\n\tregSearchKeys = regSearchKeys\n\n\tconstructor(nodeSemver, configMsvsVersion) {\n\t\tthis.nodeSemver = nodeSemver\n\t\tthis.configMsvsVersion = configMsvsVersion\n\t\tthis.errorLog = []\n\t\tthis.validVersions = []\n\t}\n\n\t// Logs a message at verbose level, but also saves it to be displayed later\n\t// at error level if an error occurs. This should help diagnose the problem.\n\taddLog(message) {\n\t\tthis.log.verbose(message)\n\t\tthis.errorLog.push(message)\n\t}\n\n\tasync findVisualStudio() {\n\t\tthis.configVersionYear = null\n\t\tthis.configPath = null\n\t\tif (this.configMsvsVersion) {\n\t\t\tthis.addLog('msvs_version was set from command line or npm config')\n\t\t\tif (this.configMsvsVersion.match(/^\\d{4}$/)) {\n\t\t\t\tthis.configVersionYear = parseInt(this.configMsvsVersion, 10)\n\t\t\t\tthis.addLog(`- looking for Visual Studio version ${this.configVersionYear}`)\n\t\t\t} else {\n\t\t\t\tthis.configPath = path.resolve(this.configMsvsVersion)\n\t\t\t\tthis.addLog(`- looking for Visual Studio installed in \"${this.configPath}\"`)\n\t\t\t}\n\t\t} else {\n\t\t\tthis.addLog('msvs_version not set from command line or npm config')\n\t\t}\n\n\t\tif (process.env.VCINSTALLDIR) {\n\t\t\tthis.envVcInstallDir = path.resolve(process.env.VCINSTALLDIR, '..')\n\t\t\tthis.addLog(\n\t\t\t\t'running in VS Command Prompt, installation path is:\\n' +\n\t\t\t\t\t`\"${this.envVcInstallDir}\"\\n- will only use this version`,\n\t\t\t)\n\t\t} else {\n\t\t\tthis.addLog('VCINSTALLDIR not set, not running in VS Command Prompt')\n\t\t}\n\n\t\tconst checks = [\n\t\t\t() => this.findVisualStudio2017OrNewer(),\n\t\t\t() => this.findVisualStudio2015(),\n\t\t\t() => this.findVisualStudio2013(),\n\t\t]\n\n\t\tfor (const check of checks) {\n\t\t\tconst info = await check()\n\t\t\tif (info) {\n\t\t\t\treturn this.succeed(info)\n\t\t\t}\n\t\t}\n\n\t\treturn this.fail()\n\t}\n\n\tsucceed(info) {\n\t\tthis.log.info(\n\t\t\t`using VS${info.versionYear} (${info.version}) found at:` +\n\t\t\t\t`\\n\"${info.path}\"` +\n\t\t\t\t'\\nrun with --verbose for detailed information',\n\t\t)\n\t\treturn info\n\t}\n\n\tfail() {\n\t\tif (this.configMsvsVersion && this.envVcInstallDir) {\n\t\t\tthis.errorLog.push('msvs_version does not match this VS Command Prompt or the', 'installation cannot be used.')\n\t\t} else if (this.configMsvsVersion) {\n\t\t\t// If msvs_version was specified but finding VS failed, print what would\n\t\t\t// have been accepted\n\t\t\tthis.errorLog.push('')\n\t\t\tif (this.validVersions) {\n\t\t\t\tthis.errorLog.push('valid versions for msvs_version:')\n\t\t\t\tthis.validVersions.forEach((version) => {\n\t\t\t\t\tthis.errorLog.push(`- \"${version}\"`)\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tthis.errorLog.push('no valid versions for msvs_version were found')\n\t\t\t}\n\t\t}\n\n\t\tconst errorLog = this.errorLog.join('\\n')\n\n\t\t// For Windows 80 col console, use up to the column before the one marked\n\t\t// with X (total 79 chars including logger prefix, 62 chars usable here):\n\t\t// X\n\t\tconst infoLog = [\n\t\t\t'**************************************************************',\n\t\t\t'You need to install the latest version of Visual Studio',\n\t\t\t'including the \"Desktop development with C++\" workload.',\n\t\t\t'For more information consult the documentation at:',\n\t\t\t'https://github.com/nodejs/node-gyp#on-windows',\n\t\t\t'**************************************************************',\n\t\t].join('\\n')\n\n\t\tthis.log.error(`\\n${errorLog}\\n\\n${infoLog}\\n`)\n\t\tthrow new Error('Could not find any Visual Studio installation to use')\n\t}\n\n\t// Invoke the PowerShell script to get information about Visual Studio 2017\n\t// or newer installations\n\tasync findVisualStudio2017OrNewer() {\n\t\tconst ps = path.join(process.env.SystemRoot, 'System32', 'WindowsPowerShell', 'v1.0', 'powershell.exe')\n\t\tconst csFile = path.join(__dirname, 'Find-VisualStudio.cs')\n\t\tconst psArgs = [\n\t\t\t'-ExecutionPolicy',\n\t\t\t'Unrestricted',\n\t\t\t'-NoProfile',\n\t\t\t'-Command',\n\t\t\t\"&{Add-Type -Path '\" + csFile + \"';\" + '[VisualStudioConfiguration.Main]::PrintJson()}',\n\t\t]\n\n\t\tthis.log.silly('Running', ps, psArgs)\n\t\tconst [err, stdout, stderr] = await execFile(ps, psArgs, { encoding: 'utf8' })\n\t\treturn this.parseData(err, stdout, stderr)\n\t}\n\n\t// Parse the output of the PowerShell script and look for an installation\n\t// of Visual Studio 2017 or newer to use\n\tparseData(err, stdout, stderr) {\n\t\tthis.log.silly('PS stderr = %j', stderr)\n\n\t\tconst failPowershell = () => {\n\t\t\tthis.addLog(\n\t\t\t\t\"could not use PowerShell to find Visual Studio 2017 or newer, try re-running with '--loglevel silly' for more details\",\n\t\t\t)\n\t\t\treturn null\n\t\t}\n\n\t\tif (err) {\n\t\t\tthis.log.silly('PS err = %j', err && (err.stack || err))\n\t\t\treturn failPowershell()\n\t\t}\n\n\t\tlet vsInfo\n\t\ttry {\n\t\t\tvsInfo = JSON.parse(stdout)\n\t\t} catch (e) {\n\t\t\tthis.log.silly('PS stdout = %j', stdout)\n\t\t\tthis.log.silly(e)\n\t\t\treturn failPowershell()\n\t\t}\n\n\t\tif (!Array.isArray(vsInfo)) {\n\t\t\tthis.log.silly('PS stdout = %j', stdout)\n\t\t\treturn failPowershell()\n\t\t}\n\n\t\tvsInfo = vsInfo.map((info) => {\n\t\t\tthis.log.silly(`processing installation: \"${info.path}\"`)\n\t\t\tinfo.path = path.resolve(info.path)\n\t\t\tconst ret = this.getVersionInfo(info)\n\t\t\tret.path = info.path\n\t\t\tret.msBuild = this.getMSBuild(info, ret.versionYear)\n\t\t\tret.toolset = this.getToolset(info, ret.versionYear)\n\t\t\tret.sdk = this.getSDK(info)\n\t\t\treturn ret\n\t\t})\n\t\tthis.log.silly('vsInfo:', vsInfo)\n\n\t\t// Remove future versions or errors parsing version number\n\t\tvsInfo = vsInfo.filter((info) => {\n\t\t\tif (info.versionYear) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tthis.addLog(`unknown version \"${info.version}\" found at \"${info.path}\"`)\n\t\t\treturn false\n\t\t})\n\n\t\t// Sort to place newer versions first\n\t\tvsInfo.sort((a, b) => b.versionYear - a.versionYear)\n\n\t\tfor (let i = 0; i < vsInfo.length; ++i) {\n\t\t\tconst info = vsInfo[i]\n\t\t\tthis.addLog(`checking VS${info.versionYear} (${info.version}) found ` + `at:\\n\"${info.path}\"`)\n\n\t\t\tif (info.msBuild) {\n\t\t\t\tthis.addLog('- found \"Visual Studio C++ core features\"')\n\t\t\t} else {\n\t\t\t\tthis.addLog('- \"Visual Studio C++ core features\" missing')\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (info.toolset) {\n\t\t\t\tthis.addLog(`- found VC++ toolset: ${info.toolset}`)\n\t\t\t} else {\n\t\t\t\tthis.addLog('- missing any VC++ toolset')\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (info.sdk) {\n\t\t\t\tthis.addLog(`- found Windows SDK: ${info.sdk}`)\n\t\t\t} else {\n\t\t\t\tthis.addLog('- missing any Windows SDK')\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (!this.checkConfigVersion(info.versionYear, info.path)) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\treturn info\n\t\t}\n\n\t\tthis.addLog('could not find a version of Visual Studio 2017 or newer to use')\n\t\treturn null\n\t}\n\n\t// Helper - process version information\n\tgetVersionInfo(info) {\n\t\tconst match = /^(\\d+)\\.(\\d+)\\..*/.exec(info.version)\n\t\tif (!match) {\n\t\t\tthis.log.silly('- failed to parse version:', info.version)\n\t\t\treturn {}\n\t\t}\n\t\tthis.log.silly('- version match = %j', match)\n\t\tconst ret = {\n\t\t\tversion: info.version,\n\t\t\tversionMajor: parseInt(match[1], 10),\n\t\t\tversionMinor: parseInt(match[2], 10),\n\t\t}\n\t\tif (ret.versionMajor === 15) {\n\t\t\tret.versionYear = 2017\n\t\t\treturn ret\n\t\t}\n\t\tif (ret.versionMajor === 16) {\n\t\t\tret.versionYear = 2019\n\t\t\treturn ret\n\t\t}\n\t\tif (ret.versionMajor === 17) {\n\t\t\tret.versionYear = 2022\n\t\t\treturn ret\n\t\t}\n\t\tthis.log.silly('- unsupported version:', ret.versionMajor)\n\t\treturn {}\n\t}\n\n\tmsBuildPathExists(path) {\n\t\treturn existsSync(path)\n\t}\n\n\t// Helper - process MSBuild information\n\tgetMSBuild(info, versionYear) {\n\t\tconst pkg = 'Microsoft.VisualStudio.VC.MSBuild.Base'\n\t\tconst msbuildPath = path.join(info.path, 'MSBuild', 'Current', 'Bin', 'MSBuild.exe')\n\t\tconst msbuildPathArm64 = path.join(info.path, 'MSBuild', 'Current', 'Bin', 'arm64', 'MSBuild.exe')\n\t\tif (info.packages.indexOf(pkg) !== -1) {\n\t\t\tthis.log.silly('- found VC.MSBuild.Base')\n\t\t\tif (versionYear === 2017) {\n\t\t\t\treturn path.join(info.path, 'MSBuild', '15.0', 'Bin', 'MSBuild.exe')\n\t\t\t}\n\t\t\tif (versionYear === 2019) {\n\t\t\t\treturn msbuildPath\n\t\t\t}\n\t\t}\n\t\t/**\n\t\t * Visual Studio 2022 doesn't have the MSBuild package.\n\t\t * Support for compiling _on_ ARM64 was added in MSVC 14.32.31326,\n\t\t * so let's leverage it if the user has an ARM64 device.\n\t\t */\n\t\tif (process.arch === 'arm64' && this.msBuildPathExists(msbuildPathArm64)) {\n\t\t\treturn msbuildPathArm64\n\t\t} else if (this.msBuildPathExists(msbuildPath)) {\n\t\t\treturn msbuildPath\n\t\t}\n\t\treturn null\n\t}\n\n\t// Helper - process toolset information\n\tgetToolset(info, versionYear) {\n\t\tconst pkg = 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64'\n\t\tconst express = 'Microsoft.VisualStudio.WDExpress'\n\n\t\tif (info.packages.indexOf(pkg) !== -1) {\n\t\t\tthis.log.silly('- found VC.Tools.x86.x64')\n\t\t} else if (info.packages.indexOf(express) !== -1) {\n\t\t\tthis.log.silly('- found Visual Studio Express (looking for toolset)')\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\n\t\tif (versionYear === 2017) {\n\t\t\treturn 'v141'\n\t\t} else if (versionYear === 2019) {\n\t\t\treturn 'v142'\n\t\t} else if (versionYear === 2022) {\n\t\t\treturn 'v143'\n\t\t}\n\t\tthis.log.silly('- invalid versionYear:', versionYear)\n\t\treturn null\n\t}\n\n\t// Helper - process Windows SDK information\n\tgetSDK(info) {\n\t\tconst win8SDK = 'Microsoft.VisualStudio.Component.Windows81SDK'\n\t\tconst win10SDKPrefix = 'Microsoft.VisualStudio.Component.Windows10SDK.'\n\t\tconst win11SDKPrefix = 'Microsoft.VisualStudio.Component.Windows11SDK.'\n\n\t\tlet Win10or11SDKVer = 0\n\t\tinfo.packages.forEach((pkg) => {\n\t\t\tif (!pkg.startsWith(win10SDKPrefix) && !pkg.startsWith(win11SDKPrefix)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parts = pkg.split('.')\n\t\t\tif (parts.length > 5 && parts[5] !== 'Desktop') {\n\t\t\t\tthis.log.silly('- ignoring non-Desktop Win10/11SDK:', pkg)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst foundSdkVer = parseInt(parts[4], 10)\n\t\t\tif (isNaN(foundSdkVer)) {\n\t\t\t\t// Microsoft.VisualStudio.Component.Windows10SDK.IpOverUsb\n\t\t\t\tthis.log.silly('- failed to parse Win10/11SDK number:', pkg)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.log.silly('- found Win10/11SDK:', foundSdkVer)\n\t\t\tWin10or11SDKVer = Math.max(Win10or11SDKVer, foundSdkVer)\n\t\t})\n\n\t\tif (Win10or11SDKVer !== 0) {\n\t\t\treturn `10.0.${Win10or11SDKVer}.0`\n\t\t} else if (info.packages.indexOf(win8SDK) !== -1) {\n\t\t\tthis.log.silly('- found Win8SDK')\n\t\t\treturn '8.1'\n\t\t}\n\t\treturn null\n\t}\n\n\t// Find an installation of Visual Studio 2015 to use\n\tasync findVisualStudio2015() {\n\t\tif (semver.gte(this.nodeSemver, '19.0.0')) {\n\t\t\tthis.addLog('not looking for VS2015 as it is only supported up to Node.js 18')\n\t\t\treturn null\n\t\t}\n\t\treturn this.findOldVS({\n\t\t\tversion: '14.0',\n\t\t\tversionMajor: 14,\n\t\t\tversionMinor: 0,\n\t\t\tversionYear: 2015,\n\t\t\ttoolset: 'v140',\n\t\t})\n\t}\n\n\t// Find an installation of Visual Studio 2013 to use\n\tasync findVisualStudio2013() {\n\t\tif (semver.gte(this.nodeSemver, '9.0.0')) {\n\t\t\tthis.addLog('not looking for VS2013 as it is only supported up to Node.js 8')\n\t\t\treturn null\n\t\t}\n\t\treturn this.findOldVS({\n\t\t\tversion: '12.0',\n\t\t\tversionMajor: 12,\n\t\t\tversionMinor: 0,\n\t\t\tversionYear: 2013,\n\t\t\ttoolset: 'v120',\n\t\t})\n\t}\n\n\t// Helper - common code for VS2013 and VS2015\n\tasync findOldVS(info) {\n\t\tconst regVC7 = [\n\t\t\t'HKLM\\\\Software\\\\Microsoft\\\\VisualStudio\\\\SxS\\\\VC7',\n\t\t\t'HKLM\\\\Software\\\\Wow6432Node\\\\Microsoft\\\\VisualStudio\\\\SxS\\\\VC7',\n\t\t]\n\t\tconst regMSBuild = 'HKLM\\\\Software\\\\Microsoft\\\\MSBuild\\\\ToolsVersions'\n\n\t\tthis.addLog(`looking for Visual Studio ${info.versionYear}`)\n\t\ttry {\n\t\t\tlet res = await this.regSearchKeys(regVC7, info.version, [])\n\t\t\tconst vsPath = path.resolve(res, '..')\n\t\t\tthis.addLog(`- found in \"${vsPath}\"`)\n\t\t\tconst msBuildRegOpts = process.arch === 'ia32' ? [] : ['/reg:32']\n\n\t\t\ttry {\n\t\t\t\tres = await this.regSearchKeys([`${regMSBuild}\\\\${info.version}`], 'MSBuildToolsPath', msBuildRegOpts)\n\t\t\t} catch (err) {\n\t\t\t\tthis.addLog('- could not find MSBuild in registry for this version')\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst msBuild = path.join(res, 'MSBuild.exe')\n\t\t\tthis.addLog(`- MSBuild in \"${msBuild}\"`)\n\n\t\t\tif (!this.checkConfigVersion(info.versionYear, vsPath)) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tinfo.path = vsPath\n\t\t\tinfo.msBuild = msBuild\n\t\t\tinfo.sdk = null\n\t\t\treturn info\n\t\t} catch (err) {\n\t\t\tthis.addLog('- not found')\n\t\t\treturn null\n\t\t}\n\t}\n\n\t// After finding a usable version of Visual Studio:\n\t// - add it to validVersions to be displayed at the end if a specific\n\t// version was requested and not found;\n\t// - check if this is the version that was requested.\n\t// - check if this matches the Visual Studio Command Prompt\n\tcheckConfigVersion(versionYear, vsPath) {\n\t\tthis.validVersions.push(versionYear)\n\t\tthis.validVersions.push(vsPath)\n\n\t\tif (this.configVersionYear && this.configVersionYear !== versionYear) {\n\t\t\tthis.addLog('- msvs_version does not match this version')\n\t\t\treturn false\n\t\t}\n\t\tif (this.configPath && path.relative(this.configPath, vsPath) !== '') {\n\t\t\tthis.addLog('- msvs_version does not point to this installation')\n\t\t\treturn false\n\t\t}\n\t\tif (this.envVcInstallDir && path.relative(this.envVcInstallDir, vsPath) !== '') {\n\t\t\tthis.addLog('- does not match this Visual Studio Command Prompt')\n\t\t\treturn false\n\t\t}\n\n\t\treturn true\n\t}\n}\n\nexport default VisualStudioFinder\nexport const findVisualStudio = VisualStudioFinder.findVisualStudio\n","import TargetOptions from './targetOptions.js'\nimport environment from './environment.js'\nimport assert from 'node:assert'\nimport CMLog from './cmLog.js'\n\n// Lazy load findVisualStudio on Windows\nlet _findVisualStudio = null\nasync function getFindVisualStudio() {\n\tif (!_findVisualStudio && environment.isWin) {\n\t\tconst vsModule = await import('./import/find-visualstudio.js')\n\t\t_findVisualStudio = vsModule.findVisualStudio\n\t}\n\treturn _findVisualStudio\n}\n\nclass Toolset {\n\tconstructor(options) {\n\t\tthis.options = options || {}\n\t\tthis.targetOptions = new TargetOptions(this.options)\n\t\tthis.generator = options.generator\n\t\tthis.toolset = options.toolset\n\t\tthis.platform = options.platform\n\t\tthis.target = options.target\n\t\tthis.cCompilerPath = options.cCompilerPath\n\t\tthis.cppCompilerPath = options.cppCompilerPath\n\t\tthis.compilerFlags = []\n\t\tthis.linkerFlags = []\n\t\tthis.makePath = null\n\t\tthis.log = new CMLog(this.options)\n\t\tthis._initialized = false\n\t}\n\tasync initialize(install) {\n\t\tif (!this._initialized) {\n\t\t\tif (environment.isWin) {\n\t\t\t\tawait this.initializeWin(install)\n\t\t\t} else {\n\t\t\t\tthis.initializePosix(install)\n\t\t\t}\n\t\t\tthis._initialized = true\n\t\t}\n\t}\n\tinitializePosix(install) {\n\t\tif (!this.cCompilerPath || !this.cppCompilerPath) {\n\t\t\t// 1: Compiler\n\t\t\tif (!environment.isGPPAvailable && !environment.isClangAvailable) {\n\t\t\t\tif (environment.isOSX) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"C++ Compiler toolset is not available. Install Xcode Commandline Tools from Apple Dev Center, or install Clang with homebrew by invoking: 'brew install llvm --with-clang --with-asan'.\",\n\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"C++ Compiler toolset is not available. Install proper compiler toolset with your package manager, eg. 'sudo apt-get install g++'.\",\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.options.preferClang && environment.isClangAvailable) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', 'Using clang++ compiler, because preferClang option is set, and clang++ is available.')\n\t\t\t\t}\n\t\t\t\tthis.cppCompilerPath = this.cppCompilerPath || 'clang++'\n\t\t\t\tthis.cCompilerPath = this.cCompilerPath || 'clang'\n\t\t\t} else if (this.options.preferGnu && environment.isGPPAvailable) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', 'Using g++ compiler, because preferGnu option is set, and g++ is available.')\n\t\t\t\t}\n\t\t\t\tthis.cppCompilerPath = this.cppCompilerPath || 'g++'\n\t\t\t\tthis.cCompilerPath = this.cCompilerPath || 'gcc'\n\t\t\t}\n\t\t}\n\t\t// if it's already set because of options...\n\t\tif (this.generator) {\n\t\t\tif (install) {\n\t\t\t\tthis.log.info('TOOL', 'Using ' + this.generator + ' generator, as specified from commandline.')\n\t\t\t}\n\t\t}\n\n\t\t// 2: Generator\n\t\telse if (environment.isOSX) {\n\t\t\tif (this.options.preferXcode) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', 'Using Xcode generator, because preferXcode option is set.')\n\t\t\t\t}\n\t\t\t\tthis.generator = 'Xcode'\n\t\t\t} else if (this.options.preferMake && environment.isMakeAvailable) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info(\n\t\t\t\t\t\t'TOOL',\n\t\t\t\t\t\t'Using Unix Makefiles generator, because preferMake option is set, and make is available.',\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tthis.generator = 'Unix Makefiles'\n\t\t\t} else if (environment.isNinjaAvailable) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', 'Using Ninja generator, because ninja is available.')\n\t\t\t\t}\n\t\t\t\tthis.generator = 'Ninja'\n\t\t\t} else {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', 'Using Unix Makefiles generator.')\n\t\t\t\t}\n\t\t\t\tthis.generator = 'Unix Makefiles'\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.options.preferMake && environment.isMakeAvailable) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info(\n\t\t\t\t\t\t'TOOL',\n\t\t\t\t\t\t'Using Unix Makefiles generator, because preferMake option is set, and make is available.',\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tthis.generator = 'Unix Makefiles'\n\t\t\t} else if (environment.isNinjaAvailable) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', 'Using Ninja generator, because ninja is available.')\n\t\t\t\t}\n\t\t\t\tthis.generator = 'Ninja'\n\t\t\t} else {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', 'Using Unix Makefiles generator.')\n\t\t\t\t}\n\t\t\t\tthis.generator = 'Unix Makefiles'\n\t\t\t}\n\t\t}\n\n\t\t// 3: Flags\n\t\tif (environment.isOSX) {\n\t\t\tif (install) {\n\t\t\t\tthis.log.verbose('TOOL', 'Setting default OSX compiler flags.')\n\t\t\t}\n\n\t\t\tthis.compilerFlags.push('-D_DARWIN_USE_64_BIT_INODE=1')\n\t\t\tthis.compilerFlags.push('-D_LARGEFILE_SOURCE')\n\t\t\tthis.compilerFlags.push('-D_FILE_OFFSET_BITS=64')\n\t\t\tthis.linkerFlags.push('-undefined dynamic_lookup')\n\t\t}\n\n\t\tthis.compilerFlags.push('-DBUILDING_NODE_EXTENSION')\n\n\t\t// 4: Build target\n\t\tif (this.options.target) {\n\t\t\tthis.log.info('TOOL', 'Building only the ' + this.options.target + ' target, as specified from the command line.')\n\t\t}\n\t}\n\tasync initializeWin(install) {\n\t\tif (!this.generator) {\n\t\t\tconst foundVsInfo = await this._getTopSupportedVisualStudioGenerator()\n\t\t\tif (foundVsInfo) {\n\t\t\t\tif (install) {\n\t\t\t\t\tthis.log.info('TOOL', `Using ${foundVsInfo.generator} generator.`)\n\t\t\t\t}\n\t\t\t\tthis.generator = foundVsInfo.generator\n\n\t\t\t\tconst isAboveVS16 = foundVsInfo.versionMajor >= 16\n\n\t\t\t\t// The CMake Visual Studio Generator does not support the Win64 or ARM suffix on\n\t\t\t\t// the generator name. Instead the generator platform must be set explicitly via\n\t\t\t\t// the platform parameter\n\t\t\t\tif (!this.platform && isAboveVS16) {\n\t\t\t\t\tswitch (this.targetOptions.arch) {\n\t\t\t\t\t\tcase 'ia32':\n\t\t\t\t\t\tcase 'x86':\n\t\t\t\t\t\t\tthis.platform = 'Win32'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tcase 'x64':\n\t\t\t\t\t\t\tthis.platform = 'x64'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tcase 'arm':\n\t\t\t\t\t\t\tthis.platform = 'ARM'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tcase 'arm64':\n\t\t\t\t\t\t\tthis.platform = 'ARM64'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthis.log.warn('TOOL', 'Unknown NodeJS architecture: ' + this.targetOptions.arch)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow new Error('There is no Visual C++ compiler installed. Install Visual C++ Build Toolset or Visual Studio.')\n\t\t\t}\n\t\t} else {\n\t\t\t// if it's already set because of options...\n\t\t\tif (install) {\n\t\t\t\tthis.log.info('TOOL', 'Using ' + this.options.generator + ' generator, as specified from commandline.')\n\t\t\t}\n\t\t}\n\n\t\tthis.linkerFlags.push('/DELAYLOAD:NODE.EXE')\n\n\t\tif (this.targetOptions.isX86) {\n\t\t\tif (install) {\n\t\t\t\tthis.log.verbose('TOOL', 'Setting SAFESEH:NO linker flag.')\n\t\t\t}\n\t\t\tthis.linkerFlags.push('/SAFESEH:NO')\n\t\t}\n\t}\n\tasync _getTopSupportedVisualStudioGenerator() {\n\t\tconst { default: CMake } = await import('./cMake.js')\n\t\tassert(environment.isWin)\n\n\t\tconst findVisualStudio = await getFindVisualStudio()\n\t\tconst selectedVs = await findVisualStudio(environment.runtimeVersion, this.options.msvsVersion)\n\t\tif (!selectedVs) return null\n\n\t\tconst list = await CMake.getGenerators(this.options, this.log)\n\t\tfor (const gen of list) {\n\t\t\tconst found = gen.startsWith(`Visual Studio ${selectedVs.versionMajor}`)\n\t\t\tif (!found) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// unlike previous versions \"Visual Studio 16 2019\" and onwards don't end with arch name\n\t\t\tconst isAboveVS16 = selectedVs.versionMajor >= 16\n\t\t\tif (!isAboveVS16) {\n\t\t\t\tconst is64Bit = gen.endsWith('Win64')\n\t\t\t\tif ((this.targetOptions.isX86 && is64Bit) || (this.targetOptions.isX64 && !is64Bit)) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...selectedVs,\n\t\t\t\tgenerator: gen,\n\t\t\t}\n\t\t}\n\n\t\t// Nothing matched\n\t\treturn null\n\t}\n}\n\nexport default Toolset\n","import which from 'which'\nimport fs from 'fs-extra'\nimport path from 'node:path'\nimport { dirname } from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport environment from './environment.js'\nimport Dist from './dist.js'\nimport CMLog from './cmLog.js'\nimport TargetOptions from './targetOptions.js'\nimport processHelpers from './processHelpers.js'\nimport locateNAN from './locateNAN.js'\nimport locateNodeApi from './locateNodeApi.js'\nimport rc from 'rc'\nimport Toolset from './toolset.js'\nimport headers from 'node-api-headers'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\nconst npmConfigData = rc('npm')\n\nclass CMake {\n\tget path() {\n\t\treturn this.options.cmakePath || 'cmake'\n\t}\n\tget isAvailable() {\n\t\tif (this._isAvailable === null) {\n\t\t\tthis._isAvailable = CMake.isAvailable(this.options)\n\t\t}\n\t\treturn this._isAvailable\n\t}\n\n\tconstructor(options) {\n\t\tthis.options = options || {}\n\t\tthis.log = new CMLog(this.options)\n\t\tthis.dist = new Dist(this.options)\n\t\tthis.projectRoot = path.resolve(this.options.directory || process.cwd())\n\t\tthis.workDir = path.resolve(this.options.out || path.join(this.projectRoot, 'build'))\n\t\tthis.config = this.options.config || (this.options.debug ? 'Debug' : 'Release')\n\t\tthis.buildDir = path.join(this.workDir, this.config)\n\t\tthis._isAvailable = null\n\t\tthis.targetOptions = new TargetOptions(this.options)\n\t\tthis.toolset = new Toolset(this.options)\n\t\tthis.cMakeOptions = this.options.cMakeOptions || {}\n\t\tthis.extraCMakeArgs = this.options.extraCMakeArgs || []\n\t\tthis.silent = !!options.silent\n\t}\n\tstatic isAvailable(options) {\n\t\toptions = options || {}\n\t\ttry {\n\t\t\tif (options.cmakePath) {\n\t\t\t\tconst stat = fs.lstatSync(options.cmakePath)\n\t\t\t\treturn !stat.isDirectory()\n\t\t\t} else {\n\t\t\t\twhich.sync('cmake')\n\t\t\t\treturn true\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Ignore\n\t\t}\n\t\treturn false\n\t}\n\tstatic async getGenerators(options, log) {\n\t\tconst arch = ' [arch]'\n\t\toptions = options || {}\n\t\tconst gens = []\n\t\tif (CMake.isAvailable(options)) {\n\t\t\t// try parsing machine-readable capabilities (available since CMake 3.7)\n\t\t\ttry {\n\t\t\t\tconst stdout = await processHelpers.execFile([options.cmakePath || 'cmake', '-E', 'capabilities'])\n\t\t\t\tconst capabilities = JSON.parse(stdout)\n\t\t\t\treturn capabilities.generators.map((x) => x.name)\n\t\t\t} catch (error) {\n\t\t\t\tif (log) {\n\t\t\t\t\tlog.verbose('TOOL', 'Failed to query CMake capabilities (CMake is probably older than 3.7)')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// fall back to parsing help text\n\t\t\tconst stdout = await processHelpers.execFile([options.cmakePath || 'cmake', '--help'])\n\t\t\tconst hasCr = stdout.includes('\\r\\n')\n\t\t\tconst output = hasCr ? stdout.split('\\r\\n') : stdout.split('\\n')\n\t\t\tlet on = false\n\t\t\toutput.forEach(function (line, i) {\n\t\t\t\tif (on) {\n\t\t\t\t\tconst parts = line.split('=')\n\t\t\t\t\tif (\n\t\t\t\t\t\t(parts.length === 2 && parts[0].trim()) ||\n\t\t\t\t\t\t(parts.length === 1 && i !== output.length - 1 && output[i + 1].trim()[0] === '=')\n\t\t\t\t\t) {\n\t\t\t\t\t\tlet gen = parts[0].trim()\n\t\t\t\t\t\tif (gen.endsWith(arch)) {\n\t\t\t\t\t\t\tgen = gen.substr(0, gen.length - arch.length)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgens.push(gen)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (line.trim() === 'Generators') {\n\t\t\t\t\ton = true\n\t\t\t\t}\n\t\t\t})\n\t\t} else {\n\t\t\tthrow new Error('CMake is not installed. Install CMake.')\n\t\t}\n\t\treturn gens\n\t}\n\tverifyIfAvailable() {\n\t\tif (!this.isAvailable) {\n\t\t\tthrow new Error(\n\t\t\t\t\"CMake executable is not found. Please use your system's package manager to install it, or you can get installers from there: http://cmake.org.\",\n\t\t\t)\n\t\t}\n\t}\n\tasync getConfigureCommand() {\n\t\t// Create command:\n\t\tlet command = [this.path, this.projectRoot, '--no-warn-unused-cli']\n\n\t\tconst D = []\n\n\t\t// CMake.js watermark\n\t\tD.push({ CMAKE_JS_VERSION: environment.cmakeJsVersion })\n\n\t\t// Build configuration:\n\t\tD.push({ CMAKE_BUILD_TYPE: this.config })\n\t\tif (environment.isWin) {\n\t\t\tD.push({ CMAKE_RUNTIME_OUTPUT_DIRECTORY: this.workDir })\n\t\t} else if (this.workDir.endsWith(this.config)) {\n\t\t\tD.push({ CMAKE_LIBRARY_OUTPUT_DIRECTORY: this.workDir })\n\t\t} else {\n\t\t\tD.push({ CMAKE_LIBRARY_OUTPUT_DIRECTORY: this.buildDir })\n\t\t}\n\n\t\t// In some configurations MD builds will crash upon attempting to free memory.\n\t\t// This tries to encourage MT builds which are larger but less likely to have this crash.\n\t\tD.push({ CMAKE_MSVC_RUNTIME_LIBRARY: 'MultiThreaded$<$<CONFIG:Debug>:Debug>' })\n\n\t\t// Includes:\n\t\tconst includesString = await this.getCmakeJsIncludeString()\n\t\tD.push({ CMAKE_JS_INC: includesString })\n\n\t\t// Sources:\n\t\tconst srcsString = this.getCmakeJsSrcString()\n\t\tD.push({ CMAKE_JS_SRC: srcsString })\n\n\t\t// Runtime:\n\t\tD.push({ NODE_RUNTIME: this.targetOptions.runtime })\n\t\tD.push({ NODE_RUNTIMEVERSION: this.targetOptions.runtimeVersion })\n\t\tD.push({ NODE_ARCH: this.targetOptions.arch })\n\n\t\tif (environment.isOSX) {\n\t\t\tif (this.targetOptions.arch) {\n\t\t\t\tlet xcodeArch = this.targetOptions.arch\n\t\t\t\tif (xcodeArch === 'x64') xcodeArch = 'x86_64'\n\t\t\t\tD.push({ CMAKE_OSX_ARCHITECTURES: xcodeArch })\n\t\t\t}\n\t\t}\n\n\t\t// Custom options\n\t\tfor (const [key, value] of Object.entries(this.cMakeOptions)) {\n\t\t\tD.push({ [key]: value })\n\t\t}\n\n\t\t// Toolset:\n\t\tawait this.toolset.initialize(false)\n\n\t\tconst libsString = this.getCmakeJsLibString()\n\t\tD.push({ CMAKE_JS_LIB: libsString })\n\n\t\tif (environment.isWin) {\n\t\t\tconst nodeLibDefPath = this.getNodeLibDefPath()\n\t\t\tif (nodeLibDefPath) {\n\t\t\t\tconst nodeLibPath = path.join(this.workDir, 'node.lib')\n\t\t\t\tD.push({ CMAKE_JS_NODELIB_DEF: nodeLibDefPath })\n\t\t\t\tD.push({ CMAKE_JS_NODELIB_TARGET: nodeLibPath })\n\t\t\t}\n\t\t}\n\n\t\tif (this.toolset.generator) {\n\t\t\tcommand.push('-G', this.toolset.generator)\n\t\t}\n\t\tif (this.toolset.platform) {\n\t\t\tcommand.push('-A', this.toolset.platform)\n\t\t}\n\t\tif (this.toolset.toolset) {\n\t\t\tcommand.push('-T', this.toolset.toolset)\n\t\t}\n\t\tif (this.toolset.cppCompilerPath) {\n\t\t\tD.push({ CMAKE_CXX_COMPILER: this.toolset.cppCompilerPath })\n\t\t}\n\t\tif (this.toolset.cCompilerPath) {\n\t\t\tD.push({ CMAKE_C_COMPILER: this.toolset.cCompilerPath })\n\t\t}\n\t\tif (this.toolset.compilerFlags.length) {\n\t\t\tD.push({ CMAKE_CXX_FLAGS: this.toolset.compilerFlags.join(' ') })\n\t\t}\n\t\tif (this.toolset.linkerFlags.length) {\n\t\t\tD.push({ CMAKE_SHARED_LINKER_FLAGS: this.toolset.linkerFlags.join(' ') })\n\t\t}\n\t\tif (this.toolset.makePath) {\n\t\t\tD.push({ CMAKE_MAKE_PROGRAM: this.toolset.makePath })\n\t\t}\n\n\t\t// Load NPM config\n\t\tfor (const [key, value] of Object.entries(npmConfigData)) {\n\t\t\tif (key.startsWith('cmake_')) {\n\t\t\t\tconst sk = key.substr(6)\n\t\t\t\tif (sk && value) {\n\t\t\t\t\tD.push({ [sk]: value })\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcommand = command.concat(\n\t\t\tD.map(function (p) {\n\t\t\t\treturn '-D' + Object.keys(p)[0] + '=' + Object.values(p)[0]\n\t\t\t}),\n\t\t)\n\n\t\treturn command.concat(this.extraCMakeArgs)\n\t}\n\tgetCmakeJsLibString() {\n\t\tconst libs = []\n\t\tif (environment.isWin) {\n\t\t\tconst nodeLibDefPath = this.getNodeLibDefPath()\n\t\t\tif (nodeLibDefPath) {\n\t\t\t\tlibs.push(path.join(this.workDir, 'node.lib'))\n\t\t\t} else {\n\t\t\t\tlibs.push(...this.dist.winLibs)\n\t\t\t}\n\t\t}\n\t\treturn libs.join(';')\n\t}\n\tasync getCmakeJsIncludeString() {\n\t\tlet incPaths = []\n\t\tif (!this.options.isNodeApi) {\n\t\t\t// Include and lib:\n\t\t\tif (this.dist.headerOnly) {\n\t\t\t\tincPaths = [path.join(this.dist.internalPath, '/include/node')]\n\t\t\t} else {\n\t\t\t\tconst nodeH = path.join(this.dist.internalPath, '/src')\n\t\t\t\tconst v8H = path.join(this.dist.internalPath, '/deps/v8/include')\n\t\t\t\tconst uvH = path.join(this.dist.internalPath, '/deps/uv/include')\n\t\t\t\tincPaths = [nodeH, v8H, uvH]\n\t\t\t}\n\n\t\t\t// NAN\n\t\t\tconst nanH = await locateNAN(this.projectRoot)\n\t\t\tif (nanH) {\n\t\t\t\tincPaths.push(nanH)\n\t\t\t}\n\t\t} else {\n\t\t\t// Base headers\n\t\t\tincPaths.push(headers.include_dir)\n\n\t\t\t// Node-api\n\t\t\tconst napiH = await locateNodeApi(this.projectRoot)\n\t\t\tif (napiH) {\n\t\t\t\tincPaths.push(napiH)\n\t\t\t}\n\t\t}\n\n\t\treturn incPaths.join(';')\n\t}\n\tgetCmakeJsSrcString() {\n\t\tconst srcPaths = []\n\t\tif (environment.isWin) {\n\t\t\tconst delayHook = path.normalize(path.join(__dirname, 'cpp', 'win_delay_load_hook.cc'))\n\n\t\t\tsrcPaths.push(delayHook.replace(/\\\\/gm, '/'))\n\t\t}\n\n\t\treturn srcPaths.join(';')\n\t}\n\tgetNodeLibDefPath() {\n\t\treturn environment.isWin && this.options.isNodeApi ? headers.def_paths.node_api_def : undefined\n\t}\n\tasync configure() {\n\t\tthis.verifyIfAvailable()\n\n\t\tthis.log.info('CMD', 'CONFIGURE')\n\t\tconst listPath = path.join(this.projectRoot, 'CMakeLists.txt')\n\t\tconst command = await this.getConfigureCommand()\n\n\t\ttry {\n\t\t\tawait fs.lstat(listPath)\n\t\t} catch (e) {\n\t\t\tthrow new Error(\"'\" + listPath + \"' not found.\")\n\t\t}\n\n\t\ttry {\n\t\t\tawait fs.ensureDir(this.workDir)\n\t\t} catch (e) {\n\t\t\t// Ignore\n\t\t}\n\n\t\tconst cwd = process.cwd()\n\t\tprocess.chdir(this.workDir)\n\t\ttry {\n\t\t\tawait this._run(command)\n\t\t} finally {\n\t\t\tprocess.chdir(cwd)\n\t\t}\n\t}\n\tasync ensureConfigured() {\n\t\ttry {\n\t\t\tawait fs.lstat(path.join(this.workDir, 'CMakeCache.txt'))\n\t\t} catch (e) {\n\t\t\tawait this.configure()\n\t\t}\n\t}\n\tgetBuildCommand() {\n\t\tconst command = [this.path, '--build', this.workDir, '--config', this.config]\n\t\tif (this.options.target) {\n\t\t\tcommand.push('--target', this.options.target)\n\t\t}\n\t\tif (this.options.parallel) {\n\t\t\tcommand.push('--parallel', this.options.parallel)\n\t\t}\n\t\treturn Promise.resolve(command.concat(this.extraCMakeArgs))\n\t}\n\tasync build() {\n\t\tthis.verifyIfAvailable()\n\n\t\tawait this.ensureConfigured()\n\t\tconst buildCommand = await this.getBuildCommand()\n\t\tthis.log.info('CMD', 'BUILD')\n\t\tawait this._run(buildCommand)\n\t}\n\tgetCleanCommand() {\n\t\treturn [this.path, '-E', 'remove_directory', this.workDir].concat(this.extraCMakeArgs)\n\t}\n\tclean() {\n\t\tthis.verifyIfAvailable()\n\n\t\tthis.log.info('CMD', 'CLEAN')\n\t\treturn this._run(this.getCleanCommand())\n\t}\n\tasync reconfigure() {\n\t\tthis.extraCMakeArgs = []\n\t\tawait this.clean()\n\t\tawait this.configure()\n\t}\n\tasync rebuild() {\n\t\tthis.extraCMakeArgs = []\n\t\tawait this.clean()\n\t\tawait this.build()\n\t}\n\tasync compile() {\n\t\tthis.extraCMakeArgs = []\n\t\ttry {\n\t\t\tawait this.build()\n\t\t} catch (e) {\n\t\t\tthis.log.info('REP', 'Build has been failed, trying to do a full rebuild.')\n\t\t\tawait this.rebuild()\n\t\t}\n\t}\n\t_run(command) {\n\t\tthis.log.info('RUN', command)\n\t\treturn processHelpers.run(command, { silent: this.silent })\n\t}\n\n\tasync getGenerators() {\n\t\treturn CMake.getGenerators(this.options, this.log)\n\t}\n}\n\nexport default CMake\n","import BuildSystem from './buildSystem.js'\nimport CMLog from './cmLog.js'\nimport environment from './environment.js'\nimport TargetOptions from './targetOptions.js'\nimport Dist from './dist.js'\nimport CMake from './cMake.js'\nimport Downloader from './downloader.js'\nimport Toolset from './toolset.js'\n\nexport { BuildSystem, CMLog, environment, TargetOptions, Dist, CMake, Downloader, Toolset }\n\n// Also export as default for backwards compatibility\nexport default {\n\tBuildSystem,\n\tCMLog,\n\tenvironment,\n\tTargetOptions,\n\tDist,\n\tCMake,\n\tdownloader: Downloader,\n\tToolset,\n}\n","import CMake from './cMake.js'\nimport Dist from './dist.js'\nimport CMLog from './cmLog.js'\nimport appCMakeJSConfig from './appCMakeJSConfig.js'\nimport npmConfig from './npmConfig.js'\nimport path from 'node:path'\nimport fs from 'node:fs'\nimport Toolset from './toolset.js'\n\nfunction isNodeApi(log, projectRoot) {\n\ttry {\n\t\tconst pjsonPath = path.join(projectRoot, 'package.json')\n\t\tconst content = fs.readFileSync(pjsonPath, 'utf-8')\n\t\tconst projectPkgJson = JSON.parse(content)\n\t\t// Make sure the property exists\n\t\treturn !!projectPkgJson?.binary?.napi_versions\n\t} catch (e) {\n\t\tlog.silly('CFG', \"'package.json' not found.\")\n\t\treturn false\n\t}\n}\n\nclass BuildSystem {\n\tconstructor(options) {\n\t\tthis.options = options || {}\n\t\tthis.options.directory = path.resolve(this.options.directory || process.cwd())\n\t\tthis.options.out = path.resolve(this.options.out || path.join(this.options.directory, 'build'))\n\t\tthis.log = new CMLog(this.options)\n\t\tthis.options.isNodeApi = isNodeApi(this.log, this.options.directory)\n\t\tconst appConfig = appCMakeJSConfig(this.options.directory, this.log)\n\t\tconst npmOptions = npmConfig(this.log)\n\n\t\tif (npmOptions && typeof npmOptions === 'object' && Object.keys(npmOptions).length) {\n\t\t\tthis.options.runtimeDirectory = npmOptions['nodedir']\n\t\t\tthis.options.msvsVersion = npmOptions['msvs_version']\n\t\t}\n\t\tif (appConfig && typeof appConfig === 'object' && Object.keys(appConfig).length) {\n\t\t\tthis.log.verbose('CFG', 'Applying CMake.js config from root package.json:')\n\t\t\tthis.log.verbose('CFG', JSON.stringify(appConfig))\n\t\t\t// Applying applications's config, if there is no explicit runtime related options specified\n\t\t\tthis.options.runtime = this.options.runtime || appConfig.runtime\n\t\t\tthis.options.runtimeVersion = this.options.runtimeVersion || appConfig.runtimeVersion\n\t\t\tthis.options.arch = this.options.arch || appConfig.arch\n\t\t}\n\n\t\tthis.log.verbose('CFG', 'Build system options:')\n\t\tthis.log.verbose('CFG', JSON.stringify(this.options))\n\t\tthis.cmake = new CMake(this.options)\n\t\tthis.dist = new Dist(this.options)\n\t\tthis.toolset = new Toolset(this.options)\n\t}\n\tasync _ensureInstalled() {\n\t\ttry {\n\t\t\tawait this.toolset.initialize(true)\n\t\t\tif (!this.options.isNodeApi) {\n\t\t\t\tawait this.dist.ensureDownloaded()\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis._showError(e)\n\t\t\tthrow e\n\t\t}\n\t}\n\t_showError(e) {\n\t\tif (this.log === undefined) {\n\t\t\t// handle internal errors (init failed)\n\t\t\tconsole.error('OMG', e.stack)\n\t\t\treturn\n\t\t}\n\t\tif (this.log.level === 'verbose' || this.log.level === 'silly') {\n\t\t\tthis.log.error('OMG', e.stack)\n\t\t} else {\n\t\t\tthis.log.error('OMG', e.message)\n\t\t}\n\t}\n\tinstall() {\n\t\treturn this._ensureInstalled()\n\t}\n\tasync _invokeCMake(method) {\n\t\ttry {\n\t\t\tawait this._ensureInstalled()\n\t\t\treturn await this.cmake[method]()\n\t\t} catch (e) {\n\t\t\tthis._showError(e)\n\t\t\tthrow e\n\t\t}\n\t}\n\tgetConfigureCommand() {\n\t\treturn this._invokeCMake('getConfigureCommand')\n\t}\n\tgetCmakeJsLibString() {\n\t\treturn this._invokeCMake('getCmakeJsLibString')\n\t}\n\tgetCmakeJsIncludeString() {\n\t\treturn this._invokeCMake('getCmakeJsIncludeString')\n\t}\n\tgetCmakeJsSrcString() {\n\t\treturn this._invokeCMake('getCmakeJsSrcString')\n\t}\n\tconfigure() {\n\t\treturn this._invokeCMake('configure')\n\t}\n\tgetBuildCommand() {\n\t\treturn this._invokeCMake('getBuildCommand')\n\t}\n\tbuild() {\n\t\treturn this._invokeCMake('build')\n\t}\n\tgetCleanCommand() {\n\t\treturn this._invokeCMake('getCleanCommand')\n\t}\n\tclean() {\n\t\treturn this._invokeCMake('clean')\n\t}\n\treconfigure() {\n\t\treturn this._invokeCMake('reconfigure')\n\t}\n\trebuild() {\n\t\treturn this._invokeCMake('rebuild')\n\t}\n\tcompile() {\n\t\treturn this._invokeCMake('compile')\n\t}\n}\n\nexport default BuildSystem\n","import path from 'node:path'\nimport fs from 'node:fs'\n\nfunction getConfig(lookPath, log) {\n\tconst pjsonPath = path.join(lookPath, 'package.json')\n\tlog.silly('CFG', \"Looking for package.json in: '\" + pjsonPath + \"'.\")\n\ttry {\n\t\tconst content = fs.readFileSync(pjsonPath, 'utf-8')\n\t\tconst json = JSON.parse(content)\n\t\tlog.silly('CFG', 'Loaded:\\n' + JSON.stringify(json))\n\t\tif (json && json['cmake-js'] && typeof json['cmake-js'] === 'object') {\n\t\t\tlog.silly('CFG', 'Config found.')\n\t\t\treturn json['cmake-js']\n\t\t} else {\n\t\t\tlog.silly('CFG', 'Config not found.')\n\t\t\treturn null\n\t\t}\n\t} catch (e) {\n\t\tlog.silly('CFG', \"'package.json' not found.\")\n\t\treturn null\n\t}\n}\n\nexport default function (projectPath, log) {\n\tlog.verbose('CFG', \"Looking for application level CMake.js config in '\" + projectPath + '.')\n\tlet currPath = projectPath\n\tlet lastConfig = null\n\tlet currConfig\n\tfor (;;) {\n\t\tcurrConfig = getConfig(currPath, log)\n\t\tif (currConfig) {\n\t\t\tlastConfig = currConfig\n\t\t}\n\t\ttry {\n\t\t\tlog.silly('CFG', 'Looking for parent path.')\n\t\t\tconst lastPath = currPath\n\t\t\tcurrPath = path.normalize(path.join(currPath, '..'))\n\t\t\tif (lastPath === currPath) {\n\t\t\t\tcurrPath = null // root\n\t\t\t}\n\t\t\tif (currPath) {\n\t\t\t\tlog.silly('CFG', \"Parent path: '\" + currPath + \"'.\")\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tlog.silly('CFG', 'Exception:\\n' + e.stack)\n\t\t\tbreak\n\t\t}\n\t\tif (currPath === null) {\n\t\t\tlog.silly('CFG', \"Parent path with package.json file doesn't exists. Done.\")\n\t\t\tbreak\n\t\t}\n\t}\n\tif (lastConfig) {\n\t\tlog.verbose('CFG', 'Application level CMake.js config found:\\n' + JSON.stringify(lastConfig))\n\t} else {\n\t\tlog.verbose('CFG', \"Application level CMake.js config doesn't exists.\")\n\t}\n\treturn lastConfig\n}\n","function getNpmConfig() {\n\tconst npmOptions = {}\n\tconst npmConfigPrefix = 'npm_config_'\n\tObject.keys(process.env).forEach(function (name) {\n\t\tif (name.indexOf(npmConfigPrefix) !== 0) {\n\t\t\treturn\n\t\t}\n\t\tconst value = process.env[name]\n\t\tname = name.substring(npmConfigPrefix.length)\n\t\tif (name) {\n\t\t\tnpmOptions[name] = value\n\t\t}\n\t}, this)\n\n\treturn npmOptions\n}\n\nexport default function (log) {\n\tlog.verbose('CFG', 'Looking for NPM config.')\n\tconst options = getNpmConfig()\n\n\tif (options) {\n\t\tlog.silly('CFG', 'NPM options:', options)\n\t} else {\n\t\tlog.verbose('CFG', 'There are no NPM options available.')\n\t}\n\n\treturn options\n}\n"],"mappings":"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","names":["require","os","which","log","createDebug","semver","assert","crypto","axios","MemoryStream","fs","zlib","import_node_os","path","os","headers","fs","log","urlJoin","nodeExecFile","path","fs","import_fs_extra","import_node_path","path","import_node_path","import_node_module","log","path","import_npmlog","import_node_child_process","import_node_path","cp","import_npmlog","import_node_fs","import_node_path","import_semver","log","path","semver","import_node_assert","CMake","assert","findVisualStudio","import_which","import_fs_extra","import_node_path","import_node_url","__dirname","rc","path","fs","which","log","stdout","headers","import_node_path","import_node_fs","log","path","fs","log","import_node_path","import_node_fs","log","path","fs"]}
|