@@ -34,6 +34,9 @@ const minimist = require('minimist');
34
34
const { compileBuildTask } = require ( './gulpfile.compile' ) ;
35
35
const { compileExtensionsBuildTask, compileExtensionMediaBuildTask } = require ( './gulpfile.extensions' ) ;
36
36
const { getSettingsSearchBuildId, shouldSetupSettingsSearch } = require ( './azure-pipelines/upload-configuration' ) ;
37
+ const { promisify } = require ( 'util' ) ;
38
+ const glob = promisify ( require ( 'glob' ) ) ;
39
+ const rcedit = promisify ( require ( 'rcedit' ) ) ;
37
40
38
41
// Build
39
42
const vscodeEntryPoints = _ . flatten ( [
@@ -347,6 +350,35 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
347
350
} ;
348
351
}
349
352
353
+ function patchWin32DependenciesTask ( destinationFolderName ) {
354
+ const cwd = path . join ( path . dirname ( root ) , destinationFolderName ) ;
355
+
356
+ return async ( ) => {
357
+ const deps = await glob ( '**/*.node' , { cwd } ) ;
358
+ const packageJson = JSON . parse ( await fs . promises . readFile ( path . join ( cwd , 'resources' , 'app' , 'package.json' ) , 'utf8' ) ) ;
359
+ const product = JSON . parse ( await fs . promises . readFile ( path . join ( cwd , 'resources' , 'app' , 'product.json' ) , 'utf8' ) ) ;
360
+ const baseVersion = packageJson . version . replace ( / - .* $ / , '' ) ;
361
+
362
+ await Promise . all ( deps . map ( async dep => {
363
+ const basename = path . basename ( dep ) ;
364
+
365
+ await rcedit ( path . join ( cwd , dep ) , {
366
+ 'file-version' : baseVersion ,
367
+ 'version-string' : {
368
+ 'CompanyName' : 'Microsoft Corporation' ,
369
+ 'FileDescription' : product . nameLong ,
370
+ 'FileVersion' : packageJson . version ,
371
+ 'InternalName' : basename ,
372
+ 'LegalCopyright' : 'Copyright (C) 2022 Microsoft. All rights reserved' ,
373
+ 'OriginalFilename' : basename ,
374
+ 'ProductName' : product . nameLong ,
375
+ 'ProductVersion' : packageJson . version ,
376
+ }
377
+ } ) ;
378
+ } ) ) ;
379
+ } ;
380
+ }
381
+
350
382
const buildRoot = path . dirname ( root ) ;
351
383
352
384
const BUILD_TARGETS = [
@@ -370,10 +402,16 @@ BUILD_TARGETS.forEach(buildTarget => {
370
402
const sourceFolderName = `out-vscode${ dashed ( minified ) } ` ;
371
403
const destinationFolderName = `VSCode${ dashed ( platform ) } ${ dashed ( arch ) } ` ;
372
404
373
- const vscodeTaskCI = task . define ( `vscode ${ dashed ( platform ) } ${ dashed ( arch ) } ${ dashed ( minified ) } -ci` , task . series (
405
+ const tasks = [
374
406
util . rimraf ( path . join ( buildRoot , destinationFolderName ) ) ,
375
407
packageTask ( platform , arch , sourceFolderName , destinationFolderName , opts )
376
- ) ) ;
408
+ ] ;
409
+
410
+ if ( platform === 'win32' ) {
411
+ tasks . push ( patchWin32DependenciesTask ( destinationFolderName ) ) ;
412
+ }
413
+
414
+ const vscodeTaskCI = task . define ( `vscode${ dashed ( platform ) } ${ dashed ( arch ) } ${ dashed ( minified ) } -ci` , task . series ( ...tasks ) ) ;
377
415
gulp . task ( vscodeTaskCI ) ;
378
416
379
417
const vscodeTask = task . define ( `vscode${ dashed ( platform ) } ${ dashed ( arch ) } ${ dashed ( minified ) } ` , task . series (
0 commit comments