mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-11 18:41:06 -06:00
* Support Linux & Intel Macs This grabs the native files directly since the ones at the root are not expected to work in our cases, namely Intel Mac where we use arm machines to build the x64 build. * actually include macOS intel bits
70 lines
2.0 KiB
JavaScript
70 lines
2.0 KiB
JavaScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
// @ts-check
|
|
import withDefaults, { nodePlugins } from '../shared.webpack.config.mjs';
|
|
import CopyWebpackPlugin from 'copy-webpack-plugin';
|
|
import path from 'path';
|
|
|
|
const isWindows = process.platform === 'win32';
|
|
const isMacOS = process.platform === 'darwin';
|
|
const isLinux = !isWindows && !isMacOS;
|
|
|
|
const windowsArches = ['x64'];
|
|
const linuxArches = ['x64'];
|
|
|
|
let platformFolder;
|
|
switch (process.platform) {
|
|
case 'win32':
|
|
platformFolder = 'windows';
|
|
break;
|
|
case 'darwin':
|
|
platformFolder = 'macos';
|
|
break;
|
|
case 'linux':
|
|
platformFolder = 'linux';
|
|
break;
|
|
default:
|
|
throw new Error(`Unsupported platform: ${process.platform}`);
|
|
}
|
|
|
|
const arch = process.env.VSCODE_ARCH || process.arch;
|
|
console.log(`Building Microsoft Authentication Extension for ${process.platform} (${arch})`);
|
|
|
|
const plugins = [...nodePlugins(import.meta.dirname)];
|
|
if (
|
|
(isWindows && windowsArches.includes(arch)) ||
|
|
isMacOS ||
|
|
(isLinux && linuxArches.includes(arch))
|
|
) {
|
|
plugins.push(new CopyWebpackPlugin({
|
|
patterns: [
|
|
{
|
|
// The native files we need to ship with the extension
|
|
from: `**/dist/${platformFolder}/${arch}/(lib|)msal*.(node|dll|dylib|so)`,
|
|
to: '[name][ext]'
|
|
}
|
|
]
|
|
}));
|
|
}
|
|
|
|
export default withDefaults({
|
|
context: import.meta.dirname,
|
|
entry: {
|
|
extension: './src/extension.ts'
|
|
},
|
|
externals: {
|
|
// The @azure/msal-node-runtime package requires this native node module (.node).
|
|
// It is currently only included on Windows, but the package handles unsupported platforms
|
|
// gracefully.
|
|
'./msal-node-runtime': 'commonjs ./msal-node-runtime'
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'keytar': path.resolve(import.meta.dirname, 'packageMocks', 'keytar', 'index.js')
|
|
}
|
|
},
|
|
plugins
|
|
});
|