Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add gulp targets, fix build for Windows on Arm. #85326

Merged
merged 11 commits into from
Apr 14, 2020
1 change: 1 addition & 0 deletions build/gulpfile.reh.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const cp = require('child_process');
const REPO_ROOT = path.dirname(__dirname);

const BUILD_TARGETS = [
{ platform: 'win32', arch: 'arm64', pkgTarget: 'node8-win-arm64' },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove this and focus on the client bits for now.

{ platform: 'win32', arch: 'ia32', pkgTarget: 'node8-win-x86' },
{ platform: 'win32', arch: 'x64', pkgTarget: 'node8-win-x64' },
{ platform: 'darwin', arch: null, pkgTarget: 'node8-macos-x64' },
Expand Down
1 change: 1 addition & 0 deletions build/gulpfile.vscode.js
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const buildRoot = path.dirname(root);

const BUILD_TARGETS = [
{ platform: 'win32', arch: 'arm64' },
{ platform: 'win32', arch: 'ia32' },
{ platform: 'win32', arch: 'x64' },
{ platform: 'darwin', arch: null, opts: { stats: true } },
Expand Down
3 changes: 2 additions & 1 deletion build/gulpfile.vscode.win32.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ function archiveWin32Setup(arch) {
};
}

gulp.task(task.define('vscode-win32-arm64-archive', task.series(util.rimraf(zipDir('arm64')), archiveWin32Setup('arm64'))));
gulp.task(task.define('vscode-win32-ia32-archive', task.series(util.rimraf(zipDir('ia32')), archiveWin32Setup('ia32'))));
gulp.task(task.define('vscode-win32-x64-archive', task.series(util.rimraf(zipDir('x64')), archiveWin32Setup('x64'))));

Expand All @@ -146,6 +147,6 @@ gulp.task(task.define('vscode-win32-ia32-inno-updater', task.series(copyInnoUpda
gulp.task(task.define('vscode-win32-x64-inno-updater', task.series(copyInnoUpdater('x64'), updateIcon(path.join(buildPath('x64'), 'tools', 'inno_updater.exe')))));

// CodeHelper.exe icon

gulp.task(task.define('vscode-win32-arm64-code-helper', task.series(updateIcon(path.join(buildPath('ia32'), 'resources', 'app', 'out', 'vs', 'platform', 'files', 'node', 'watcher', 'win32', 'CodeHelper.exe')))));
joaomoreno marked this conversation as resolved.
Show resolved Hide resolved
gulp.task(task.define('vscode-win32-ia32-code-helper', task.series(updateIcon(path.join(buildPath('ia32'), 'resources', 'app', 'out', 'vs', 'platform', 'files', 'node', 'watcher', 'win32', 'CodeHelper.exe')))));
gulp.task(task.define('vscode-win32-x64-code-helper', task.series(updateIcon(path.join(buildPath('x64'), 'resources', 'app', 'out', 'vs', 'platform', 'files', 'node', 'watcher', 'win32', 'CodeHelper.exe')))));
2 changes: 1 addition & 1 deletion build/lib/electron.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ function getElectron(arch) {
.pipe(vfs.dest('.build/electron'));
};
}
async function main(arch = process.arch) {
async function main(arch = process.env["npm_config_arch"] || process.arch) {
const version = getElectronVersion();
const electronPath = path.join(root, '.build', 'electron');
const versionFile = path.join(electronPath, 'version');
Expand Down
2 changes: 1 addition & 1 deletion build/lib/electron.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ function getElectron(arch: string): () => NodeJS.ReadWriteStream {
};
}

async function main(arch = process.arch): Promise<void> {
async function main(arch = process.env["npm_config_arch"] || process.arch): Promise<void> {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need this, since the build isn't fetching electron from here.

const version = getElectronVersion();
const electronPath = path.join(root, '.build', 'electron');
const versionFile = path.join(electronPath, 'version');
Expand Down
17 changes: 14 additions & 3 deletions build/npm/postinstall.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,28 @@ function yarnInstall(location, opts) {
console.log(`Installing dependencies in ${location}...`);
console.log(`$ yarn ${args.join(' ')}`);
const result = cp.spawnSync(yarn, args, opts);
richard-townsend-arm marked this conversation as resolved.
Show resolved Hide resolved

if (result.error || result.status !== 0) {
process.exit(1);
}
}

function remoteOpts() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, let's remove this and leave remote for another day.

opts = {};
if (process.env["npm_config_arch"] == "arm64") {
// Temporarily set remote arch to x86, because the remote portion builds
// against node, which is not consistently supported on Windows on Arm
// (yet).
opts.env = JSON.parse(JSON.stringify(process.env))
opts.env["npm_config_arch"] = "ia32"
}
return opts;
}

yarnInstall('extensions'); // node modules shared by all extensions

yarnInstall('remote'); // node modules used by vscode server
yarnInstall('remote', remoteOpts()); // node modules used by vscode server

yarnInstall('remote/web'); // node modules used by vscode web
yarnInstall('remote/web', remoteOpts()); // node modules used by vscode web

const allExtensionFolders = fs.readdirSync('extensions');
const extensions = allExtensionFolders.filter(e => {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"vscode-nsfw": "1.2.8",
"vscode-proxy-agent": "^0.5.2",
"vscode-ripgrep": "^1.5.8",
"vscode-sqlite3": "4.0.9",
"vscode-sqlite3": "4.0.10",
"vscode-textmate": "4.4.0",
"xterm": "4.5.0-beta.4",
"xterm-addon-search": "0.5.0",
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -9691,10 +9691,10 @@ vscode-ripgrep@^1.5.8:
resolved "https://registry.yarnpkg.com/vscode-ripgrep/-/vscode-ripgrep-1.5.8.tgz#32cb33da6d1a9ca8f5de8c2813ed5114fd55fc11"
integrity sha512-l6Pv/t1Jk63RU+kEkMO04XxnNRYdyzuesizj9AzFpcfrUxxpAjEJBK1qO9Mov30UUGZl7uDUBn+uCv9koaHPPA==

vscode-sqlite3@4.0.9:
version "4.0.9"
resolved "https://registry.yarnpkg.com/vscode-sqlite3/-/vscode-sqlite3-4.0.9.tgz#cad04964aff1e39121dd8c7cdb87c64a71bad9ce"
integrity sha512-g/xnAn4sgkVO+px/DfC7kpmCQ666W124tfMSVpbnQXsjMHlLhi4Urz4wPhS9YEFPz1Orl6h6MUF6wptzI6QFdg==
vscode-sqlite3@4.0.10:
version "4.0.10"
resolved "https://registry.yarnpkg.com/vscode-sqlite3/-/vscode-sqlite3-4.0.10.tgz#cf34cd98e5a49b24d3bb5ff5f2058744931f7cee"
integrity sha512-oYH3Nff3AMfbZpDiOhUh+hVtxClwrXBt9SGHGed+RcKf1Z4/fkLpfaldZeWgn4YBHFjNJjJ8HHRRfVvB8fXj1w==
dependencies:
nan "^2.14.0"

Expand Down