tfs: win64 package and setup

This commit is contained in:
Joao Moreno 2017-05-18 15:40:58 +02:00
parent ba7c0d324b
commit ad22530b14
2 changed files with 43 additions and 30 deletions

View file

@ -15,8 +15,10 @@ const pkg = require('../package.json');
const product = require('../product.json');
const repoPath = path.dirname(__dirname);
const buildPath = path.join(path.dirname(repoPath), 'VSCode-win32-ia32');
const zipPath = path.join(repoPath, '.build', 'win32-ia32', 'archive', 'VSCode-win32-ia32.zip');
const buildPath = arch => path.join(path.dirname(repoPath), `VSCode-win32-${arch}`);
const zipDir = arch => path.join(repoPath, '.build', `win32-${arch}`, 'archive');
const zipPath = arch => path.join(zipDir(arch), `VSCode-win32-${arch}.zip`);
const setupDir = arch => path.join(repoPath, '.build', `win32-${arch}`, 'setup');
const issPath = path.join(__dirname, 'win32', 'code.iss');
const innoSetupPath = path.join(path.dirname(path.dirname(require.resolve('innosetup-compiler'))), 'bin', 'ISCC.exe');
@ -36,37 +38,48 @@ function packageInnoSetup(iss, options, cb) {
.on('exit', () => cb(null));
}
function buildWin32Setup(cb) {
const definitions = {
NameLong: product.nameLong,
NameShort: product.nameShort,
DirName: product.win32DirName,
Version: pkg.version,
RawVersion: pkg.version.replace(/-\w+$/, ''),
NameVersion: product.win32NameVersion,
ExeBasename: product.nameShort,
RegValueName: product.win32RegValueName,
ShellNameShort: product.win32ShellNameShort,
AppMutex: product.win32MutexName,
AppId: product.win32AppId,
AppUserId: product.win32AppUserModelId,
SourceDir: buildPath,
RepoDir: repoPath
function buildWin32Setup(arch) {
return cb => {
const definitions = {
NameLong: product.nameLong,
NameShort: product.nameShort,
DirName: product.win32DirName,
Version: pkg.version,
RawVersion: pkg.version.replace(/-\w+$/, ''),
NameVersion: product.win32NameVersion,
ExeBasename: product.nameShort,
RegValueName: product.win32RegValueName,
ShellNameShort: product.win32ShellNameShort,
AppMutex: product.win32MutexName,
AppId: product.win32AppId,
AppUserId: product.win32AppUserModelId,
SourceDir: buildPath(arch),
RepoDir: repoPath,
OutputDir: setupDir(arch)
};
packageInnoSetup(issPath, { definitions }, cb);
};
packageInnoSetup(issPath, { definitions }, cb);
}
gulp.task('clean-vscode-win32-ia32-setup', util.rimraf('.build/win32-ia32/setup'));
gulp.task('vscode-win32-ia32-setup', ['clean-vscode-win32-ia32-setup'], buildWin32Setup);
gulp.task('clean-vscode-win32-ia32-setup', util.rimraf(setupDir('ia32')));
gulp.task('vscode-win32-ia32-setup', ['clean-vscode-win32-ia32-setup'], buildWin32Setup('ia32'));
function archiveWin32Setup(cb) {
const args = ['a', '-tzip', zipPath, buildPath, '-r'];
gulp.task('clean-vscode-win32-x64-setup', util.rimraf(setupDir('x64')));
gulp.task('vscode-win32-x64-setup', ['clean-vscode-win32-x64-setup'], buildWin32Setup('x64'));
cp.spawn(_7z, args, { stdio: 'inherit' })
.on('error', cb)
.on('exit', () => cb(null));
function archiveWin32Setup(arch) {
return cb => {
const args = ['a', '-tzip', zipPath(arch), buildPath(arch), '-r'];
cp.spawn(_7z, args, { stdio: 'inherit' })
.on('error', cb)
.on('exit', () => cb(null));
};
}
gulp.task('clean-vscode-win32-ia32-archive', util.rimraf('.build/win32-ia32/archive'));
gulp.task('vscode-win32-ia32-archive', ['clean-vscode-win32-ia32-archive'], archiveWin32Setup);
gulp.task('clean-vscode-win32-ia32-archive', util.rimraf(zipDir('ia32')));
gulp.task('vscode-win32-ia32-archive', ['clean-vscode-win32-ia32-archive'], archiveWin32Setup('ia32'));
gulp.task('clean-vscode-win32-x64-archive', util.rimraf(zipDir('x64')));
gulp.task('vscode-win32-x64-archive', ['clean-vscode-win32-x64-archive'], archiveWin32Setup('x64'));

View file

@ -14,7 +14,7 @@ AppUpdatesURL=https://code.visualstudio.com/
DefaultDirName={pf}\{#DirName}
DefaultGroupName={#NameLong}
AllowNoIcons=yes
OutputDir={#RepoDir}\.build\win32-ia32\setup
OutputDir={#OutputDir}
OutputBaseFilename=VSCodeSetup
Compression=lzma
SolidCompression=yes