diff --git a/AppKit/Jakefile b/AppKit/Jakefile index fb5c9007f..b9ba16bd1 100644 --- a/AppKit/Jakefile +++ b/AppKit/Jakefile @@ -1,4 +1,3 @@ -#!/usr/bin/env narwhal require("../common.jake"); @@ -10,12 +9,13 @@ AppKitFiles = new FileList("**/*.j").exclude('CoreGraphics/CGContextCanvas.j', ' appKitTask = framework ("AppKit", function(appKitTask) { appKitTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "AppKit.build", $CONFIGURATION)) - appKitTask.setBuildPath(FILE.join($BUILD_DIR, $CONFIGURATION)); + appKitTask.setBuildPath($BUILD_CONFIGURATION_DIR); appKitTask.setAuthor("280 North, Inc."); appKitTask.setEmail("feedback @nospam@ 280north.com"); appKitTask.setSummary("AppKit classes for Cappuccino"); appKitTask.setIdentifier("com.280n.AppKit"); + appKitTask.setVersion("0.7.9"); appKitTask.setLicense(BundleTask.License.LGPL_v2_1); appKitTask.setSources(AppKitFiles); appKitTask.setResources(new FileList("Resources/**/*")); @@ -28,23 +28,23 @@ appKitTask = framework ("AppKit", function(appKitTask) appKitTask.setCompilerFlags("-DDEBUG -g"); }); -$COMMONJS_PRODUCT_APPKIT = FILE.join($COMMONJS_PRODUCT_FRAMEWORKS, "AppKit"); +$BUILD_CJS_CAPPUCCINO_APPKIT = FILE.join($BUILD_CJS_CAPPUCCINO_FRAMEWORKS, "AppKit"); -filedir ($COMMONJS_PRODUCT_APPKIT, ["AppKit"], function() +filedir ($BUILD_CJS_CAPPUCCINO_APPKIT, ["AppKit"], function() { - cp_r(appKitTask.buildProductPath(), $COMMONJS_PRODUCT_APPKIT); + cp_r(appKitTask.buildProductPath(), $BUILD_CJS_CAPPUCCINO_APPKIT); }); subtasks (["Themes"], ["clean", "clobber"]); -task ("Theme", [$COMMONJS_PRODUCT_APPKIT], function() +task ("Theme", [$BUILD_CJS_CAPPUCCINO_APPKIT], function() { subjake(["Themes"], "build"); cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, 'Aristo.blend'), FILE.join($BUILD_PATH, 'Resources', 'Aristo.blend')); - cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, 'Aristo.blend'), FILE.join($COMMONJS_PRODUCT_APPKIT, "Resources", "Aristo.blend")); + cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, 'Aristo.blend'), FILE.join($BUILD_CJS_CAPPUCCINO_APPKIT, "Resources", "Aristo.blend")); }); -task ("build", ["AppKit", $COMMONJS_PRODUCT_APPKIT, "Theme"]); +task ("build", ["AppKit", $BUILD_CJS_CAPPUCCINO_APPKIT, "Theme"]); -CLOBBER.include($COMMONJS_PRODUCT_APPKIT); +CLOBBER.include($BUILD_CJS_CAPPUCCINO_APPKIT); diff --git a/AppKit/Themes/Aristo/Jakefile b/AppKit/Themes/Aristo/Jakefile index b3548d913..fac29cbd4 100644 --- a/AppKit/Themes/Aristo/Jakefile +++ b/AppKit/Themes/Aristo/Jakefile @@ -1,9 +1,8 @@ -#!/usr/bin/env narwhal require("../../../common.jake"); -blend("Aristo.blend", function(aristoTask) +blend ("Aristo.blend", function(aristoTask) { aristoTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "Aristo.build", $CONFIGURATION)) aristoTask.setBuildPath(FILE.join($BUILD_DIR, $CONFIGURATION)); diff --git a/AppKit/Themes/BlendKit/Jakefile b/AppKit/Themes/BlendKit/Jakefile index 435c4a290..488fad2b3 100644 --- a/AppKit/Themes/BlendKit/Jakefile +++ b/AppKit/Themes/BlendKit/Jakefile @@ -1,4 +1,3 @@ -#!/usr/bin/env narwhal require("../../../common.jake"); @@ -9,11 +8,11 @@ blendKitTask = framework ("BlendKit", function(blendKitTask) blendKitTask.setBuildPath(FILE.join($BUILD_DIR, $CONFIGURATION)); blendKitTask.setIdentifier("com.280n.BlendKit"); - blendKitTask.setVersion("0.7.1"); -// t.author = '280 North, Inc.' -// t.email = 'feedback @nospam@ 280north.com' -// t.summary = 'BlendKit classes for Cappuccino' - blendKitTask.setSources(FILE.glob("*.j")); //t.sources = FileList['*.j'] + blendKitTask.setVersion("0.7.9"); + blendKitTask.setAuthor("280 North, Inc."); + blendKitTask.setEmail("feedback @nospam@ 280north.com"); + blendKitTask.setSummary("BlendKit classes for Cappuccino"); + blendKitTask.setSources(FILE.glob("*.j")); blendKitTask.setResources(FILE.glob("Resources/*")); blendKitTask.setLicense(BundleTask.License.LGPL_v2_1); blendKitTask.setFlattensSources(true); // FIXME: how do we non flatten? @@ -24,13 +23,13 @@ blendKitTask = framework ("BlendKit", function(blendKitTask) blendKitTask.setCompilerFlags("-DDEBUG -g"); }); -$COMMONJS_PRODUCT_BLENDKIT = FILE.join($COMMONJS_PRODUCT_FRAMEWORKS, "BlendKit"); +$BUILD_CJS_PRODUCT_BLENDKIT = FILE.join($BUILD_CJS_CAPPUCCINO_FRAMEWORKS, "BlendKit"); -filedir ($COMMONJS_PRODUCT_BLENDKIT, ["BlendKit"], function() -{print("copying..."); - cp_r(blendKitTask.buildProductPath(), $COMMONJS_PRODUCT_BLENDKIT); +filedir ($BUILD_CJS_PRODUCT_BLENDKIT, ["BlendKit"], function() +{ + cp_r(blendKitTask.buildProductPath(), $BUILD_CJS_PRODUCT_BLENDKIT); }); -print("here?..."); -task ("build", ["BlendKit", $COMMONJS_PRODUCT_BLENDKIT]); -CLOBBER.include( $COMMONJS_PRODUCT_BLENDKIT); +task ("build", ["BlendKit", $BUILD_CJS_PRODUCT_BLENDKIT]); + +CLOBBER.include( $BUILD_CJS_PRODUCT_BLENDKIT); diff --git a/AppKit/Themes/CommonJS/Jakefile b/AppKit/Themes/CommonJS/Jakefile index e88496c43..0d0bd6b93 100644 --- a/AppKit/Themes/CommonJS/Jakefile +++ b/AppKit/Themes/CommonJS/Jakefile @@ -1,18 +1,17 @@ -#!/usr/bin/env narwhal require("../../../common.jake"); var FILE = require("file"); -print("???"); -$BLENDTASK = "blendtask.j"; -$COMMONJS_BLENDTASK_PRODUCT = FILE.join($COMMONJS_PRODUCT, "lib-js", "objective-j", "jake", "blendtask.j"); -filedir($COMMONJS_BLENDTASK_PRODUCT, [$BLENDTASK], function() +$BLENDTASK = "blendtask.j"; +$BUILD_CJS_BLENDTASK = FILE.join($BUILD_CJS_CAPPUCCINO, "lib", "cappuccino", "jake", "blendtask.j"); + +filedir($BUILD_CJS_BLENDTASK, [$BLENDTASK], function() { - cp_r($BLENDTASK, $COMMONJS_BLENDTASK_PRODUCT); + cp_r($BLENDTASK, $BUILD_CJS_BLENDTASK); }); -task("build", [$COMMONJS_BLENDTASK_PRODUCT]); +task("build", [$BUILD_CJS_BLENDTASK]); -CLOBBER.include($COMMONJS_BLENDTASK_PRODUCT); +CLOBBER.include($BUILD_CJS_BLENDTASK); diff --git a/AppKit/Themes/CommonJS/blendtask.j b/AppKit/Themes/CommonJS/blendtask.j index d07dd0c71..f943381db 100644 --- a/AppKit/Themes/CommonJS/blendtask.j +++ b/AppKit/Themes/CommonJS/blendtask.j @@ -5,7 +5,8 @@ @import -var Jake = require("jake"), +var FILE = require("file"), + Jake = require("jake"), BundleTask = require("objective-j/jake/bundletask").BundleTask; diff --git a/CommonJS/Jakefile b/CommonJS/Jakefile new file mode 100644 index 000000000..c16dd54a0 --- /dev/null +++ b/CommonJS/Jakefile @@ -0,0 +1,21 @@ + +require("../common.jake"); + + +var FILE = require("file"); + +new FileList("**/*").exclude("Jakefile").forEach(function(aFilename) +{ + if (!FILE.isFile(aFilename)) + return; + + var buildFilename = FILE.join($BUILD_CONFIGURATION_DIR, "CommonJS", "cappuccino", aFilename); + + filedir (buildFilename, [aFilename], function () + { + cp(aFilename, buildFilename); + }); + + task ("build", buildFilename); + CLOBBER.include(buildFilename); +}); diff --git a/CommonJS/lib/cappuccino/jake.js b/CommonJS/lib/cappuccino/jake.js new file mode 100644 index 000000000..adfcee5fd --- /dev/null +++ b/CommonJS/lib/cappuccino/jake.js @@ -0,0 +1,8 @@ +// This check is only necessary because during the build process blendtask gets created much later. +if (FILE.exists(FILE.join(FILE.dirname(module.path), "jake", "blendtask.j"))) +{ + var BLEND_TASK = require("cappuccino/jake/blendtask"); + + exports.BlendTask = BLEND_TASK.BlendTask; + exports.blend = BLEND_TASK.blend; +} diff --git a/CommonJS/package.json b/CommonJS/package.json new file mode 100644 index 000000000..4d0bf3eee --- /dev/null +++ b/CommonJS/package.json @@ -0,0 +1,16 @@ +{ + "name": "cappuccino", + "dependencies": ["narwhal", "jack", "browserjs"], + "description": "Cappuccino module", + "keywords": ["objective-j", "objj", "objective j", "capp", "cappuccino"], + "author": "280 North, Inc. (http://280north.com/)", + "version": "0.7.9", + "objj-frameworks": ["Frameworks"], + "objj-debug-frameworks": ["Frameworks/Debug"], + "contributors": [ + "Francisco Tolmasky (http://tolmasky.com/)", + "Ross Boucher (http://rossboucher.com/)", + "Tom Robinson (http://tlrobinson.net/)", + "Numerous others (http://contributors.cappuccino.org/)" + ] +} \ No newline at end of file diff --git a/Foundation/Jakefile b/Foundation/Jakefile index 5e667eb4c..37f3c8b70 100644 --- a/Foundation/Jakefile +++ b/Foundation/Jakefile @@ -1,4 +1,24 @@ -#!/usr/bin/env narwhal +/* + * Jakefile + * Foundation + * + * Created by Francisco Tolmasky. + * Copyright 2009, 280 North, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ require("../common.jake"); @@ -6,14 +26,15 @@ require("../common.jake"); foundationTask = framework ("Foundation", function(foundationTask) { foundationTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "Foundation.build", $CONFIGURATION)) - foundationTask.setBuildPath(FILE.join($BUILD_DIR, $CONFIGURATION)); + foundationTask.setBuildPath($BUILD_CONFIGURATION_DIR); foundationTask.setAuthor("280 North, Inc."); foundationTask.setEmail("feedback @nospam@ 280north.com"); foundationTask.setSummary("Foundation classes for Cappuccino"); foundationTask.setIdentifier("com.280n.Foundation"); + foundationTask.setVersion("0.7.9"); foundationTask.setLicense(BundleTask.License.LGPL_v2_1); - foundationTask.setSources(new FileList("**/*.j"));//terrible! + foundationTask.setSources(new FileList("**/*.j")); foundationTask.setResources(new FileList("Resources/**/*")); foundationTask.setFlattensSources(true); @@ -23,13 +44,13 @@ foundationTask = framework ("Foundation", function(foundationTask) foundationTask.setCompilerFlags("-DDEBUG -g"); }); -$COMMONJS_PRODUCT_FOUNDATION = FILE.join($COMMONJS_PRODUCT_FRAMEWORKS, "Foundation"); +$BUILD_CJS_FOUNDATION = FILE.join($BUILD_CJS_CAPPUCCINO_FRAMEWORKS, "Foundation"); -filedir ($COMMONJS_PRODUCT_FOUNDATION, ["Foundation"], function() +filedir ($BUILD_CJS_FOUNDATION, ["Foundation"], function() { - cp_r(foundationTask.buildProductPath(), $COMMONJS_PRODUCT_FOUNDATION); + cp_r(foundationTask.buildProductPath(), $BUILD_CJS_FOUNDATION); }); -task ("build", ["Foundation", $COMMONJS_PRODUCT_FOUNDATION]); +task ("build", ["Foundation", $BUILD_CJS_FOUNDATION]); -CLOBBER.include($COMMONJS_PRODUCT_FOUNDATION); +CLOBBER.include($BUILD_CJS_FOUNDATION); diff --git a/Jakefile b/Jakefile index a568d0eff..d49251478 100644 --- a/Jakefile +++ b/Jakefile @@ -7,7 +7,7 @@ var FILE = require("file"), require(FILE.absolute("common.jake")); -var subprojects = ["Objective-J", "Foundation", "AppKit", "Tools", "External/ojunit"]; +var subprojects = ["Objective-J", "CommonJS", "Foundation", "AppKit", "Tools", "External/ojunit"]; ["build", "clean", "clobber"].forEach(function(aTaskName) { @@ -17,20 +17,19 @@ var subprojects = ["Objective-J", "Foundation", "AppKit", "Tools", "External/oju }); }); -global.$COMMONJS = FILE.join($BUILD_DIR, "Release", "CommonJS", "objective-j"); -global.$COMMONJS_DEBUG_FRAMEWORKS = FILE.join($COMMONJS, "lib", "Frameworks", "Debug"); +$BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS = FILE.join($BUILD_CJS_CAPPUCCINO, "Frameworks", "Debug"); -filedir ($COMMONJS_DEBUG_FRAMEWORKS, ["debug", "release"], function() +filedir ($BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS, ["debug", "release"], function() { - FILE.mkdirs($COMMONJS_DEBUG_FRAMEWORKS); + FILE.mkdirs($BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS); - cp_r(FILE.join($BUILD_DIR, "Debug", "Objective-J"), FILE.join($COMMONJS_DEBUG_FRAMEWORKS, "Objective-J")); - cp_r(FILE.join($BUILD_DIR, "Debug", "Foundation"), FILE.join($COMMONJS_DEBUG_FRAMEWORKS, "Foundation")); - cp_r(FILE.join($BUILD_DIR, "Debug", "AppKit"), FILE.join($COMMONJS_DEBUG_FRAMEWORKS, "AppKit")); - cp_r(FILE.join($BUILD_DIR, "Debug", "BlendKit"), FILE.join($COMMONJS_DEBUG_FRAMEWORKS, "BlendKit")); + cp_r(FILE.join($BUILD_DIR, "Debug", "Objective-J"), FILE.join($BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS, "Objective-J")); + cp_r(FILE.join($BUILD_DIR, "Debug", "Foundation"), FILE.join($BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS, "Foundation")); + cp_r(FILE.join($BUILD_DIR, "Debug", "AppKit"), FILE.join($BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS, "AppKit")); + cp_r(FILE.join($BUILD_DIR, "Debug", "BlendKit"), FILE.join($BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS, "BlendKit")); }); -task ("CommonJS", [$COMMONJS_DEBUG_FRAMEWORKS, "debug", "release"], function() +task ("CommonJS", [$BUILD_CJS_CAPPUCCINO_DEBUG_FRAMEWORKS, "debug", "release"], function() { // We have a complete CommonJS, so redo this. setupEnvironment(); @@ -40,7 +39,7 @@ task ("install", ["CommonJS"], function() { // FIXME: require("narwhal/tusk/install").install({}, $COMMONJS); // Doesn't work due to some weird this.print business. - OS.system("tusk install --force " + $COMMONJS); + OS.system("tusk install --force " + $BUILD_CJS_OBJECTIVE_J + " " + $BUILD_CJS_CAPPUCCINO); }); // Documentation diff --git a/Objective-J/CommonJS/objective-j/bin/cplutil b/Objective-J/CommonJS/bin/cplutil similarity index 100% rename from Objective-J/CommonJS/objective-j/bin/cplutil rename to Objective-J/CommonJS/bin/cplutil diff --git a/Objective-J/CommonJS/objective-j/bin/objj b/Objective-J/CommonJS/bin/objj similarity index 100% rename from Objective-J/CommonJS/objective-j/bin/objj rename to Objective-J/CommonJS/bin/objj diff --git a/Objective-J/CommonJS/objective-j/bin/objjc b/Objective-J/CommonJS/bin/objjc similarity index 100% rename from Objective-J/CommonJS/objective-j/bin/objjc rename to Objective-J/CommonJS/bin/objjc diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j.js b/Objective-J/CommonJS/lib/objective-j.js similarity index 74% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j.js rename to Objective-J/CommonJS/lib/objective-j.js index 4c88c2ccd..dd3c92ec2 100644 --- a/Objective-J/CommonJS/objective-j/lib-js/objective-j.js +++ b/Objective-J/CommonJS/lib/objective-j.js @@ -1,4 +1,4 @@ -var file = require("file"), +var FILE = require("file"), readline = require("readline").readline; var window = require("browser/window"); @@ -10,12 +10,63 @@ if (system.engine === "rhino") } // setup OBJJ_HOME, OBJJ_INCLUDE_PATHS, etc -window.OBJJ_HOME = exports.OBJJ_HOME = file.resolve(module.path, ".."); +window.OBJJ_HOME = exports.OBJJ_HOME = FILE.resolve(module.path, ".."); -var frameworksPath = file.resolve(window.OBJJ_HOME, "lib/", "Frameworks/"), - objectivejPath = file.resolve(frameworksPath, "Objective-J/", "CommonJS.platform/", "Objective-J.js"); +var frameworksPath = FILE.resolve(window.OBJJ_HOME, "Frameworks/"), + objectivejPath = FILE.resolve(frameworksPath, "Objective-J/", "CommonJS.platform/", "Objective-J.js"); window.OBJJ_INCLUDE_PATHS = [frameworksPath]; + +// Find all narwhal packages with Objective-J frameworks. + +var name = null, + catalog = require("packages").catalog; + +for (name in catalog) +{ + if (!catalog.hasOwnProperty(name)) + return; + + var info = catalog[name]; + + if (!info) + continue; + + var frameworks = info["objective-j-frameworks"] || + info["objj-frameworks"] || + info["cappuccino-frameworks"] || + info["capp-frameworks"] || + info["frameworks"]; + + if (frameworks) + { + if (!Array.isArray(frameworks)) + frameworks = [frameworks + ""]; + + window.OBJJ_INCLUDE_PATHS = window.OBJJ_INCLUDE_PATHS.concat(frameworks.map(function(aFrameworkPath) + { + return FILE.join(info.directory, aFrameworkPath); + })); + } + + var debugFrameworks = info["objective-j-debug-frameworks"] || + info["objj-debug-frameworks"] || + info["cappuccino-debug-frameworks"] || + info["capp-debug-frameworks"] || + info["debug-frameworks"]; + + if (debugFrameworks) + { + if (!Array.isArray(debugFrameworks)) + debugFrameworks = [debugFrameworks + ""]; + + window.OBJJ_INCLUDE_PATHS = window.OBJJ_INCLUDE_PATHS.concat(debugFrameworks.map(function(aFrameworkPath) + { + return FILE.join(info.directory, aFrameworkPath); + })); + } +} + if (system.env["OBJJ_INCLUDE_PATHS"]) window.OBJJ_INCLUDE_PATHS = system.env["OBJJ_INCLUDE_PATHS"].split(":").concat(window.OBJJ_INCLUDE_PATHS); @@ -25,9 +76,9 @@ with (window) { // read and eval Objective-J.js with the module's scope if (system.engine === "rhino") - Packages.org.mozilla.javascript.Context.getCurrentContext().evaluateString(window, file.read(objectivejPath, { charset:"UTF-8" }), "Objective-J.js", 0, null); + Packages.org.mozilla.javascript.Context.getCurrentContext().evaluateString(window, FILE.read(objectivejPath, { charset:"UTF-8" }), "Objective-J.js", 0, null); else - eval(file.read(objectivejPath, { charset:"UTF-8" })); + eval(FILE.read(objectivejPath, { charset:"UTF-8" })); // export desired variables. must eval variable name to obtain a reference. [ @@ -90,7 +141,7 @@ exports.run = function(args) while (args.length && args[0].indexOf('-I') === 0) OBJJ_INCLUDE_PATHS = args.shift().substr(2).split(':').concat(OBJJ_INCLUDE_PATHS); - var mainFilePath = file.canonical(args.shift()); + var mainFilePath = FILE.canonical(args.shift()); objj_import(mainFilePath, YES, function() { if (typeof main === "function") @@ -145,7 +196,7 @@ window.objj_preprocess_sync = function(code, path) if (fragment.type & FRAGMENT_CODE) preprocessed.push(fragment.info); else if (fragment.type & FRAGMENT_LOCAL) - preprocessed.push("objj_import_sync('"+(path ? file.join(file.dirname(path), fragment.info) : fragment.info)+"',YES);"); + preprocessed.push("objj_import_sync('"+(path ? FILE.join(FILE.dirname(path), fragment.info) : fragment.info)+"',YES);"); else preprocessed.push("objj_import_sync('"+fragment.info+"',NO);"); }); diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/compiler.js b/Objective-J/CommonJS/lib/objective-j/compiler.js similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/compiler.js rename to Objective-J/CommonJS/lib/objective-j/compiler.js diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake.js b/Objective-J/CommonJS/lib/objective-j/jake.js similarity index 80% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/jake.js rename to Objective-J/CommonJS/lib/objective-j/jake.js index 1f9520ab1..7d4bc9048 100644 --- a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake.js +++ b/Objective-J/CommonJS/lib/objective-j/jake.js @@ -37,12 +37,3 @@ var APPLICATION_TASK = require("objective-j/jake/applicationtask"); exports.ApplicationTask = APPLICATION_TASK.ApplicationTask; exports.app = APPLICATION_TASK.app; - -// This check is only necessary because during the build process blendtask gets created much later. -if (FILE.exists(FILE.join(FILE.dirname(module.path), "jake", "blendtask.j"))) -{ - var BLEND_TASK = require("objective-j/jake/blendtask"); - - exports.BlendTask = BLEND_TASK.BlendTask; - exports.blend = BLEND_TASK.blend; -} diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/LICENSES/LGPL-v2.1 b/Objective-J/CommonJS/lib/objective-j/jake/LICENSES/LGPL-v2.1 similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/LICENSES/LGPL-v2.1 rename to Objective-J/CommonJS/lib/objective-j/jake/LICENSES/LGPL-v2.1 diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/LICENSES/MIT b/Objective-J/CommonJS/lib/objective-j/jake/LICENSES/MIT similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/LICENSES/MIT rename to Objective-J/CommonJS/lib/objective-j/jake/LICENSES/MIT diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/applicationtask.js b/Objective-J/CommonJS/lib/objective-j/jake/applicationtask.js similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/applicationtask.js rename to Objective-J/CommonJS/lib/objective-j/jake/applicationtask.js diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/bundletask.js b/Objective-J/CommonJS/lib/objective-j/jake/bundletask.js similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/bundletask.js rename to Objective-J/CommonJS/lib/objective-j/jake/bundletask.js diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/frameworktask.js b/Objective-J/CommonJS/lib/objective-j/jake/frameworktask.js similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/frameworktask.js rename to Objective-J/CommonJS/lib/objective-j/jake/frameworktask.js diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/loader.js b/Objective-J/CommonJS/lib/objective-j/loader.js similarity index 96% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/loader.js rename to Objective-J/CommonJS/lib/objective-j/loader.js index 75855370c..07f9ea745 100644 --- a/Objective-J/CommonJS/objective-j/lib-js/objective-j/loader.js +++ b/Objective-J/CommonJS/lib/objective-j/loader.js @@ -1,5 +1,5 @@ var objj = null; - +print("objj loader~"); function ObjectiveJLoader() { var loader = {}; var factories = {}; diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/plist.js b/Objective-J/CommonJS/lib/objective-j/plist.js similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/plist.js rename to Objective-J/CommonJS/lib/objective-j/plist.js diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/rhino/regexp-rhino-patch.js b/Objective-J/CommonJS/lib/objective-j/rhino/regexp-rhino-patch.js similarity index 100% rename from Objective-J/CommonJS/objective-j/lib-js/objective-j/rhino/regexp-rhino-patch.js rename to Objective-J/CommonJS/lib/objective-j/rhino/regexp-rhino-patch.js diff --git a/Objective-J/CommonJS/objj-executable b/Objective-J/CommonJS/objj-executable index d2b89f60f..7a2ff6720 100755 --- a/Objective-J/CommonJS/objj-executable +++ b/Objective-J/CommonJS/objj-executable @@ -11,12 +11,13 @@ while [ -h "$SELF_PATH" ]; do done SELF_DIR=`dirname $SELF_PATH` -SELF_HOME=`dirname $SELF_DIR` +export SELF_HOME=`dirname $SELF_DIR` SELF_LIB="$SELF_HOME/lib" -FRAMEWORKS="$SELF_LIB/Frameworks" +FRAMEWORKS="$SELF_HOME/Frameworks" MAIN="$SELF_LIB/$(basename $SELF_PATH)/main.j" + # convert paths for Cygwin if [[ `uname` == CYGWIN* ]]; then FRAMEWORKS=`cygpath -w "$FRAMEWORKS"` diff --git a/Objective-J/CommonJS/objective-j/package.json b/Objective-J/CommonJS/package.json similarity index 95% rename from Objective-J/CommonJS/objective-j/package.json rename to Objective-J/CommonJS/package.json index 87b64c4c8..fdd87259b 100644 --- a/Objective-J/CommonJS/objective-j/package.json +++ b/Objective-J/CommonJS/package.json @@ -1,11 +1,11 @@ { "name": "objective-j", "dependencies": ["narwhal", "jack", "browserjs"], - "lib": "lib-js", "preload": ["objective-j/loader"], "description": "Objective-J and Cappuccino module", "keywords": ["objective-j", "objj", "objective j", "cappuccino"], "author": "280 North, Inc. (http://280north.com/)", + "version": "0.7.9", "contributors": [ "Francisco Tolmasky (http://tolmasky.com/)", "Ross Boucher (http://rossboucher.com/)", diff --git a/Objective-J/CommonJS/objective-j/shrinksafe/js.jar b/Objective-J/CommonJS/shrinksafe/js.jar similarity index 100% rename from Objective-J/CommonJS/objective-j/shrinksafe/js.jar rename to Objective-J/CommonJS/shrinksafe/js.jar diff --git a/Objective-J/CommonJS/objective-j/shrinksafe/shrinksafe.jar b/Objective-J/CommonJS/shrinksafe/shrinksafe.jar similarity index 100% rename from Objective-J/CommonJS/objective-j/shrinksafe/shrinksafe.jar rename to Objective-J/CommonJS/shrinksafe/shrinksafe.jar diff --git a/Objective-J/Jakefile b/Objective-J/Jakefile index 1015d1890..c7350a25b 100644 --- a/Objective-J/Jakefile +++ b/Objective-J/Jakefile @@ -1,34 +1,47 @@ -//#!/usr/bin/env narwhal +/* + * Jakefile + * Objective-J + * + * Created by Francisco Tolmasky. + * Copyright 2009, 280 North, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ var FILE = require("file"), - OS = require("os"), - Jake = require("jake"); + OS = require("os"); -require(FILE.absolute("../common.jake")); +require("../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') +$BUILD_OBJECTIVE_J = FILE.join($BUILD_CONFIGURATION_DIR, "Objective-J"); 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"); + Files.include("Runtime/debug.js"); -task ("build", [$BROWSER_FILE, $RHINO_FILE, $LICENSE_PRODUCT, $COMMONJS_PRODUCT, $COMMONJS_FRAMEWORK_PRODUCT]); +$BUILD_BROWSER_FILE = FILE.join($BUILD_OBJECTIVE_J, "Objective-J.js"); +$BUILD_CJS_FILE = FILE.join($BUILD_OBJECTIVE_J, "CommonJS.platform", "Objective-J.js"); -filedir ($BROWSER_FILE, Files, function(aTask) +filedir ($BUILD_BROWSER_FILE, Files, function(aTask) { build_product(aTask.name(), platform_flags('Browser', 'ObjJ')); }); -filedir ($RHINO_FILE, Files, function(aTask) +filedir ($BUILD_CJS_FILE, Files, function(aTask) { flags = platform_flags('CommonJS', 'ObjJ'); flags += ' -DRHINO' @@ -36,27 +49,46 @@ filedir ($RHINO_FILE, Files, function(aTask) build_product(aTask.name(), flags) }); -filedir ($LICENSE_PRODUCT, [$LICENSE_FILE], function() +$LICENSE = FILE.join("CommonJS", "lib", "objective-j", "jake", "LICENSES", "LGPL-v2.1"); +$BUILD_LICENSE = FILE.join($BUILD_OBJECTIVE_J, "LICENSE"); + +filedir ($BUILD_LICENSE, [$LICENSE], function() { - FILE.copy($LICENSE_FILE, $LICENSE_PRODUCT); + FILE.copy($LICENSE, $BUILD_LICENSE); }); -filedir ($COMMONJS_PRODUCT, FILE.glob("CommonJS/objective-j/**/*"), function() +new FileList("CommonJS/**/*").forEach(function(aFilename) { - rm_rf($COMMONJS_PRODUCT); - cp_r(FILE.join("CommonJS", "objective-j"), $COMMONJS_PRODUCT); + if (!FILE.isFile(aFilename)) + return; - 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); + var buildFilename = FILE.join($BUILD_CJS_OBJECTIVE_J, FILE.relative("CommonJS/", aFilename)); + + filedir (buildFilename, [aFilename], function () + { + cp(aFilename, buildFilename); + }); + + if (FILE.dirname(aFilename) === FILE.join("CommonJS", "bin")) + { + filedir (buildFilename, function () + { + FILE.chmod(buildFilename, 0755); + }); + } + + task ("build", buildFilename); + CLOBBER.include(buildFilename); }); -filedir ($COMMONJS_FRAMEWORK_PRODUCT, function() +$BUILD_CJS_OBJECTIVE_J_FRAMEWORK = FILE.join($BUILD_CJS_OBJECTIVE_J, "Frameworks", "Objective-J"); + +filedir ($BUILD_CJS_OBJECTIVE_J_FRAMEWORK, function() { - cp_r(FILE.join($BUILD_DIR, $CONFIGURATION, "Objective-J"), $COMMONJS_FRAMEWORK_PRODUCT); + cp_r($BUILD_OBJECTIVE_J, $BUILD_CJS_OBJECTIVE_J_FRAMEWORK); }); -//CLOBBER.include($ENVIRONMENT_OBJJ_PRODUCT) +CLOBBER.include($BUILD_OBJECTIVE_J); function platform_flags() { @@ -80,5 +112,4 @@ function build_product(path, flags) // rake abort if ($? != 0) } -//CLEAN.include() no temporary files. -//CLOBBER.include($PRODUCT, $ENVIRONMENT_PRODUCT); +task ("build", [$BUILD_BROWSER_FILE, $BUILD_CJS_FILE, $BUILD_LICENSE, $BUILD_CJS_OBJECTIVE_J_FRAMEWORK]); diff --git a/Tools/capp/Generate.j b/Tools/capp/Generate.j index da0c8c941..2a51c0e1c 100644 --- a/Tools/capp/Generate.j +++ b/Tools/capp/Generate.j @@ -56,8 +56,8 @@ function gen(/*va_args*/) if (FILE.isAbsolute(template)) sourceTemplate = FILE.join(template); else - sourceTemplate = FILE.join(OBJJ.OBJJ_HOME, "lib", "capp", "Resources", "Templates", template); - + sourceTemplate = FILE.join(SYSTEM.env["SELF_HOME"], "lib", "capp", "Resources", "Templates", template); + var configFile = FILE.join(sourceTemplate, "template.config"), config = {}; diff --git a/Tools/capp/Jakefile b/Tools/capp/Jakefile index 0a718c665..9e794edb5 100644 --- a/Tools/capp/Jakefile +++ b/Tools/capp/Jakefile @@ -1,4 +1,4 @@ -#!/usr/bin/env narwhal + require ("../../common.jake"); @@ -6,7 +6,7 @@ require ("../../common.jake"); app ("capp", function(cappTask) { cappTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "capp.build", $CONFIGURATION)) - cappTask.setBuildPath($COMMONJS_PRODUCT_LIB); + cappTask.setBuildPath($BUILD_CJS_CAPPUCCINO_LIB); cappTask.setAuthor("280 North, Inc."); cappTask.setEmail("feedback @nospam@ 280north.com"); @@ -27,16 +27,14 @@ app ("capp", function(cappTask) cappTask.setCompilerFlags("-DDEBUG -g"); }); -$COMMONJS_CAPP_BIN_PRODUCT = FILE.join($COMMONJS_PRODUCT_BIN, "capp"); +$BUILD_CJS_CAPP = FILE.join($BUILD_CJS_CAPPUCCINO_BIN, "capp"); // executable in environment directory -filedir($COMMONJS_CAPP_BIN_PRODUCT, ["capp"], function() +filedir($BUILD_CJS_CAPP, ["capp"], function() { - make_objj_executable($COMMONJS_CAPP_BIN_PRODUCT); + make_objj_executable($BUILD_CJS_CAPP); }); -task ("build", ["capp", $COMMONJS_CAPP_BIN_PRODUCT]); +task ("build", ["capp", $BUILD_CJS_CAPP]); -/* -CLOBBER.include($ENVIRONMENT_BIN_PRODUCT, $ENVIRONMENT_LIB_PRODUCT) -*/ +CLOBBER.include($BUILD_CJS_CAPPUCCINO_BIN); diff --git a/Tools/nib2cib/Jakefile b/Tools/nib2cib/Jakefile index a4d90894b..7a4066523 100644 --- a/Tools/nib2cib/Jakefile +++ b/Tools/nib2cib/Jakefile @@ -1,4 +1,4 @@ -#!/usr/bin/env narwhal + var FILE = require("file"); @@ -8,14 +8,14 @@ require("../../common.jake"); app ("nib2cib", function(nib2cibTask) { nib2cibTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "nib2cib.build", $CONFIGURATION)) - nib2cibTask.setBuildPath($COMMONJS_PRODUCT_LIB); + nib2cibTask.setBuildPath($BUILD_CJS_CAPPUCCINO_LIB); nib2cibTask.setIdentifier("com.280n.nib2cib"); nib2cibTask.setLicense(BundleTask.License.LGPL_v2_1); - nib2cibTask.setVersion("0.7.1"); -// t.author = '280 North, Inc.' -// t.email = 'feedback @nospam@ 280north.com' -// t.summary = 'nib2cib converts Cocoa nib and xibs to Cappuccino cibs' + nib2cibTask.setVersion("0.7.9"); + nib2cibTask.setAuthor("280 North, Inc."); + nib2cibTask.setEmail("feedback @nospam@ 280north.com"); + nib2cibTask.setSummary("nib2cib converts Cocoa nib and xibs to Cappuccino cibs"); nib2cibTask.setSources(FILE.glob("*.j"));// t.sources = FileList['**/*.j'] nib2cibTask.setResources(FILE.glob("Resources/*")); nib2cibTask.setPlatforms([BundleTask.Platform.CommonJS]); @@ -27,15 +27,14 @@ app ("nib2cib", function(nib2cibTask) nib2cibTask.setCompilerFlags("-DDEBUG -g"); }); -$COMMONJS_NIB2CIB_BIN_PRODUCT = FILE.join($COMMONJS_PRODUCT_BIN, 'nib2cib'); +$BUILD_CJS_NIB2CIB = FILE.join($BUILD_CJS_CAPPUCCINO_BIN, 'nib2cib'); // executable in environment directory -filedir($COMMONJS_NIB2CIB_BIN_PRODUCT, ["nib2cib"], function() +filedir($BUILD_CJS_NIB2CIB, ["nib2cib"], function() { - make_objj_executable($COMMONJS_NIB2CIB_BIN_PRODUCT); + make_objj_executable($BUILD_CJS_NIB2CIB); }); -task ("build", ["nib2cib", $COMMONJS_NIB2CIB_BIN_PRODUCT]); +task ("build", ["nib2cib", $BUILD_CJS_NIB2CIB]); -/* -CLOBBER.include($ENVIRONMENT_BIN_PRODUCT, $ENVIRONMENT_LIB_PRODUCT )*/ +CLOBBER.include($BUILD_CJS_NIB2CIB); diff --git a/Tools/press/Jakefile b/Tools/press/Jakefile index f7d634f63..c4f7e3b80 100644 --- a/Tools/press/Jakefile +++ b/Tools/press/Jakefile @@ -6,14 +6,14 @@ require ("../../common.jake"); app ("press", function(pressTask) { pressTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "press.build", $CONFIGURATION)) - pressTask.setBuildPath($COMMONJS_PRODUCT_LIB); + pressTask.setBuildPath($BUILD_CJS_CAPPUCCINO_LIB); pressTask.setAuthor("280 North, Inc."); pressTask.setEmail("feedback @nospam@ 280north.com"); pressTask.setSummary("Deployment tool for Cappuccino applications"); pressTask.setIdentifier("com.280n.press"); pressTask.setLicense(BundleTask.License.LGPL_v2_1); - pressTask.setVersion("0.7.1"); + pressTask.setVersion("0.7.9"); pressTask.setSources(FILE.glob("*.j")); pressTask.setResources(FILE.glob("Resources/*")); pressTask.setPlatforms([BundleTask.Platform.CommonJS]); @@ -24,21 +24,14 @@ app ("press", function(pressTask) pressTask.setCompilerFlags("-DDEBUG -g"); }); -$COMMONJS_PRESS_BIN_PRODUCT = FILE.join($COMMONJS_PRODUCT_BIN, 'press'); +$BUILD_CJS_PRESS = FILE.join($BUILD_CJS_CAPPUCCINO_BIN, 'press'); // executable in environment directory -filedir($COMMONJS_PRESS_BIN_PRODUCT, ["press"], function() +filedir($BUILD_CJS_PRESS, ["press"], function() { - make_objj_executable($COMMONJS_PRESS_BIN_PRODUCT); + make_objj_executable($BUILD_CJS_PRESS); }); -task ("build", ["press", $COMMONJS_PRESS_BIN_PRODUCT]); +task ("build", ["press", $BUILD_CJS_PRESS]); -/* - -file_d $ENVIRONMENT_BRIDGE => [File.join($HOME_DIR, 'Tools', 'Utilities', 'bridge.js')] do - cp(File.join($HOME_DIR, 'Tools', 'Utilities', 'bridge.js'), $ENVIRONMENT_BRIDGE) -end - -CLOBBER.include($ENVIRONMENT_BIN_PRODUCT, $ENVIRONMENT_LIB_PRODUCT) -*/ +CLOBBER.include($BUILD_CJS_PRESS); diff --git a/common.jake b/common.jake index 45d686828..48de164fd 100644 --- a/common.jake +++ b/common.jake @@ -37,57 +37,86 @@ ENV["BUILD_PATH"] = FILE.absolute(ENV["BUILD_PATH"]); if (!ENV["CONFIG"]) ENV["CONFIG"] = "Release"; -global.$CONFIGURATION = ENV['CONFIG']; -global.$BUILD_DIR = ENV['BUILD_PATH']; -global.$COMMONJS_PRODUCT = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j"); -global.$COMMONJS_PRODUCT_BIN = FILE.join($COMMONJS_PRODUCT, "bin"); -global.$COMMONJS_PRODUCT_LIB = FILE.join($COMMONJS_PRODUCT, "lib"); -global.$COMMONJS_PRODUCT_FRAMEWORKS = FILE.join($COMMONJS_PRODUCT_LIB, "Frameworks"); +global.$CONFIGURATION = ENV['CONFIG']; +global.$BUILD_DIR = ENV['BUILD_PATH']; +global.$BUILD_CONFIGURATION_DIR = FILE.join($BUILD_DIR, $CONFIGURATION); +global.$BUILD_CJS_OBJECTIVE_J = FILE.join($BUILD_CONFIGURATION_DIR, "CommonJS", "objective-j"); -global.$PRODUCT_DIR = FILE.join($BUILD_DIR, $CONFIGURATION); -global.$ENVIRONMENT_DIR = FILE.join($BUILD_DIR, $CONFIGURATION, 'env'); -global.$ENVIRONMENT_NARWHAL_BIN_DIR= FILE.join($ENVIRONMENT_DIR, 'bin', ''); -global.$ENVIRONMENT_BIN_DIR = FILE.join($ENVIRONMENT_DIR, 'packages', 'objj', 'bin'); -global.$ENVIRONMENT_LIB_DIR = FILE.join($ENVIRONMENT_DIR, 'packages', 'objj', 'lib') ; -global.$ENVIRONMENT_FRAMEWORKS_DIR = FILE.join($ENVIRONMENT_LIB_DIR, 'Frameworks'); +global.$BUILD_CJS_CAPPUCCINO = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "cappuccino"); +global.$BUILD_CJS_CAPPUCCINO_BIN = FILE.join($BUILD_CJS_CAPPUCCINO, "bin"); +global.$BUILD_CJS_CAPPUCCINO_LIB = FILE.join($BUILD_CJS_CAPPUCCINO, "lib"); +global.$BUILD_CJS_CAPPUCCINO_FRAMEWORKS = FILE.join($BUILD_CJS_CAPPUCCINO, "Frameworks"); global.$HOME_DIR = FILE.absolute(FILE.dirname(module.path)); global.$LICENSE_FILE = FILE.absolute(FILE.join(FILE.dirname(module.path), 'LICENSE')); -global.setupEnvironment = function() +function partial_require(path, exports) { - var objectiveJLibJS = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "lib-js"); + var lib = FILE.join(path, "lib"); - if (!FILE.exists(objectiveJLibJS)) - objectiveJLibJS = FILE.join($HOME_DIR, "Objective-J", "CommonJS", "objective-j", "lib-js"); + if (!FILE.exists(lib)) + return false; - require.paths.unshift(objectiveJLibJS); + require.paths.unshift(lib); - require("objective-j/loader"); + if (FILE.exists(FILE.join(path, "package.json"))) + { + var catalog = require("json").parse(FILE.read(FILE.join(path, "package.json"), { charset:"UTF8" })); - var OBJECTIVE_J_JAKE = require("objective-j/jake"); + if (catalog.preload) + { + if (!Array.isArray(catalog.preload)) + catalog.preload = [catalog.preload]; - global.app = OBJECTIVE_J_JAKE.app; - global.bundle = OBJECTIVE_J_JAKE.bundle; - global.framework = OBJECTIVE_J_JAKE.framework; + catalog.preload.forEach(function(preload) + { + require(preload); + }); + } + } - if (OBJECTIVE_J_JAKE.blend) - global.blend = OBJECTIVE_J_JAKE.blend; - - global.BundleTask = OBJECTIVE_J_JAKE.BundleTask; - - var objectiveJBin = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "bin") - - if (!FILE.exists(objectiveJBin)) - objectiveJBin = FILE.join($HOME_DIR, "Objective-J", "CommonJS", "objective-j", "bin"); - - var system = OS.system; + var bin = FILE.join(path, "bin"), + system = OS.system; // FIXME: is there a better way to do this??? OS.system = function(aCommand) { - return system("PATH=" + OS.enquote(objectiveJBin) + ":$PATH " + aCommand); + return system("PATH=" + OS.enquote(bin) + ":$PATH " + aCommand); + } + + return true; +} + +global.setupEnvironment = function() +{ + if (partial_require(FILE.join($BUILD_CONFIGURATION_DIR, "CommonJS", "objective-j")) || + partial_require(FILE.join($HOME_DIR, "Objective-J", "CommonJS", "objective-j"))) + { + var OBJECTIVE_J_JAKE = require("objective-j/jake"); + + global.app = OBJECTIVE_J_JAKE.app; + global.bundle = OBJECTIVE_J_JAKE.bundle; + global.framework = OBJECTIVE_J_JAKE.framework; + + global.BundleTask = OBJECTIVE_J_JAKE.BundleTask; + } + + if (partial_require(FILE.join($BUILD_CONFIGURATION_DIR, "CommonJS", "cappuccino"))) + { + require("objective-j"); + require("browser/window").OBJJ_INCLUDE_PATHS.push(FILE.join($BUILD_CONFIGURATION_DIR, "CommonJS", "cappuccino", "Frameworks")); + + try + { + var CAPPUCCINO_JAKE = require("cappuccino/jake"); + + if (CAPPUCCINO_JAKE.blend) + global.blend = CAPPUCCINO_JAKE.blend; + } + catch (anException) + { + } } } @@ -113,6 +142,7 @@ global.cp_r = function(/*String*/ from, /*String*/ to) global.cp = function(/*String*/ from, /*String*/ to) { FILE.copy(from, to); +// FILE.chmod(to, FILE.mod(from)); } global.mv = function(/*String*/ from, /*String*/ to)