#!/usr/bin/env narwhal require("../common.jake"); $BUILD_PATH = FILE.join($BUILD_DIR, $CONFIGURATION, 'AppKit'); $ENVIRONMENT_PRODUCT = FILE.join($ENVIRONMENT_FRAMEWORKS_DIR, 'AppKit'); $THEME_PRODUCT = FILE.join($BUILD_PATH, 'Resources', 'Aristo.blend'); $ENVIRONMENT_THEME_PRODUCT = FILE.join($ENVIRONMENT_PRODUCT, 'Resources', 'Aristo.blend'); AppKitFiles = new FileList("**/*.j").exclude('CoreGraphics/CGContextCanvas.j', 'CoreGraphics/CGContextVML.j', 'Themes/**/*', 'Tools/**/*'); appKitTask = framework ("AppKit", function(appKitTask) { appKitTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "AppKit.build", $CONFIGURATION)) appKitTask.setBuildPath(FILE.join($BUILD_DIR, $CONFIGURATION)); appKitTask.setAuthor("280 North, Inc."); appKitTask.setEmail("feedback @nospam@ 280north.com"); appKitTask.setSummary("AppKit classes for Cappuccino"); appKitTask.setIdentifier("com.280n.AppKit"); appKitTask.setLicense(BundleTask.License.LGPL_v2_1); appKitTask.setSources(AppKitFiles);//terrible! appKitTask.setResources(new FileList("Resources/**/*")); appKitTask.setPlatforms([BundleTask.Platform.Browser, BundleTask.Platform.CommonJS]); appKitTask.setFlattensSources(true); if ($CONFIGURATION === "Release") appKitTask.setCompilerFlags("-O"); else appKitTask.setCompilerFlags("-DDEBUG -g"); }); $COMMONJS_PRODUCT_APPKIT = FILE.join($COMMONJS_PRODUCT_FRAMEWORKS, "AppKit"); filedir ($COMMONJS_PRODUCT_APPKIT, ["AppKit"], function() { cp_r(appKitTask.buildProductPath(), $COMMONJS_PRODUCT_APPKIT); }); //# It would be nice to just have ENVIRONMENT_PRODUCT depend on THEME_PRODUCT, //# but this would be a circular dependency because THEME_PRODUCT needs //# ENVIRONMENT_PRODUCT up-to-date since it runs an objj application that uses //# AppKit. //file_d $ENVIRONMENT_PRODUCT => [:AppKit] do // cp_r(File.join($BUILD_PATH, '.'), $ENVIRONMENT_PRODUCT) //end //file_d $ENVIRONMENT_THEME_PRODUCT => $THEME_PRODUCT do // cp_r(File.join($THEME_PRODUCT, '.'), $ENVIRONMENT_THEME_PRODUCT) //end subtasks (["Tools"], ["build"/*, "clean", "clobber"*/]); task ("build", ["AppKit", $COMMONJS_PRODUCT_APPKIT]);//, $THEME_PRODUCT]); //CLOBBER.include($ENVIRONMENT_PRODUCT)