зеркало из https://github.com/docker/kitematic.git
Merge pull request #1179 from kitematic/unified-build
Ability to build windows binaries on Mac
This commit is contained in:
Коммит
ea0f607965
|
@ -20,7 +20,8 @@ Before you file an issue or a pull request, read the following tips on how to ke
|
|||
### Prerequisites for developing Kitematic on Mac
|
||||
You will need to install:
|
||||
- The [Docker Toolbox](https://docker.com/toolbox)
|
||||
- [Node.js](https://nodejs.org/)
|
||||
- [Node.js](https://nodejs.org/)
|
||||
- Wine `brew install wine` (only if you want to generate a Windows release on OS X)
|
||||
- The latest Xcode from the Apple App Store.
|
||||
|
||||
### Prerequisites for developing Kitematic on Windows
|
||||
|
@ -30,7 +31,6 @@ You will need to install:
|
|||
- Open a command prompt (`cmd`) and run the command `mkdir ~/AppData/Roaming/npm`
|
||||
- [Visual Studio 2013 Community](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) (or similar) - You do not need to install any optional packages during install.
|
||||
- [Python](https://www.python.org/downloads/release/python-2710/)
|
||||
- [Temporary] Set the `DOCKER_TOOLBOX_INSTALL_PATH` environment variable as follows:
|
||||
|
||||
![Toolbox Env Var](https://cloud.githubusercontent.com/assets/251292/10656552/adaedb20-7834-11e5-8881-d5402d3fee37.png)
|
||||
|
||||
|
|
47
Gruntfile.js
47
Gruntfile.js
|
@ -20,25 +20,14 @@ module.exports = function (grunt) {
|
|||
};
|
||||
|
||||
var BASENAME = 'Kitematic';
|
||||
var APPNAME = BASENAME;
|
||||
|
||||
if (alpha) {
|
||||
APPNAME += ' (Alpha)';
|
||||
} else if (beta) {
|
||||
APPNAME += ' (Beta)';
|
||||
}
|
||||
|
||||
var OSX_APPNAME = BASENAME + ' (Beta)';
|
||||
var WINDOWS_APPNAME = BASENAME + ' (Alpha)';
|
||||
var OSX_OUT = './dist';
|
||||
var OSX_OUT_X64 = OSX_OUT + '/' + APPNAME + '-darwin-x64';
|
||||
var OSX_FILENAME = OSX_OUT_X64 + '/' + APPNAME + '.app';
|
||||
var OSX_OUT_X64 = OSX_OUT + '/' + OSX_APPNAME + '-darwin-x64';
|
||||
var OSX_FILENAME = OSX_OUT_X64 + '/' + OSX_APPNAME + '.app';
|
||||
|
||||
grunt.initConfig({
|
||||
IDENTITY: 'Developer ID Application: Docker Inc',
|
||||
APPNAME: APPNAME,
|
||||
APPNAME_ESCAPED: APPNAME.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'),
|
||||
OSX_OUT: OSX_OUT,
|
||||
OSX_OUT_ESCAPED: OSX_OUT.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'),
|
||||
OSX_OUT_X64: OSX_OUT_X64,
|
||||
OSX_FILENAME: OSX_FILENAME,
|
||||
OSX_FILENAME_ESCAPED: OSX_FILENAME.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'),
|
||||
|
||||
|
@ -58,7 +47,7 @@ module.exports = function (grunt) {
|
|||
},
|
||||
osx: {
|
||||
options: {
|
||||
name: APPNAME,
|
||||
name: OSX_APPNAME,
|
||||
dir: 'build/',
|
||||
out: 'dist',
|
||||
version: packagejson['electron-version'],
|
||||
|
@ -85,8 +74,8 @@ module.exports = function (grunt) {
|
|||
'version-string': {
|
||||
'CompanyName': 'Docker',
|
||||
'ProductVersion': packagejson.version,
|
||||
'ProductName': APPNAME,
|
||||
'FileDescription': APPNAME,
|
||||
'ProductName': WINDOWS_APPNAME,
|
||||
'FileDescription': WINDOWS_APPNAME,
|
||||
'InternalName': BASENAME + '.exe',
|
||||
'OriginalFilename': BASENAME + '.exe',
|
||||
'LegalCopyright': 'Copyright 2015 Docker Inc. All rights reserved.'
|
||||
|
@ -95,21 +84,6 @@ module.exports = function (grunt) {
|
|||
}
|
||||
},
|
||||
|
||||
'create-windows-installer': {
|
||||
config: {
|
||||
appDirectory: path.join(__dirname, 'dist/' + BASENAME + '-win32-x64'),
|
||||
outputDirectory: path.join(__dirname, 'dist'),
|
||||
authors: 'Docker Inc.',
|
||||
loadingGif: 'util/loading.gif',
|
||||
setupIcon: 'util/setup.ico',
|
||||
iconUrl: 'https://raw.githubusercontent.com/kitematic/kitematic/master/util/kitematic.ico',
|
||||
description: APPNAME,
|
||||
title: APPNAME,
|
||||
exe: BASENAME + '.exe',
|
||||
version: packagejson.version
|
||||
}
|
||||
},
|
||||
|
||||
// images
|
||||
copy: {
|
||||
dev: {
|
||||
|
@ -269,12 +243,7 @@ module.exports = function (grunt) {
|
|||
});
|
||||
|
||||
grunt.registerTask('default', ['newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']);
|
||||
|
||||
if (process.platform === 'win32') {
|
||||
grunt.registerTask('release', ['clean:release', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'compress']);
|
||||
} else {
|
||||
grunt.registerTask('release', ['clean:release', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'shell:sign', 'shell:zip']);
|
||||
}
|
||||
grunt.registerTask('release', ['clean:release', 'babel', 'less', 'copy:dev', 'electron', 'copy:osx', 'shell:sign', 'shell:zip', 'copy:windows', 'rcedit:exes', 'compress']);
|
||||
|
||||
process.on('SIGINT', function () {
|
||||
grunt.task.run(['shell:electron:kill']);
|
||||
|
|
Загрузка…
Ссылка в новой задаче