From b6cf4ad0a47e9348c5ec01a13d2a1a40399d1120 Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Mon, 26 Oct 2009 02:10:25 -0700 Subject: [PATCH] 1. Added clean and clobber functionality to bundletask. 2. Prepared Foundation and Appkit for clean and clobber 3. Placed built-necessary requires in bundletask in the calling functions so that it can be included without being built for clean and clobber. 4. Made common.jake include unbuilt CommonJS files if built ones aren't present. Reviewed by me. --- AppKit/Jakefile | 6 +- Foundation/Jakefile | 2 +- .../lib-js/objective-j/jake/bundletask.js | 32 +++++---- common.jake | 65 ++++++++++--------- 4 files changed, 59 insertions(+), 46 deletions(-) diff --git a/AppKit/Jakefile b/AppKit/Jakefile index 51e1b74f2..ee780f9fb 100644 --- a/AppKit/Jakefile +++ b/AppKit/Jakefile @@ -3,7 +3,7 @@ require("../common.jake"); -$BUILD_PATH = FILE.join($BUILD_DIR, $CONFIGURATION, 'AppKit'); +$BUILD_PATH = FILE.join($BUILD_DIR, $CONFIGURATION, 'AppKit'); AppKitFiles = new FileList("**/*.j").exclude('CoreGraphics/CGContextCanvas.j', 'CoreGraphics/CGContextVML.j', 'Themes/**/*', 'Tools/**/*'); @@ -17,7 +17,7 @@ appKitTask = framework ("AppKit", function(appKitTask) appKitTask.setSummary("AppKit classes for Cappuccino"); appKitTask.setIdentifier("com.280n.AppKit"); appKitTask.setLicense(BundleTask.License.LGPL_v2_1); - appKitTask.setSources(AppKitFiles);//terrible! + appKitTask.setSources(AppKitFiles); appKitTask.setResources(new FileList("Resources/**/*")); appKitTask.setPlatforms([BundleTask.Platform.Browser, BundleTask.Platform.CommonJS]); appKitTask.setFlattensSources(true); @@ -47,4 +47,4 @@ task ("Theme", [$COMMONJS_PRODUCT_APPKIT], function() task ("build", ["AppKit", $COMMONJS_PRODUCT_APPKIT, "Theme"]); -//CLOBBER.include($ENVIRONMENT_PRODUCT) +CLOBBER.include($COMMONJS_PRODUCT_APPKIT); diff --git a/Foundation/Jakefile b/Foundation/Jakefile index 259ec7965..5e667eb4c 100644 --- a/Foundation/Jakefile +++ b/Foundation/Jakefile @@ -32,4 +32,4 @@ filedir ($COMMONJS_PRODUCT_FOUNDATION, ["Foundation"], function() task ("build", ["Foundation", $COMMONJS_PRODUCT_FOUNDATION]); -//CLOBBER.include($ENVIRONMENT_PRODUCT) +CLOBBER.include($COMMONJS_PRODUCT_FOUNDATION); diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/bundletask.js b/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/bundletask.js index 24ca82ec0..14ca849ea 100644 --- a/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/bundletask.js +++ b/Objective-J/CommonJS/objective-j/lib-js/objective-j/jake/bundletask.js @@ -3,9 +3,8 @@ var FILE = require("file"), OS = require("os"), UTIL = require("util"), Jake = require("jake"), - objj_dictionary = require("objective-j").objj_dictionary, - compiler = require("objective-j/compiler"), - plist = require("objective-j/plist"), + CLEAN = require("jake/clean").CLEAN, + CLOBBER = require("jake/clean").CLOBBER, base64 = require("base64"); var Task = Jake.Task, @@ -36,7 +35,7 @@ function BundleTask(aName, anApplication) this._buildIntermediatesPath = null; this._buildPath = FILE.cwd(); - this._replacedFiles = new objj_dictionary(); + this._replacedFiles = { }; this._nib2cibFlags = null; } @@ -261,7 +260,9 @@ BundleTask.prototype.defineTasks = function() this.defineInfoPlistTask(); this.defineLicenseTask(); this.defineStaticTask(); -// CLOBBER.include(build_path) + + CLEAN.include(this.buildIntermediatesProductPath()); + CLOBBER.include(this.buildPath()); } BundleTask.prototype.packageType = function() @@ -271,17 +272,26 @@ BundleTask.prototype.packageType = function() BundleTask.prototype.infoPlist = function() { - var infoPlist = new objj_dictionary(); - //util = require("util"), + var objj_dictionary = require("objective-j").objj_dictionary, + infoPlist = new objj_dictionary(); + infoPlist.setValue("CPBundleInfoDictionaryVersion", 6.0); infoPlist.setValue("CPBundleName", this.productName()); infoPlist.setValue("CPBundleIdentifier", this.identifier()); infoPlist.setValue("CPBundleVersion", this.version()); infoPlist.setValue("CPBundlePackageType", this.packageType()); - infoPlist.setValue("CPBundleReplacedFiles", this._replacedFiles); infoPlist.setValue("CPBundlePlatforms", this.platforms()); infoPlist.setValue("CPBundleExecutable", this.productName() + ".sj"); + var replacedFiles = this._replacedFiles, + replacedFilesDictionary = new objj_dictionary(); + + for (var engine in replacedFiles) + if (replacedFiles.hasOwnProperty(engine)) + replacedFilesDictionary.setValue(engine, replacedFiles[engine]); + + infoPlist.setValue("CPBundleReplacedFiles", replacedFilesDictionary); + return infoPlist; /* @@ -303,7 +313,7 @@ BundleTask.prototype.defineInfoPlistTask = function() filedir (infoPlistProductPath, function() { - plist.writePlist(infoPlistProductPath, bundleTask.infoPlist()); + require("objective-j/plist").writePlist(infoPlistProductPath, bundleTask.infoPlist()); }); this.enhance([infoPlistProductPath]); @@ -568,7 +578,7 @@ BundleTask.prototype.defineSourceTasks = function() filedir (compiledPlatformSource, [aFilename], function() { print("Compiling " + aFilename + "..."); - FILE.write(compiledPlatformSource, compiler.compile(aFilename, flags + " " + compilerFlags), { charset:"UTF-8" }); + FILE.write(compiledPlatformSource, require("objective-j/compiler").compile(aFilename, flags + " " + compilerFlags), { charset:"UTF-8" }); }); filedir (staticPath, [compiledPlatformSource]); @@ -578,7 +588,7 @@ BundleTask.prototype.defineSourceTasks = function() replacedFiles.push(flattensSources ? FILE.basename(aFilename) : FILE.relative(sourcesPath, aFilename)); }, this); - this._replacedFiles.setValue(aPlatform, replacedFiles); + this._replacedFiles[aPlatform] = replacedFiles; }, this); } diff --git a/common.jake b/common.jake index 7e2d9adf8..5a5d99a84 100644 --- a/common.jake +++ b/common.jake @@ -12,6 +12,10 @@ global.directory = Jake.directory; global.filedir = Jake.filedir; global.FileList = Jake.FileList; +global.CLEAN = require("jake/clean").CLEAN; +global.CLOBBER = require("jake/clean").CLOBBER; + + // Read in and set up development environment variables. if (!ENV["BUILD_PATH"]) { @@ -51,40 +55,39 @@ global.$ENVIRONMENT_FRAMEWORKS_DIR = FILE.join($ENVIRONMENT_LIB_DIR, 'Frameworks global.$HOME_DIR = FILE.absolute(FILE.dirname(module.path)); global.$LICENSE_FILE = FILE.absolute(FILE.join(FILE.dirname(module.path), 'LICENSE')); -if(!global.COMMON_DO_ONCE) +var objectiveJLibJS = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "lib-js"); + +if (!FILE.exists(objectiveJLibJS)) + objectiveJLibJS = FILE.join($HOME_DIR, "Objective-J", "CommonJS", "objective-j", "lib-js"); + +require.paths.unshift(objectiveJLibJS); + +require("objective-j/loader"); + +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; + +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"); + +if (FILE.exists(objectiveJBin)) { - global.COMMON_DO_ONCE = true; + var system = OS.system; - var objectiveJBin = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "bin"), - objectiveJLibJS = FILE.join($BUILD_DIR, $CONFIGURATION, "CommonJS", "objective-j", "lib-js"); - - if (FILE.exists(objectiveJLibJS)) + // FIXME: is there a better way to do this??? + OS.system = function(aCommand) { - require.paths.unshift(objectiveJLibJS); - - require("objective-j/loader"); - - 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; - - if (OBJECTIVE_J_JAKE.blend) - global.blend = OBJECTIVE_J_JAKE.blend; - - global.BundleTask = OBJECTIVE_J_JAKE.BundleTask; - } - - if (FILE.exists(objectiveJBin)) - { - var system = OS.system; - - // FIXME: is there a better way to do this??? - OS.system = function(aCommand) - { - system("PATH=" + OS.enquote(objectiveJBin) + ":$PATH " + aCommand) - } + system("PATH=" + OS.enquote(objectiveJBin) + ":$PATH " + aCommand) } }