mirror of
https://github.com/stablyai/orca.git
synced 2026-10-23 16:03:49 +00:00
fix(windows): use local node-addon-api gyp path
This commit is contained in:
@@ -7,7 +7,7 @@ index 855bd4b86f0a3c18c7594212c0e42b6e35bc4001..5f15551cb1520af996f216500a83ac68
|
||||
"target_name": "windows_process_tree",
|
||||
"dependencies": [
|
||||
- "<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except",
|
||||
+ "<!(node -p \"require.resolve('node-addon-api/node_addon_api.gyp')\"):node_addon_api_except",
|
||||
+ "node_modules/node-addon-api/node_addon_api.gyp:node_addon_api_except",
|
||||
],
|
||||
"conditions": [
|
||||
['OS==\"win\"', {
|
||||
|
||||
@@ -68,10 +68,10 @@ function assertPatchApplied() {
|
||||
'config/patches/@vscode__windows-process-tree@0.8.0.patch; run pnpm install.'
|
||||
)
|
||||
}
|
||||
if (!bindingGyp.includes("require.resolve('node-addon-api/node_addon_api.gyp')")) {
|
||||
if (!bindingGyp.includes('node_modules/node-addon-api/node_addon_api.gyp')) {
|
||||
throw new Error(
|
||||
'binding.gyp still uses require("node-addon-api").targets. That path is ' +
|
||||
'cwd-relative and misses node_addon_api.gyp under pnpm on Windows. ' +
|
||||
'binding.gyp still uses a dynamic node-addon-api path. The local package path avoids ' +
|
||||
'pnpm store and Windows drive-letter normalization issues. ' +
|
||||
'pnpm did not apply config/patches/@vscode__windows-process-tree@0.8.0.patch; run pnpm install.'
|
||||
)
|
||||
}
|
||||
@@ -94,10 +94,13 @@ function applyWindowsProcessTreeBuildFixes() {
|
||||
const originalBinding = bindingGyp
|
||||
const originalProcess = processCc
|
||||
|
||||
bindingGyp = bindingGyp.replace(
|
||||
"require('node-addon-api').targets",
|
||||
"require.resolve('node-addon-api/node_addon_api.gyp')"
|
||||
)
|
||||
const localDependency = 'node_modules/node-addon-api/node_addon_api.gyp:node_addon_api_except'
|
||||
for (const dynamicDependency of [
|
||||
String.raw`<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except`,
|
||||
String.raw`<!(node -p \"require.resolve('node-addon-api/node_addon_api.gyp')\"):node_addon_api_except`
|
||||
]) {
|
||||
bindingGyp = bindingGyp.replace(dynamicDependency, localDependency)
|
||||
}
|
||||
bindingGyp = bindingGyp.replace(
|
||||
/\r?\n\s*"msvs_configuration_attributes": \{\s*"SpectreMitigation": "Spectre"\s*\},?/s,
|
||||
''
|
||||
|
||||
@@ -9,23 +9,24 @@ const PATCH = readFileSync(
|
||||
'utf8'
|
||||
)
|
||||
const PACKAGE_DIR = join(projectDir, 'node_modules', '@vscode', 'windows-process-tree')
|
||||
const ABSOLUTE_GYP = "require.resolve('node-addon-api/node_addon_api.gyp')"
|
||||
const LOCAL_GYP = 'node_modules/node-addon-api/node_addon_api.gyp'
|
||||
const RESOLVED_GYP = "require.resolve('node-addon-api/node_addon_api.gyp')"
|
||||
|
||||
describe('windows-process-tree node-addon-api gyp path', () => {
|
||||
it('keeps the gyp project path absolute so pnpm Windows source builds find it', () => {
|
||||
it('keeps the gyp project path local so pnpm Windows source builds find it', () => {
|
||||
expect(PATCH).toContain(
|
||||
String.raw`+ "<!(node -p \"require.resolve('node-addon-api/node_addon_api.gyp')\"):node_addon_api_except"`
|
||||
'+ "node_modules/node-addon-api/node_addon_api.gyp:node_addon_api_except",'
|
||||
)
|
||||
const buildScript = readFileSync(
|
||||
join(projectDir, 'config/scripts/build-windows-process-tree-relay-addon.mjs'),
|
||||
'utf8'
|
||||
)
|
||||
expect(buildScript).toContain(ABSOLUTE_GYP)
|
||||
expect(buildScript).toContain(LOCAL_GYP)
|
||||
expect(buildScript).toContain('Repaired un-applied pnpm patch hunks before build.')
|
||||
})
|
||||
|
||||
it('resolves node_addon_api.gyp to a real file from the package directory', () => {
|
||||
const resolved = execFileSync(process.execPath, ['-p', ABSOLUTE_GYP], {
|
||||
const resolved = execFileSync(process.execPath, ['-p', RESOLVED_GYP], {
|
||||
cwd: PACKAGE_DIR,
|
||||
encoding: 'utf8'
|
||||
}).trim()
|
||||
|
||||
Generated
+3
-3
@@ -9,7 +9,7 @@ overrides:
|
||||
|
||||
patchedDependencies:
|
||||
'@vscode/windows-process-tree@0.8.0':
|
||||
hash: 679908cbad6a7791d2fdf4aeececfc717879e04c0b8ed240a016d3dc02d5f2a6
|
||||
hash: 78f9cd88b7e14e56dbe43312011d21084dd05f314171ca21a24d58d1d1ab26b7
|
||||
path: config/patches/@vscode__windows-process-tree@0.8.0.patch
|
||||
'@xterm/addon-ligatures@0.11.0-beta.287':
|
||||
hash: 47405b9994b5acf1b4e90b49250358c1ca03649854d59560e7732b72fe336920
|
||||
@@ -407,7 +407,7 @@ importers:
|
||||
optionalDependencies:
|
||||
'@vscode/windows-process-tree':
|
||||
specifier: 0.8.0
|
||||
version: 0.8.0(patch_hash=679908cbad6a7791d2fdf4aeececfc717879e04c0b8ed240a016d3dc02d5f2a6)
|
||||
version: 0.8.0(patch_hash=78f9cd88b7e14e56dbe43312011d21084dd05f314171ca21a24d58d1d1ab26b7)
|
||||
sherpa-onnx-darwin-arm64:
|
||||
specifier: 1.12.37
|
||||
version: 1.12.37
|
||||
@@ -9606,7 +9606,7 @@ snapshots:
|
||||
convert-source-map: 2.0.0
|
||||
tinyrainbow: 3.1.0
|
||||
|
||||
'@vscode/windows-process-tree@0.8.0(patch_hash=679908cbad6a7791d2fdf4aeececfc717879e04c0b8ed240a016d3dc02d5f2a6)':
|
||||
'@vscode/windows-process-tree@0.8.0(patch_hash=78f9cd88b7e14e56dbe43312011d21084dd05f314171ca21a24d58d1d1ab26b7)':
|
||||
dependencies:
|
||||
node-addon-api: 7.1.0
|
||||
optional: true
|
||||
|
||||
Reference in New Issue
Block a user