|
@@ -156,13 +156,11 @@ var createDefaults = function(amber_dir, finished_callback){
|
|
'jsGlobals': [],
|
|
'jsGlobals': [],
|
|
'amd_namespace': 'amber',
|
|
'amd_namespace': 'amber',
|
|
'closure': false,
|
|
'closure': false,
|
|
- 'closure_parts': false,
|
|
|
|
'closure_full': false,
|
|
'closure_full': false,
|
|
'closure_options': ' --language_in=ECMASCRIPT5 ',
|
|
'closure_options': ' --language_in=ECMASCRIPT5 ',
|
|
'suffix': '',
|
|
'suffix': '',
|
|
'loadsuffix': '',
|
|
'loadsuffix': '',
|
|
'suffix_used': '',
|
|
'suffix_used': '',
|
|
- 'deploy': false,
|
|
|
|
'libraries': [],
|
|
'libraries': [],
|
|
'compile': [],
|
|
'compile': [],
|
|
'compiled': [],
|
|
'compiled': [],
|
|
@@ -186,10 +184,6 @@ AmberC.prototype.main = function(configuration, finished_callback) {
|
|
configuration.finished_callback = finished_callback;
|
|
configuration.finished_callback = finished_callback;
|
|
}
|
|
}
|
|
|
|
|
|
- if (configuration.closure || configuration.closure_parts || configuration.closure_full) {
|
|
|
|
- configuration.deploy = true;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (configuration.amd_namespace.length == 0) {
|
|
if (configuration.amd_namespace.length == 0) {
|
|
configuration.amd_namespace = 'amber';
|
|
configuration.amd_namespace = 'amber';
|
|
}
|
|
}
|
|
@@ -241,7 +235,6 @@ AmberC.prototype.check_for_closure_compiler = function(callback) {
|
|
if (null !== error) {
|
|
if (null !== error) {
|
|
console.warn('java is not installed but is needed for running the Closure compiler (-O, -A or -o flags).');
|
|
console.warn('java is not installed but is needed for running the Closure compiler (-O, -A or -o flags).');
|
|
defaults.closure = false;
|
|
defaults.closure = false;
|
|
- defaults.closure_parts = false;
|
|
|
|
defaults.closure_full = false;
|
|
defaults.closure_full = false;
|
|
callback();
|
|
callback();
|
|
return;
|
|
return;
|
|
@@ -250,7 +243,6 @@ AmberC.prototype.check_for_closure_compiler = function(callback) {
|
|
if (!exists) {
|
|
if (!exists) {
|
|
console.warn('Can not find Closure compiler at: ' + self.closure_jar);
|
|
console.warn('Can not find Closure compiler at: ' + self.closure_jar);
|
|
defaults.closure = false;
|
|
defaults.closure = false;
|
|
- defaults.closure_parts = false;
|
|
|
|
defaults.closure_full = false;
|
|
defaults.closure_full = false;
|
|
} else {
|
|
} else {
|
|
console.warn('Closure compiler found at: ' + self.closure_jar);
|
|
console.warn('Closure compiler found at: ' + self.closure_jar);
|
|
@@ -535,25 +527,14 @@ AmberC.prototype.category_export = function() {
|
|
var jsFile = category + defaults.suffix_used + '.js';
|
|
var jsFile = category + defaults.suffix_used + '.js';
|
|
jsFile = path.join(jsFilePath, jsFile);
|
|
jsFile = path.join(jsFilePath, jsFile);
|
|
defaults.compiled.push(jsFile);
|
|
defaults.compiled.push(jsFile);
|
|
- var jsFileDeploy = category + defaults.suffix_used + '.deploy.js';
|
|
|
|
- jsFileDeploy = path.join(jsFilePath, jsFileDeploy);
|
|
|
|
-
|
|
|
|
- console.log('Exporting ' + (defaults.deploy ? '(debug + deploy)' : '(debug)')
|
|
|
|
- + ' category ' + category + ' as ' + jsFile
|
|
|
|
- + (defaults.deploy ? ' and ' + jsFileDeploy : ''));
|
|
|
|
var smalltalk = defaults.smalltalk;
|
|
var smalltalk = defaults.smalltalk;
|
|
var pluggableExporter = smalltalk.PluggableExporter;
|
|
var pluggableExporter = smalltalk.PluggableExporter;
|
|
var packageObject = smalltalk.Package._named_(category);
|
|
var packageObject = smalltalk.Package._named_(category);
|
|
packageObject._amdNamespace_(defaults.amd_namespace);
|
|
packageObject._amdNamespace_(defaults.amd_namespace);
|
|
fs.writeFile(jsFile, smalltalk.String._streamContents_(function (stream) {
|
|
fs.writeFile(jsFile, smalltalk.String._streamContents_(function (stream) {
|
|
- pluggableExporter._forRecipe_(smalltalk.Exporter._default()._amdRecipe())._exportPackage_on_(packageObject, stream); }), function(err) {
|
|
|
|
- if (defaults.deploy) {
|
|
|
|
- fs.writeFile(jsFileDeploy, smalltalk.String._streamContents_(function (stream) {
|
|
|
|
- pluggableExporter._forRecipe_(smalltalk.StrippedExporter._default()._amdRecipe())._exportPackage_on_(packageObject, stream); }), callback);
|
|
|
|
- } else {
|
|
|
|
|
|
+ smalltalk.AmdExporter._default()._exportPackage_on_(packageObject, stream); }), function(err) {
|
|
callback(null, null);
|
|
callback(null, null);
|
|
- }
|
|
|
|
- });
|
|
|
|
|
|
+ });
|
|
}, function(err, result){
|
|
}, function(err, result){
|
|
self.verify();
|
|
self.verify();
|
|
});
|
|
});
|
|
@@ -569,12 +550,6 @@ AmberC.prototype.verify = function() {
|
|
var self = this;
|
|
var self = this;
|
|
// copy array
|
|
// copy array
|
|
var compiledFiles = this.defaults.compiled.slice(0);
|
|
var compiledFiles = this.defaults.compiled.slice(0);
|
|
- // append deploy files if necessary
|
|
|
|
- if (true === this.defaults.deploy) {
|
|
|
|
- this.defaults.compiled.forEach(function(file) {
|
|
|
|
- compiledFiles.push(file.replace(/\.js/g, '.deploy.js'));
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
|
|
|
|
async_map(compiledFiles,
|
|
async_map(compiledFiles,
|
|
function(file, callback) {
|
|
function(file, callback) {
|
|
@@ -615,11 +590,7 @@ AmberC.prototype.compose_js_files = function() {
|
|
|
|
|
|
if (0 !== defaults.compiled.length) {
|
|
if (0 !== defaults.compiled.length) {
|
|
var compiledFiles = defaults.compiled.slice(0);
|
|
var compiledFiles = defaults.compiled.slice(0);
|
|
- if (true === defaults.deploy) {
|
|
|
|
- compiledFiles = compiledFiles.map(function(file) {
|
|
|
|
- return file.replace(/\.js$/g, '.deploy.js');
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
console.log('Collecting compiled files: ' + compiledFiles);
|
|
console.log('Collecting compiled files: ' + compiledFiles);
|
|
program_files.push.apply(program_files, compiledFiles);
|
|
program_files.push.apply(program_files, compiledFiles);
|
|
}
|
|
}
|
|
@@ -681,7 +652,7 @@ AmberC.prototype.compose_js_files = function() {
|
|
|
|
|
|
/**
|
|
/**
|
|
* Optimize created JavaScript files with Google Closure compiler depending
|
|
* Optimize created JavaScript files with Google Closure compiler depending
|
|
- * on the flags: defaults.closure_parts, defaults.closure_full.
|
|
|
|
|
|
+ * on the flag: defaults.closure_full.
|
|
*/
|
|
*/
|
|
AmberC.prototype.optimize = function() {
|
|
AmberC.prototype.optimize = function() {
|
|
var defaults = this.defaults;
|
|
var defaults = this.defaults;
|
|
@@ -694,15 +665,6 @@ AmberC.prototype.optimize = function() {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
- if (defaults.closure_parts) {
|
|
|
|
- console.log('Compiling all js files using Google closure compiler.');
|
|
|
|
- defaults.compiled.forEach(function(file) {
|
|
|
|
- var deployFile = file.replace(/\.js$/g, '.deploy.js');
|
|
|
|
- console.log('Compiling ' + deployFile + ' file using Google closure compiler.');
|
|
|
|
- var minifiedName = deployFile.replace(/\.js$/g, '.min.js');
|
|
|
|
- self.closure_compile(deployFile, minifiedName, optimization_done.add());
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
if (defaults.closure_full && (undefined !== defaults.program)) {
|
|
if (defaults.closure_full && (undefined !== defaults.program)) {
|
|
var programFile = defaults.program;
|
|
var programFile = defaults.program;
|
|
if (undefined !== defaults.output_dir) {
|
|
if (undefined !== defaults.output_dir) {
|