Skip to content

Commit e0a6c8a

Browse files
author
Ricky Chien
committed
Bug 1022728 - Prevent building gaia when running ./build.sh gecko
1 parent 83e694f commit e0a6c8a

File tree

9 files changed

+40
-44
lines changed

9 files changed

+40
-44
lines changed

Android.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ gaia-tests-zip:
7474

7575
.PHONY: gaia-prefs
7676
gaia-prefs:
77-
$(MAKE) -C $(GAIA_PATH) $(GAIA_MAKE_FLAGS) preferences
77+
$(MAKE) -C $(GAIA_PATH) $(GAIA_MAKE_FLAGS) preferences settings
7878

7979
.PHONY: $(LOCAL_PATH)/profile.tar.gz
8080
$(LOCAL_PATH)/profile.tar.gz: gaia-prefs

Makefile

+8-3
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,10 @@ LANG=POSIX # Avoiding sort order differences between OSes
563563
app: b2g_sdk profile-dir
564564
@$(call run-js-command,app)
565565

566+
.PHONY: pre-app
567+
pre-app: b2g_sdk profile-dir
568+
@$(call run-js-command,pre-app)
569+
566570
# Keep old targets just for people/scripts still using it
567571
.PHONY: post-manifest
568572
post-manifest: app
@@ -670,6 +674,9 @@ endif # USE_LOCAL_XULRUNNER_SDK
670674
preferences: profile-dir b2g_sdk
671675
@$(call run-js-command,preferences)
672676

677+
# Generate profile/settings.json
678+
settings: pre-app
679+
673680
# Generate $(PROFILE_FOLDER)/extensions
674681
EXT_DIR=$(PROFILE_FOLDER)/extensions
675682
extensions: $(STAGE_DIR)/additional-extensions/downloaded.json
@@ -1012,10 +1019,8 @@ purge:
10121019
$(ADB) shell rm -r $(MSYS_FIX)/system/b2g/webapps
10131020
$(ADB) shell 'if test -d $(MSYS_FIX)/persist/svoperapps; then rm -r $(MSYS_FIX)/persist/svoperapps; fi'
10141021

1015-
$(PROFILE_FOLDER)/settings.json: b2g_sdk profile-dir app
1016-
10171022
# push $(PROFILE_FOLDER)/settings.json and $(PROFILE_FOLDER)/contacts.json (if CONTACTS_PATH defined) to the phone
1018-
install-default-data: $(PROFILE_FOLDER)/settings.json contacts
1023+
install-default-data: settings contacts app
10191024
$(ADB) shell stop b2g
10201025
$(ADB) remount
10211026
$(ADB) push $(PROFILE_FOLDER)/settings.json $(MSYS_FIX)/system/b2g/defaults/settings.json

