mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-26 13:37:03 +00:00
85 lines
2.8 KiB
JavaScript
85 lines
2.8 KiB
JavaScript
//#!/usr/bin/env narwhal
|
|
|
|
var FILE = require("file"),
|
|
OS = require("os"),
|
|
Jake = require("jake");
|
|
|
|
require(FILE.absolute("../common.jake"));
|
|
|
|
$PRODUCT = FILE.join($PRODUCT_DIR, "Objective-J")
|
|
$COMMONJS_PRODUCT = FILE.join($PRODUCT_DIR, "CommonJS", "objective-j");
|
|
$COMMONJS_FRAMEWORK_PRODUCT = FILE.join($COMMONJS_PRODUCT, "lib", "Frameworks", "Objective-J");
|
|
|
|
$LICENSE_PRODUCT = FILE.join($PRODUCT, 'LICENSE')
|
|
$LICENSE_FILE = FILE.join("CommonJS", "objective-j", "lib-js", "objective-j", "jake", "LICENSES", "LGPL-v2.1");
|
|
|
|
$BROWSER_FILE = FILE.join($PRODUCT, 'Objective-J.js')
|
|
$RHINO_FILE = FILE.join($PRODUCT, 'CommonJS.platform', 'Objective-J.js')
|
|
|
|
Files = new FileList("Runtime/constants.js", "Runtime/utilities.js", "Runtime/json2.js", "Runtime/runtime.js", "Runtime/dictionary.js", "Runtime/plist.js", "Runtime/file.js", "Runtime/exception.js", "Runtime/preprocess.js", "Runtime/evaluate.js", "Runtime/bootstrap.js");
|
|
|
|
if ($CONFIGURATION === "Debug")
|
|
Files.add("Runtime/debug.js");
|
|
|
|
task ("build", [$BROWSER_FILE, $RHINO_FILE, $LICENSE_PRODUCT, $COMMONJS_PRODUCT, $COMMONJS_FRAMEWORK_PRODUCT]);
|
|
|
|
filedir ($BROWSER_FILE, Files, function(aTask)
|
|
{
|
|
build_product(aTask.name(), platform_flags('Browser', 'ObjJ'));
|
|
});
|
|
|
|
filedir ($RHINO_FILE, Files, function(aTask)
|
|
{
|
|
flags = platform_flags('CommonJS', 'ObjJ');
|
|
flags += ' -DRHINO'
|
|
|
|
build_product(aTask.name(), flags)
|
|
});
|
|
|
|
filedir ($LICENSE_PRODUCT, [$LICENSE_FILE], function()
|
|
{
|
|
FILE.copy($LICENSE_FILE, $LICENSE_PRODUCT);
|
|
});
|
|
|
|
filedir ($COMMONJS_PRODUCT, FILE.glob("CommonJS/objective-j/**/*"), function()
|
|
{
|
|
rm_rf($COMMONJS_PRODUCT);
|
|
cp_r(FILE.join("CommonJS", "objective-j"), $COMMONJS_PRODUCT);
|
|
|
|
FILE.chmod(FILE.join($COMMONJS_PRODUCT, "bin", "objj"), 0755);
|
|
FILE.chmod(FILE.join($COMMONJS_PRODUCT, "bin", "objjc"), 0755);
|
|
FILE.chmod(FILE.join($COMMONJS_PRODUCT, "bin", "cplutil"), 0755);
|
|
});
|
|
|
|
filedir ($COMMONJS_FRAMEWORK_PRODUCT, function()
|
|
{
|
|
cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, "Objective-J"), $COMMONJS_FRAMEWORK_PRODUCT);
|
|
});
|
|
|
|
//CLOBBER.include($ENVIRONMENT_OBJJ_PRODUCT)
|
|
|
|
function platform_flags()
|
|
{
|
|
return "-DPLATFORMS=\"[" + Array.prototype.map.apply(arguments, [function(aPlatform)
|
|
{
|
|
return "\\\"" + aPlatform + "\\\"";
|
|
}]).join(", ") + "]\"";
|
|
}
|
|
|
|
function build_product(path, flags)
|
|
{
|
|
OS.system("cat Runtime/header.txt > " + OS.enquote(path));
|
|
OS.system("cat " +
|
|
Files.filter(function(aName)
|
|
{
|
|
return !!aName.match(/\.js$/);
|
|
}).map(function(aName)
|
|
{
|
|
return OS.enquote(aName);
|
|
}).join(' ') + " | gcc " + flags + " -E -x c -P - >> " + OS.enquote(path));
|
|
// rake abort if ($? != 0)
|
|
}
|
|
|
|
//CLEAN.include() no temporary files.
|
|
//CLOBBER.include($PRODUCT, $ENVIRONMENT_PRODUCT);
|