1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-19 14:25:14 +03:00

Fixed build platform dependency, updated version.

This commit is contained in:
Michael Keller 2017-11-24 16:40:02 +13:00 committed by mikeller
parent d640c9cd5c
commit b28812c519
3 changed files with 100 additions and 83 deletions

View file

@ -1,5 +1,7 @@
'use strict'; 'use strict';
var pkg = require('./package.json');
var child_process = require('child_process'); var child_process = require('child_process');
var fs = require('fs'); var fs = require('fs');
var path = require('path'); var path = require('path');
@ -11,6 +13,7 @@ var NwBuilder = require('nw-builder');
var gulp = require('gulp'); var gulp = require('gulp');
var concat = require('gulp-concat'); var concat = require('gulp-concat');
var runSequence = require('run-sequence'); var runSequence = require('run-sequence');
var os = require('os');
var distDir = './dist/'; var distDir = './dist/';
var appsDir = './apps/'; var appsDir = './apps/';
@ -23,29 +26,48 @@ var releaseDir = './release/';
// Get platform from commandline args // Get platform from commandline args
// # // #
// # gulp <task> --osx64 to execute task only for macOS platform (--osx64, --win32 or --linux64) // # gulp <task> [<platform>]+ Run only for platform(s) (with <platform> one of --linux64, --osx64, or --win32)
// # // #
function get_platform_from_args() { function getPlatforms() {
var supportedPlatforms = ['osx64', 'win32', 'linux64']; var supportedPlatforms = ['linux64', 'osx64', 'win32'];
var platforms = []; var platforms = [];
if (process.argv.length > 3) { var regEx = /--(\w+)/;
for (var i = 3; i < process.argv.length; i++) { for (var i = 3; i < process.argv.length; i++) {
var arg = process.argv[i].split('-')[2]; var arg = process.argv[i].match(regEx)[1];
if (supportedPlatforms.indexOf(arg) > -1) { if (supportedPlatforms.indexOf(arg) > -1) {
platforms.push(arg); platforms.push(arg);
} } else {
else { console.log('Unknown platform: ' + arg);
console.log('Unknown platform: ' + arg); process.exit();
process.exit();
}
} }
return platforms;
} }
return supportedPlatforms;
if (platforms.length === 0) {
switch (os.platform()) {
case 'darwin':
platforms.push('osx64');
break;
case 'linux':
platforms.push('linux64');
break;
case 'win32':
platform.push('win32');
break;
default:
break;
}
}
console.log('Building for platform(s): ' + platforms + '.');
return platforms;
} }
function get_release_filename(platform, ext) { function get_release_filename(platform, ext) {
var pkg = require('./package.json');
return 'Betaflight-Configurator_' + platform + '_' + pkg.version + '.' + ext; return 'Betaflight-Configurator_' + platform + '_' + pkg.version + '.' + ext;
} }
@ -207,13 +229,13 @@ gulp.task('dist', ['clean-dist'], function () {
// Create runable app directories in ./apps // Create runable app directories in ./apps
gulp.task('apps', ['dist', 'clean-apps'], function (done) { gulp.task('apps', ['dist', 'clean-apps'], function (done) {
var platform = get_platform_from_args(); var platforms = getPlatforms();
console.log('Building app for platform(s): ' + platform); console.log('Release build.');
var builder = new NwBuilder({ var builder = new NwBuilder({
files: './dist/**/*', files: './dist/**/*',
buildDir: appsDir, buildDir: appsDir,
platforms: platform, platforms: platforms,
flavor: 'normal', flavor: 'normal',
macIcns: './images/bf_icon.icns', macIcns: './images/bf_icon.icns',
macPlist: { 'CFBundleDisplayName': 'Betaflight Configurator'}, macPlist: { 'CFBundleDisplayName': 'Betaflight Configurator'},
@ -233,13 +255,13 @@ gulp.task('apps', ['dist', 'clean-apps'], function (done) {
// Create debug app directories in ./debug // Create debug app directories in ./debug
gulp.task('debug', ['dist', 'clean-debug'], function (done) { gulp.task('debug', ['dist', 'clean-debug'], function (done) {
var platform = get_platform_from_args(); var platforms = getPlatforms();
console.log('Building debug for platform: ' + platform); console.log('Debug build.');
var builder = new NwBuilder({ var builder = new NwBuilder({
files: './dist/**/*', files: './dist/**/*',
buildDir: debugDir, buildDir: debugDir,
platforms: platform, platforms: platforms,
flavor: 'sdk', flavor: 'sdk',
macIcns: './images/bf_icon.icns', macIcns: './images/bf_icon.icns',
macPlist: { 'CFBundleDisplayName': 'Betaflight Configurator'}, macPlist: { 'CFBundleDisplayName': 'Betaflight Configurator'},
@ -259,7 +281,6 @@ gulp.task('debug', ['dist', 'clean-debug'], function (done) {
// Create distribution package for windows platform // Create distribution package for windows platform
function release_win32() { function release_win32() {
var pkg = require('./package.json');
var src = path.join(appsDir, pkg.name, 'win32'); var src = path.join(appsDir, pkg.name, 'win32');
var output = fs.createWriteStream(path.join(releaseDir, get_release_filename('win32', 'zip'))); var output = fs.createWriteStream(path.join(releaseDir, get_release_filename('win32', 'zip')));
var archive = archiver('zip', { var archive = archiver('zip', {
@ -274,7 +295,6 @@ function release_win32() {
// Create distribution package for linux platform // Create distribution package for linux platform
function release_linux64() { function release_linux64() {
var pkg = require('./package.json');
var src = path.join(appsDir, pkg.name, 'linux64'); var src = path.join(appsDir, pkg.name, 'linux64');
var output = fs.createWriteStream(path.join(releaseDir, get_release_filename('linux64', 'zip'))); var output = fs.createWriteStream(path.join(releaseDir, get_release_filename('linux64', 'zip')));
var archive = archiver('zip', { var archive = archiver('zip', {
@ -290,7 +310,6 @@ function release_linux64() {
// Create distribution package for macOS platform // Create distribution package for macOS platform
function release_osx64() { function release_osx64() {
var appdmg = require('gulp-appdmg'); var appdmg = require('gulp-appdmg');
var pkg = require('./package.json');
return gulp.src([]) return gulp.src([])
.pipe(appdmg({ .pipe(appdmg({
@ -318,30 +337,16 @@ gulp.task('release', ['apps', 'clean-release'], function () {
} }
}); });
var platform = get_platform_from_args(); var platforms = getPlatforms();
console.log('Building release for platform: ' + platform); console.log('Packing release.');
if (platform.length == 1) { if (platforms.indexOf('linux64') !== -1) {
switch (platform[0]) {
case 'osx64':
return release_osx64();
break;
case 'linux64':
return release_linux64();
break;
case 'win32':
return release_win32();
break;
default:
console.log('Unknown platform');
break;
}
}
else {
release_osx64();
release_linux64(); release_linux64();
} else if (platforms.indexOf('osx64') !== -1) {
release_osx64();
} else if (platforms.indexOf('win32') !== -1) {
release_win32(); release_win32();
} }
}); });
gulp.task('default', ['apps']); gulp.task('default', ['debug']);

View file

@ -1,7 +1,7 @@
{ {
"manifest_version": 2, "manifest_version": 2,
"minimum_chrome_version": "38", "minimum_chrome_version": "38",
"version": "10.0.0-RC1", "version": "10.0.0-RC2",
"author": "Betaflight Squad", "author": "Betaflight Squad",
"name": "Betaflight - Configurator", "name": "Betaflight - Configurator",
"short_name": "Betaflight", "short_name": "Betaflight",

View file

@ -1,39 +1,51 @@
{ {
"name": "betaflight-configurator", "name": "betaflight-configurator",
"description": "Crossplatform configuration tool for Betaflight flight control system.", "description": "Crossplatform configuration tool for Betaflight flight control system.",
"version": "10.0.0-RC1", "version": "10.0.0-RC2",
"main": "main.html", "main": "main.html",
"default_locale": "en", "default_locale": "en",
"scripts": { "scripts": {
"start": "node_modules/gulp/bin/gulp.js dist && node_modules/nw/bin/nw ." "start": "node_modules/gulp/bin/gulp.js dist && node_modules/nw/bin/nw .",
}, "_postinstall": "node ./node_modules/platform-dependent-modules/cli.js",
"window": { "postinstall": "npm run _postinstall"
"title": "Betaflight Configurator", },
"icon": "images/bf_icon_128.png", "window": {
"toolbar": true, "title": "Betaflight Configurator",
"width": 1280, "icon": "images/bf_icon_128.png",
"height": 800 "toolbar": true,
}, "width": 1280,
"repository": { "height": 800
"type": "git", },
"url": "github.com/betaflight/betaflight-configurator" "repository": {
}, "type": "git",
"author": "The Betaflight open source project.", "url": "github.com/betaflight/betaflight-configurator"
"license": "GPL-3.0", },
"dependencies": { "author": "The Betaflight open source project.",
"archiver": "^2.0.3", "license": "GPL-3.0",
"bluebird": "3.4.1", "dependencies": {
"del": "^3.0.0", "bluebird": "3.4.1",
"gulp": "~3.9.1", "jquery": "2.1.4",
"gulp-concat": "~2.6.1", "nw": "^0.25.4-sdk",
"inflection": "1.12.0", "three": "0.72.0"
"jquery": "2.1.4", },
"jquery-ui-npm": "1.12.0", "devDependencies": {
"nw": "^0.25.4-sdk", "archiver": "^2.0.3",
"nw-builder": "^3.4.1", "del": "^3.0.0",
"run-sequence": "^2.2.0", "gulp": "~3.9.1",
"temp": "^0.8.3", "gulp-concat": "~2.6.1",
"three": "0.72.0", "inflection": "1.12.0",
"gulp-appdmg": "1.0.3" "jquery-ui-npm": "1.12.0",
"nw-builder": "^3.4.1",
"os": "^0.1.1",
"platform-dependent-modules": "0.0.14",
"run-sequence": "^2.2.0",
"temp": "^0.8.3"
},
"config": {
"platformDependentModules": {
"darwin": [
"gulp-appdmg@1.0.3"
]
} }
}
} }