benbria-build
Version:
This is a tool for building projects using [Ninja](http://martine.github.io/ninja/). It assumes your project follows a certain layout.
46 lines (40 loc) • 1.62 kB
JavaScript
// Generated by CoffeeScript 1.6.3
(function() {
var findScript, ninjaFactories;
ninjaFactories = require('./ninjaFactories');
findScript = require('./ninjaCommands').findScript;
exports.defineFactory = ninjaFactories.defineFactory;
exports.defineBrowserifyFactory = function(name, sourceFile, targetFile, options) {
return exports.defineFactory("browserify-" + name, {
makeRules: function(ninja, config) {
return ['debug', 'release'].forEach(function(releaseType) {
var cli, rule;
cli = "$buildCoffee " + (findScript('browserify-bundle.coffee'));
if (options.extensions) {
cli += " --extensions '" + (options.extensions.join(",")) + "'";
}
if (options.transforms) {
cli += " --transforms '" + (options.transforms.join(",")) + "'";
}
cli += " --out $out --i18n $out.i18n";
if (releaseType === 'debug') {
cli += " --deps $out.d --debug";
}
cli += " ./$in";
rule = ninja.rule("browserify-" + name + "-" + releaseType);
rule.run(cli);
if (releaseType === 'debug') {
rule.depfile('$out.d');
}
return rule.description("(" + releaseType + ") BROWSERIFY $in");
});
},
assetFiles: sourceFile,
makeAssetEdge: function(ninja, source, target, releaseType) {
target = "build/assets/" + releaseType + "/js/" + targetFile;
ninja.edge(target).from(source).using("browserify-" + name + "-" + releaseType);
return [target];
}
});
};
}).call(this);