apps/operatorvariant/build/build.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ OperatorAppBuilder.prototype.setOptions = function(options) {
335335

336336
this.gaia = utils.gaia.getInstance(options);
337337

338-
var settingsFile = utils.getFile(options.STAGE_DIR, 'settings_stage.json');
338+
var settingsFile = utils.getFile(options.PROFILE_DIR, 'settings.json');
339339
if (!settingsFile.exists()) {
340340
throw new Error('file not found: ' + settingsFile.path);
341341
}

build/clean-stage-app.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ exports.execute = function(options) {
1717
return;
1818
}
1919

20-
options.rebuildAppDirs.forEach(function(appdirPath) {
20+
options.GAIA_APPDIRS.split(' ').forEach(function(appdirPath) {
2121
try {
2222
var appName = utils.getFile(appdirPath).leafName;
2323
remove(options.STAGE_DIR, appName);

build/copy-common-files.js

-18
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,6 @@
44

55
const utils = require('./utils');
66

7-
/**
8-
* Copy settings_stage.json under stage to settings.json under profile.
9-
*/
10-
function copySettingsJStoProfile(stageDir, profileDir) {
11-
var settingsFile = stageDir.clone();
12-
var defaultsDir = profileDir.clone();
13-
settingsFile.append('settings_stage.json');
14-
settingsFile.copyTo(profileDir, 'settings.json');
15-
16-
defaultsDir.append('defaults');
17-
utils.ensureFolderExists(defaultsDir);
18-
settingsFile.copyTo(defaultsDir, 'settings.json');
19-
}
20-
217
function cleanProfile(webappsDir) {
228
// Profile can contain folders with a generated uuid that need to be deleted
239
// or apps will be duplicated.
@@ -52,10 +38,6 @@ function execute(options) {
5238
var webappsBaseDir = utils.getFile(options.PROFILE_DIR);
5339
var stageDir = gaia.stageDir;
5440

55-
if (options.BUILD_APP_NAME === '*') {
56-
copySettingsJStoProfile(stageDir, webappsBaseDir);
57-
}
58-
5941
var webappsJSONFile = stageDir.clone();
6042
webappsJSONFile.append('webapps_stage.json');
6143
var webappsStageJSON = utils.getJSON(webappsJSONFile);

build/pre-app.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,17 @@ function execute(options) {
2323
// A separate step for shared/ folder to generate its content in build time
2424
require('./keyboard-layouts').execute(options);
2525

26+
// Generate user.js
27+
require('./preferences').execute(options);
28+
2629
if (options.BUILD_APP_NAME == '*') {
2730
require('./settings').execute(options);
2831
}
2932

3033
// Copy shared files to stage folders
3134
require('./webapp-shared').execute(options);
3235

33-
// Generate user.js
34-
require('./preferences').execute(options);
35-
36-
// Copy common files such as settings.json and webapps.json
36+
// Copy common files such as webapps.json
3737
require('./copy-common-files').execute(options);
3838
}
3939
exports.execute = execute;

build/preferences.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,10 @@ PreferencesBuilder.prototype.writeDefaultUserJs = function() {
5252
return;
5353
}
5454

55-
// create a clean folder to store data for B2G, this folder will copy to
55+
// create a folder to store data for B2G, this folder will copy to
5656
// b2g output folder.
5757
let defaultsDir = utils.getFile(this.config.PROFILE_DIR, 'defaults');
58-
if (defaultsDir.exists()) {
59-
defaultsDir.remove(true);
60-
}
58+
6159
defaultsDir.append('pref');
6260
utils.ensureFolderExists(defaultsDir);
6361
let userJs = defaultsDir.clone();

build/settings.js

+12-4
Original file line numberDiff line numberDiff line change
@@ -201,11 +201,20 @@ function setHomescreenURL(settings, config) {
201201

202202
function writeSettings(settings, config) {
203203
// Finally write the settings file
204-
let settingsFile = utils.getFile(config.STAGE_DIR, 'settings_stage.json');
205-
utils.log('settings.js', 'Writing settings file: ' + settingsFile.path);
204+
let profileDir = utils.getFile(config.PROFILE_DIR);
205+
let settingsFile = utils.getFile(config.PROFILE_DIR, 'settings.json');
206+
let defaultsSettings = utils.getFile(
207+
config.PROFILE_DIR, 'defaults', 'settings.json');
208+
209+
utils.ensureFolderExists(profileDir);
206210
let content = JSON.stringify(settings);
207211
utils.writeContent(settingsFile, content + '\n');
208-
utils.log('settings.js', 'Settings file has been written');
212+
utils.log('settings.js', 'Writing settings file: ' + settingsFile.path);
213+
214+
profileDir.append('defaults');
215+
utils.ensureFolderExists(profileDir);
216+
utils.writeContent(defaultsSettings, content + '\n');
217+
utils.log('settings.js', 'Writing settings file: ' + defaultsSettings.path);
209218
}
210219

211220
function execute(config) {
@@ -292,7 +301,6 @@ function execute(config) {
292301
}).then(function() {
293302
overrideSettings(settings, config);
294303
}).then(function() {
295-
// Set the homescreen URL
296304
setHomescreenURL(settings, config);
297305
}).then(function() {
298306
writeSettings(settings, config);

build/test/unit/settings.test.js

+11-8
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ suite('settings.js', function() {
3030
GAIA_DISTRIBUTION_DIR: 'testDistributionDir',
3131
GAIA_DIR: 'testGaia',
3232
SETTINGS_PATH: 'testSettingsPath',
33-
STAGE_DIR: 'testStageDir'
33+
STAGE_DIR: 'testStageDir',
34+
PROFILE_DIR: 'testProfileDir'
3435
};
3536
mockUtils.resolve = function(file, baseLink) {
3637
var fileExist = false;
@@ -185,21 +186,22 @@ suite('settings.js', function() {
185186
});
186187

187188
test('writeSettings', function () {
188-
var settingsFile = {result: ''};
189+
var settingsFile = { result: '' };
189190
var settings = { 'testKey': 'testValue' };
190-
mockUtils.getFile = function(dir, file) {
191+
mockUtils.getFile = function() {
192+
var args = Array.prototype.slice.call(arguments);
191193
return {
192-
path: dir + '/' + file
194+
path: args.join('/'),
195+
append: function() {}
193196
};
194197
};
195198
mockUtils.writeContent = function(target, string) {
196-
if (target.path === config.STAGE_DIR + '/settings_stage.json') {
199+
if (target.path === config.PROFILE_DIR + '/settings.json') {
197200
settingsFile.result = string;
198201
}
199202
};
200203
app.writeSettings(settings, config);
201-
assert.deepEqual(JSON.parse(settingsFile.result),
202-
settings);
204+
assert.deepEqual(JSON.parse(settingsFile.result), settings);
203205
});
204206

205207
test('setHomescreenURL with default homescreen', function() {
@@ -247,7 +249,8 @@ suite('settings.js', function() {
247249
return {
248250
exists: function() {
249251
return true;
250-
}
252+
},
253+
append: function() {}
251254
};
252255
};
253256
mockUtils.getJSON = function(json) {

0 commit comments

Comments
 (0)