rename folder to XcodeCapp and update Jakefiles
@@ -2,6 +2,6 @@
|
||||
require("../common.jake");
|
||||
|
||||
// nib2cib uses fontinfo and capp uses nib2cib
|
||||
subtasks(["fontinfo", "nib2cib", "capp", "NativeHost", "xcodecapp", "xcodecapp-cocoa"], ["build"/*, "clean", "clobber"*/]);
|
||||
subtasks(["fontinfo", "nib2cib", "capp", "NativeHost", "XcodeCapp"], ["build"/*, "clean", "clobber"*/]);
|
||||
|
||||
subtasks(["fontinfo"], ["clean", "clobber"]);
|
||||
|
||||
@@ -4,7 +4,7 @@ require("../../common.jake");
|
||||
var OS = require("os"),
|
||||
task = require("jake").task,
|
||||
stream = require("narwhal/term").stream,
|
||||
applicationName = "xcodecapp-cocoa.app";
|
||||
applicationName = "XcodeCapp.app";
|
||||
|
||||
task ("build", function()
|
||||
{
|
||||
@@ -19,8 +19,8 @@ task ("build", function()
|
||||
|
||||
rm_rf(supportPath);
|
||||
FILE.mkdirs(supportPath);
|
||||
cp_r(FILE.join("build", "Release", "xcodecapp-cocoa.app"), supportPath);
|
||||
FILE.chmod(FILE.join(supportPath, "Contents", "MacOS", "xcodecapp-cocoa"), 0755);
|
||||
cp_r(FILE.join("build", "Release", "XcodeCapp.app"), supportPath);
|
||||
FILE.chmod(FILE.join(supportPath, "Contents", "MacOS", "XcodeCapp"), 0755);
|
||||
|
||||
OS.system(["ln", "-sf", supportPath, installPath]);
|
||||
}
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
@@ -1,42 +0,0 @@
|
||||
|
||||
require ("../../common.jake");
|
||||
|
||||
var app = require("objective-j/jake").app,
|
||||
BundleTask = require("objective-j/jake").BundleTask,
|
||||
FILE = require("file"),
|
||||
OS = require("os"),
|
||||
stream = require("narwhal/term").stream;
|
||||
|
||||
app ("xcodecapp", function(xcodecappTask)
|
||||
{
|
||||
xcodecappTask.setBuildIntermediatesPath(FILE.join($BUILD_DIR, "xcodecapp.build", $CONFIGURATION))
|
||||
xcodecappTask.setBuildPath($BUILD_CJS_CAPPUCCINO_LIB);
|
||||
|
||||
xcodecappTask.setSummary("xCode 4 Integration for Cappuccino projects");
|
||||
xcodecappTask.setIdentifier("org.cappuccino.xcodecapp");
|
||||
xcodecappTask.setLicense(BundleTask.License.LGPL_v2_1);
|
||||
xcodecappTask.setVersion(getCappuccinoVersion());
|
||||
xcodecappTask.setSources(new FileList("*.j"));
|
||||
xcodecappTask.setResources(new FileList("Resources/*"));
|
||||
xcodecappTask.setIncludesNibsAndXibs(true);
|
||||
xcodecappTask.setEnvironments(require("objective-j/jake/environment").CommonJS);
|
||||
xcodecappTask.setFlattensSources(true);
|
||||
xcodecappTask.setSpritesResources(false);
|
||||
|
||||
if ($CONFIGURATION === "Release")
|
||||
xcodecappTask.setCompilerFlags("-O");
|
||||
else
|
||||
xcodecappTask.setCompilerFlags("-DDEBUG -g");
|
||||
});
|
||||
|
||||
$BUILD_CJS_XCODECAPP = FILE.join($BUILD_CJS_CAPPUCCINO_BIN, "xcodecapp");
|
||||
|
||||
// executable in environment directory
|
||||
filedir($BUILD_CJS_XCODECAPP, ["xcodecapp"], function()
|
||||
{
|
||||
make_objj_executable($BUILD_CJS_XCODECAPP);
|
||||
});
|
||||
|
||||
task ("build", ["xcodecapp", $BUILD_CJS_XCODECAPP]);
|
||||
|
||||
CLOBBER.include($BUILD_CJS_CAPPUCCINO_BIN);
|
||||
@@ -1,464 +0,0 @@
|
||||
|
||||
@import <Foundation/Foundation.j>
|
||||
|
||||
var FILE = require("file");
|
||||
|
||||
function main(args)
|
||||
{
|
||||
var fileURL = new CFURL(args[1]),
|
||||
outputURL = new CFURL(args[2]),
|
||||
source = FILE.read(fileURL, { charset: "UTF-8" }),
|
||||
flags = ObjectiveJ.Preprocessor.Flags.IncludeDebugSymbols |
|
||||
ObjectiveJ.Preprocessor.Flags.IncludeTypeSignatures,
|
||||
superClasses = { };
|
||||
|
||||
source = ObjectiveJ.preprocess(source, fileURL, flags).code();
|
||||
|
||||
source = source.replace(/objj_allocateClassPair\([a-zA-Z_$](\w|$)*/g, function(aString)
|
||||
{
|
||||
var superClassName = aString.substr("objj_allocateClassPair(".length);
|
||||
|
||||
return "objj_allocateClassPair(\"" + superClassName + "\", CPObject";
|
||||
});
|
||||
|
||||
var allocateClassPair = objj_allocateClassPair;
|
||||
|
||||
objj_allocateClassPair = function(superClassName)
|
||||
{
|
||||
superClasses[arguments[2]] = superClassName;
|
||||
return allocateClassPair(arguments[1], arguments[2]);
|
||||
}
|
||||
|
||||
var classes = [],
|
||||
registerClassPair = objj_registerClassPair;
|
||||
|
||||
objj_registerClassPair = function(aClass)
|
||||
{
|
||||
aClass.actual_super_class;
|
||||
registerClassPair(aClass);
|
||||
classes.push(aClass);
|
||||
}
|
||||
|
||||
objj_executeFile = function()
|
||||
{
|
||||
}
|
||||
|
||||
eval(source);
|
||||
|
||||
var ObjectiveCSource = "";
|
||||
|
||||
classes.forEach(function(aClass)
|
||||
{
|
||||
var outlets = [];
|
||||
|
||||
class_copyIvarList(aClass).forEach(function(anIvar)
|
||||
{
|
||||
var types = ivar_getTypeEncoding(anIvar).split(" ");
|
||||
|
||||
if (types.indexOf("IBOutlet") !== CPNotFound || types.indexOf("@outlet") !== CPNotFound)
|
||||
{
|
||||
types.forEach(function(aType, anIndex)
|
||||
{
|
||||
if (aType === "@outlet")
|
||||
types[anIndex] = "IBOutlet";
|
||||
|
||||
else if (aType !== "IBOutlet")
|
||||
types[anIndex] = NSCompatibleClassName(aType, YES);
|
||||
});
|
||||
|
||||
outlets.push(" " + types.join(" ") + " " + ivar_getName(anIvar) + ";");
|
||||
}
|
||||
});
|
||||
|
||||
var actions = [];
|
||||
|
||||
class_copyMethodList(aClass).forEach(function(aMethod)
|
||||
{
|
||||
var types = aMethod.types,
|
||||
type = types[0];
|
||||
|
||||
if (type === "IBAction" || type === "@action")
|
||||
actions.push("- (IBAction)" + method_getName(aMethod) + "(" + NSCompatibleClassName(types[1] || "id", YES)+ ")aSender;");
|
||||
});
|
||||
|
||||
var className = class_getName(aClass),
|
||||
superClassName = superClasses[className];
|
||||
|
||||
ObjectiveCSource +=
|
||||
"\n@interface " + class_getName(aClass) +
|
||||
(superClassName === "Nil" ? "" : (" : " + NSCompatibleClassName(superClassName))) +
|
||||
"\n{\n" +
|
||||
outlets.join("\n") +
|
||||
"\n}\n" +
|
||||
actions.join("\n") +
|
||||
"\n@end";
|
||||
});
|
||||
|
||||
if (ObjectiveCSource.length)
|
||||
FILE.write(outputURL, ObjectiveCSource, { charset:"UTF-8" });
|
||||
}
|
||||
|
||||
function NSCompatibleClassName(aClassName, asPointer)
|
||||
{
|
||||
if (aClassName === "var" || aClassName === "id")
|
||||
return "id";
|
||||
|
||||
var suffix = aClassName.substr(0, 2),
|
||||
asterisk = asPointer ? "*" : "";
|
||||
|
||||
if (suffix !== "CP")
|
||||
return aClassName + asterisk;
|
||||
|
||||
var NSClassName = "NS" + aClassName.substr(2);
|
||||
|
||||
if (NSClasses[NSClassName])
|
||||
return NSClassName + asterisk;
|
||||
|
||||
return aClassName + asterisk;
|
||||
}
|
||||
|
||||
var NSClasses = {
|
||||
"NSAffineTransform" : YES,
|
||||
"NSAppleEventDescriptor" : YES,
|
||||
"NSAppleEventManager" : YES,
|
||||
"NSAppleScript" : YES,
|
||||
"NSArchiver" : YES,
|
||||
"NSArray" : YES,
|
||||
"NSAssertionHandler" : YES,
|
||||
"NSAttributedString" : YES,
|
||||
"NSAutoreleasePool" : YES,
|
||||
"NSBlockOperation" : YES,
|
||||
"NSBundle" : YES,
|
||||
"NSCache" : YES,
|
||||
"NSCachedURLResponse" : YES,
|
||||
"NSCalendar" : YES,
|
||||
"NSCharacterSet" : YES,
|
||||
"NSClassDescription" : YES,
|
||||
"NSCloneCommand" : YES,
|
||||
"NSCloseCommand" : YES,
|
||||
"NSCoder" : YES,
|
||||
"NSComparisonPredicate" : YES,
|
||||
"NSCompoundPredicate" : YES,
|
||||
"NSCondition" : YES,
|
||||
"NSConditionLock" : YES,
|
||||
"NSConnection" : YES,
|
||||
"NSCountCommand" : YES,
|
||||
"NSCountedSet" : YES,
|
||||
"NSCreateCommand" : YES,
|
||||
"NSData" : YES,
|
||||
"NSDate" : YES,
|
||||
"NSDateComponents" : YES,
|
||||
"NSDateFormatter" : YES,
|
||||
"NSDecimalNumber" : YES,
|
||||
"NSDecimalNumberHandler" : YES,
|
||||
"NSDeleteCommand" : YES,
|
||||
"NSDeserializer" : YES,
|
||||
"NSDictionary" : YES,
|
||||
"NSDirectoryEnumerator" : YES,
|
||||
"NSDistantObject" : YES,
|
||||
"NSDistantObjectRequest" : YES,
|
||||
"NSDistributedLock" : YES,
|
||||
"NSDistributedNotificationCenter" : YES,
|
||||
"NSEnumerator" : YES,
|
||||
"NSError" : YES,
|
||||
"NSException" : YES,
|
||||
"NSExistsCommand" : YES,
|
||||
"NSExpression" : YES,
|
||||
"NSFileHandle" : YES,
|
||||
"NSFileManager" : YES,
|
||||
"NSFileWrapper" : YES,
|
||||
"NSFormatter" : YES,
|
||||
"NSGarbageCollector" : YES,
|
||||
"NSGetCommand" : YES,
|
||||
"NSHashTable" : YES,
|
||||
"NSHost" : YES,
|
||||
"NSHTTPCookie" : YES,
|
||||
"NSHTTPCookieStorage" : YES,
|
||||
"NSHTTPURLResponse" : YES,
|
||||
"NSIndexPath" : YES,
|
||||
"NSIndexSet" : YES,
|
||||
"NSIndexSpecifier" : YES,
|
||||
"NSInputStream" : YES,
|
||||
"NSInvocation" : YES,
|
||||
"NSInvocationOperation" : YES,
|
||||
"NSKeyedArchiver" : YES,
|
||||
"NSKeyedUnarchiver" : YES,
|
||||
"NSLocale" : YES,
|
||||
"NSLock" : YES,
|
||||
"NSLogicalTest" : YES,
|
||||
"NSMachBootstrapServer" : YES,
|
||||
"NSMachPort" : YES,
|
||||
"NSMapTable" : YES,
|
||||
"NSMessagePort" : YES,
|
||||
"NSMessagePortNameServer" : YES,
|
||||
"NSMetadataItem" : YES,
|
||||
"NSMetadataQuery" : YES,
|
||||
"NSMetadataQueryAttributeValueTuple" : YES,
|
||||
"NSMetadataQueryResultGroup" : YES,
|
||||
"NSMethodSignature" : YES,
|
||||
"NSMiddleSpecifier" : YES,
|
||||
"NSMoveCommand" : YES,
|
||||
"NSMutableArray" : YES,
|
||||
"NSMutableAttributedString" : YES,
|
||||
"NSMutableCharacterSet" : YES,
|
||||
"NSMutableData" : YES,
|
||||
"NSMutableDictionary" : YES,
|
||||
"NSMutableIndexSet" : YES,
|
||||
"NSMutableSet" : YES,
|
||||
"NSMutableString" : YES,
|
||||
"NSMutableURLRequest" : YES,
|
||||
"NSNameSpecifier" : YES,
|
||||
"NSNetService" : YES,
|
||||
"NSNetServiceBrowser" : YES,
|
||||
"NSNotification" : YES,
|
||||
"NSNotificationCenter" : YES,
|
||||
"NSNotificationQueue" : YES,
|
||||
"NSNull" : YES,
|
||||
"NSNumber" : YES,
|
||||
"NSNumberFormatter" : YES,
|
||||
"NSObject" : YES,
|
||||
"NSOperation" : YES,
|
||||
"NSOperationQueue" : YES,
|
||||
"NSOrthography" : YES,
|
||||
"NSOutputStream" : YES,
|
||||
"NSPipe" : YES,
|
||||
"NSPointerArray" : YES,
|
||||
"NSPointerFunctions" : YES,
|
||||
"NSPort" : YES,
|
||||
"NSPortCoder" : YES,
|
||||
"NSPortMessage" : YES,
|
||||
"NSPortNameServer" : YES,
|
||||
"NSPositionalSpecifier" : YES,
|
||||
"NSPredicate" : YES,
|
||||
"NSProcessInfo" : YES,
|
||||
"NSPropertyListSerialization" : YES,
|
||||
"NSPropertySpecifier" : YES,
|
||||
"NSProtocolChecker" : YES,
|
||||
"NSProxy" : YES,
|
||||
"NSPurgeableData" : YES,
|
||||
"NSQuitCommand" : YES,
|
||||
"NSRandomSpecifier" : YES,
|
||||
"NSRangeSpecifier" : YES,
|
||||
"NSRecursiveLock" : YES,
|
||||
"NSRelativeSpecifier" : YES,
|
||||
"NSRunLoop" : YES,
|
||||
"NSScanner" : YES,
|
||||
"NSScriptClassDescription" : YES,
|
||||
"NSScriptCoercionHandler" : YES,
|
||||
"NSScriptCommand" : YES,
|
||||
"NSScriptCommandDescription" : YES,
|
||||
"NSScriptExecutionContext" : YES,
|
||||
"NSScriptObjectSpecifier" : YES,
|
||||
"NSScriptSuiteRegistry" : YES,
|
||||
"NSScriptWhoseTest" : YES,
|
||||
"NSSerializer" : YES,
|
||||
"NSSet" : YES,
|
||||
"NSSetCommand" : YES,
|
||||
"NSSocketPort" : YES,
|
||||
"NSSocketPortNameServer" : YES,
|
||||
"NSSortDescriptor" : YES,
|
||||
"NSSpecifierTest" : YES,
|
||||
"NSSpellServer" : YES,
|
||||
"NSStream" : YES,
|
||||
"NSString" : YES,
|
||||
"NSTask" : YES,
|
||||
"NSTextCheckingResult" : YES,
|
||||
"NSThread" : YES,
|
||||
"NSTimer" : YES,
|
||||
"NSTimeZone" : YES,
|
||||
"NSUnarchiver" : YES,
|
||||
"NSUndoManager" : YES,
|
||||
"NSUniqueIDSpecifier" : YES,
|
||||
"NSURL" : YES,
|
||||
"NSURLAuthenticationChallenge" : YES,
|
||||
"NSURLCache" : YES,
|
||||
"NSURLConnection" : YES,
|
||||
"NSURLCredential" : YES,
|
||||
"NSURLCredentialStorage" : YES,
|
||||
"NSURLDownload" : YES,
|
||||
"NSURLHandle" : YES,
|
||||
"NSURLProtectionSpace" : YES,
|
||||
"NSURLProtocol" : YES,
|
||||
"NSURLRequest" : YES,
|
||||
"NSURLResponse" : YES,
|
||||
"NSUserDefaults" : YES,
|
||||
"NSValue" : YES,
|
||||
"NSValueTransformer" : YES,
|
||||
"NSWhoseSpecifier" : YES,
|
||||
"NSXMLDocument" : YES,
|
||||
"NSXMLDTD" : YES,
|
||||
"NSXMLDTDNode" : YES,
|
||||
"NSXMLElement" : YES,
|
||||
"NSXMLNode" : YES,
|
||||
"NSXMLParser" : YES,
|
||||
"NSActionCell" : YES,
|
||||
"NSAffineTransform Additions" : YES,
|
||||
"NSAlert" : YES,
|
||||
"NSAnimation" : YES,
|
||||
"NSAnimationContext" : YES,
|
||||
"NSAppleScript Additions" : YES,
|
||||
"NSApplication" : YES,
|
||||
"NSArrayController" : YES,
|
||||
"NSATSTypesetter" : YES,
|
||||
"NSAttributedString Application Kit Additions" : YES,
|
||||
"NSBezierPath" : YES,
|
||||
"NSBitmapImageRep" : YES,
|
||||
"NSBox" : YES,
|
||||
"NSBrowser" : YES,
|
||||
"NSBrowserCell" : YES,
|
||||
"NSBundle Additions" : YES,
|
||||
"NSButton" : YES,
|
||||
"NSButtonCell" : YES,
|
||||
"NSCachedImageRep" : YES,
|
||||
"NSCell" : YES,
|
||||
"NSCIImageRep" : YES,
|
||||
"NSClipView" : YES,
|
||||
"NSCoder Application Kit Additions" : YES,
|
||||
"NSCollectionView" : YES,
|
||||
"NSCollectionViewItem" : YES,
|
||||
"NSColor" : YES,
|
||||
"NSColorList" : YES,
|
||||
"NSColorPanel" : YES,
|
||||
"NSColorPicker" : YES,
|
||||
"NSColorSpace" : YES,
|
||||
"NSColorWell" : YES,
|
||||
"NSComboBox" : YES,
|
||||
"NSComboBoxCell" : YES,
|
||||
"NSControl" : YES,
|
||||
"NSController" : YES,
|
||||
"NSCursor" : YES,
|
||||
"NSCustomImageRep" : YES,
|
||||
"NSDatePicker" : YES,
|
||||
"NSDatePickerCell" : YES,
|
||||
"NSDictionaryController" : YES,
|
||||
"NSDockTile" : YES,
|
||||
"NSDocument" : YES,
|
||||
"NSDocumentController" : YES,
|
||||
"NSDrawer" : YES,
|
||||
"NSEPSImageRep" : YES,
|
||||
"NSEvent" : YES,
|
||||
"NSFileWrapper" : YES,
|
||||
"NSFont" : YES,
|
||||
"NSFontDescriptor" : YES,
|
||||
"NSFontManager" : YES,
|
||||
"NSFontPanel" : YES,
|
||||
"NSForm" : YES,
|
||||
"NSFormCell" : YES,
|
||||
"NSGlyphGenerator" : YES,
|
||||
"NSGlyphInfo" : YES,
|
||||
"NSGradient" : YES,
|
||||
"NSGraphicsContext" : YES,
|
||||
"NSHelpManager" : YES,
|
||||
"NSImage" : YES,
|
||||
"NSImageCell" : YES,
|
||||
"NSImageRep" : YES,
|
||||
"NSImageView" : YES,
|
||||
"NSLayoutManager" : YES,
|
||||
"NSLevelIndicator" : YES,
|
||||
"NSLevelIndicatorCell" : YES,
|
||||
"NSMatrix" : YES,
|
||||
"NSMenu" : YES,
|
||||
"NSMenuItem" : YES,
|
||||
"NSMenuItemCell" : YES,
|
||||
"NSMenuView" : YES,
|
||||
"NSMutableAttributedString Additions" : YES,
|
||||
"NSMutableParagraphStyle" : YES,
|
||||
"NSNib" : YES,
|
||||
"NSNibConnector" : YES,
|
||||
"NSNibControlConnector" : YES,
|
||||
"NSNibOutletConnector" : YES,
|
||||
"NSObjectController" : YES,
|
||||
"NSOpenGLContext" : YES,
|
||||
"NSOpenGLLayer" : YES,
|
||||
"NSOpenGLPixelBuffer" : YES,
|
||||
"NSOpenGLPixelFormat" : YES,
|
||||
"NSOpenGLView" : YES,
|
||||
"NSOpenPanel" : YES,
|
||||
"NSOutlineView" : YES,
|
||||
"NSPageLayout" : YES,
|
||||
"NSPanel" : YES,
|
||||
"NSParagraphStyle" : YES,
|
||||
"NSPasteboard" : YES,
|
||||
"NSPasteboardItem" : YES,
|
||||
"NSPathCell" : YES,
|
||||
"NSPathComponentCell" : YES,
|
||||
"NSPathControl" : YES,
|
||||
"NSPDFImageRep" : YES,
|
||||
"NSPersistentDocument" : YES,
|
||||
"NSPICTImageRep" : YES,
|
||||
"NSPopUpButton" : YES,
|
||||
"NSPopUpButtonCell" : YES,
|
||||
"NSPredicateEditor" : YES,
|
||||
"NSPredicateEditorRowTemplate" : YES,
|
||||
"NSPrinter" : YES,
|
||||
"NSPrintInfo" : YES,
|
||||
"NSPrintOperation" : YES,
|
||||
"NSPrintPanel" : YES,
|
||||
"NSProgressIndicator" : YES,
|
||||
"NSResponder" : YES,
|
||||
"NSRuleEditor" : YES,
|
||||
"NSRulerMarker" : YES,
|
||||
"NSRulerView" : YES,
|
||||
"NSRunningApplication" : YES,
|
||||
"NSSavePanel" : YES,
|
||||
"NSScreen" : YES,
|
||||
"NSScroller" : YES,
|
||||
"NSScrollView" : YES,
|
||||
"NSSearchField" : YES,
|
||||
"NSSearchFieldCell" : YES,
|
||||
"NSSecureTextField" : YES,
|
||||
"NSSecureTextFieldCell" : YES,
|
||||
"NSSegmentedCell" : YES,
|
||||
"NSSegmentedControl" : YES,
|
||||
"NSShadow" : YES,
|
||||
"NSSlider" : YES,
|
||||
"NSSliderCell" : YES,
|
||||
"NSSound" : YES,
|
||||
"NSSpeechRecognizer" : YES,
|
||||
"NSSpeechSynthesizer" : YES,
|
||||
"NSSpellChecker" : YES,
|
||||
"NSSplitView" : YES,
|
||||
"NSStatusBar" : YES,
|
||||
"NSStatusItem" : YES,
|
||||
"NSStepper" : YES,
|
||||
"NSStepperCell" : YES,
|
||||
"NSString Application Kit Additions" : YES,
|
||||
"NSTableColumn" : YES,
|
||||
"NSTableHeaderCell" : YES,
|
||||
"NSTableHeaderView" : YES,
|
||||
"NSTableView" : YES,
|
||||
"NSTabView" : YES,
|
||||
"NSTabViewItem" : YES,
|
||||
"NSText" : YES,
|
||||
"NSTextAttachment" : YES,
|
||||
"NSTextAttachmentCell" : YES,
|
||||
"NSTextBlock" : YES,
|
||||
"NSTextContainer" : YES,
|
||||
"NSTextField" : YES,
|
||||
"NSTextFieldCell" : YES,
|
||||
"NSTextInputContext" : YES,
|
||||
"NSTextList" : YES,
|
||||
"NSTextStorage" : YES,
|
||||
"NSTextTab" : YES,
|
||||
"NSTextTable" : YES,
|
||||
"NSTextTableBlock" : YES,
|
||||
"NSTextView" : YES,
|
||||
"NSTokenField" : YES,
|
||||
"NSTokenFieldCell" : YES,
|
||||
"NSToolbar" : YES,
|
||||
"NSToolbarItem" : YES,
|
||||
"NSToolbarItemGroup" : YES,
|
||||
"NSTouch" : YES,
|
||||
"NSTrackingArea" : YES,
|
||||
"NSTreeController" : YES,
|
||||
"NSTreeNode" : YES,
|
||||
"NSTypesetter" : YES,
|
||||
"NSURL Additions" : YES,
|
||||
"NSUserDefaultsController" : YES,
|
||||
"NSView" : YES,
|
||||
"NSViewAnimation" : YES,
|
||||
"NSViewController" : YES,
|
||||
"NSWindow" : YES,
|
||||
"NSWindowController" : YES,
|
||||
"NSWorkspace" : YES
|
||||
};
|
||||
@@ -1,354 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
9EEC4498135749D200615446 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EEC4497135749D200615446 /* Cocoa.framework */; };
|
||||
9EEC44B5135749D300615446 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EEC4497135749D200615446 /* Cocoa.framework */; };
|
||||
9EEC44CC13574A0B00615446 /* ${CappuccinoProjectName} in Resources */ = {isa = PBXBuildFile; fileRef = 9EEC44CB13574A0B00615446 /* ${CappuccinoProjectName} */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
9EEC44B6135749D300615446 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 9EEC448A135749D200615446 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 9EEC4492135749D200615446;
|
||||
remoteInfo = Another;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
9EEC4493135749D200615446 /* Another.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Another.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9EEC4497135749D200615446 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
||||
9EEC449A135749D300615446 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
||||
9EEC449B135749D300615446 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
|
||||
9EEC449C135749D300615446 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
9EEC44B4135749D300615446 /* AnotherTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AnotherTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9EEC44CB13574A0B00615446 /* ${CappuccinoProjectName} */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ${CappuccinoProjectName}; path = ${CappuccinoProjectRelativePath}; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
9EEC4490135749D200615446 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
9EEC4498135749D200615446 /* Cocoa.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
9EEC44B0135749D300615446 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
9EEC44B5135749D300615446 /* Cocoa.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
9EEC4488135749D200615446 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9EEC44CB13574A0B00615446 /* ${CappuccinoProjectName} */,
|
||||
9EEC4496135749D200615446 /* Frameworks */,
|
||||
9EEC4494135749D200615446 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9EEC4494135749D200615446 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9EEC4493135749D200615446 /* Another.app */,
|
||||
9EEC44B4135749D300615446 /* AnotherTests.octest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9EEC4496135749D200615446 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9EEC4497135749D200615446 /* Cocoa.framework */,
|
||||
9EEC4499135749D300615446 /* Other Frameworks */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9EEC4499135749D300615446 /* Other Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9EEC449A135749D300615446 /* AppKit.framework */,
|
||||
9EEC449B135749D300615446 /* CoreData.framework */,
|
||||
9EEC449C135749D300615446 /* Foundation.framework */,
|
||||
);
|
||||
name = "Other Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
9EEC4492135749D200615446 /* Another */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 9EEC44C5135749D300615446 /* Build configuration list for PBXNativeTarget "Another" */;
|
||||
buildPhases = (
|
||||
9EEC448F135749D200615446 /* Sources */,
|
||||
9EEC4490135749D200615446 /* Frameworks */,
|
||||
9EEC4491135749D200615446 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Another;
|
||||
productName = Another;
|
||||
productReference = 9EEC4493135749D200615446 /* Another.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
9EEC44B3135749D300615446 /* AnotherTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 9EEC44C8135749D300615446 /* Build configuration list for PBXNativeTarget "AnotherTests" */;
|
||||
buildPhases = (
|
||||
9EEC44AF135749D300615446 /* Sources */,
|
||||
9EEC44B0135749D300615446 /* Frameworks */,
|
||||
9EEC44B1135749D300615446 /* Resources */,
|
||||
9EEC44B2135749D300615446 /* ShellScript */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
9EEC44B7135749D300615446 /* PBXTargetDependency */,
|
||||
);
|
||||
name = AnotherTests;
|
||||
productName = AnotherTests;
|
||||
productReference = 9EEC44B4135749D300615446 /* AnotherTests.octest */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
9EEC448A135749D200615446 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
ORGANIZATIONNAME = "280 North, Inc.";
|
||||
};
|
||||
buildConfigurationList = 9EEC448D135749D200615446 /* Build configuration list for PBXProject "Another" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 9EEC4488135749D200615446;
|
||||
productRefGroup = 9EEC4494135749D200615446 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
9EEC4492135749D200615446 /* Another */,
|
||||
9EEC44B3135749D300615446 /* AnotherTests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
9EEC4491135749D200615446 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
9EEC44CC13574A0B00615446 /* ${CappuccinoProjectName} in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
9EEC44B1135749D300615446 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
9EEC44B2135749D300615446 /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
9EEC448F135749D200615446 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
9EEC44AF135749D300615446 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
9EEC44B7135749D300615446 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 9EEC4492135749D200615446 /* Another */;
|
||||
targetProxy = 9EEC44B6135749D300615446 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
9EEC44C3135749D300615446 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9EEC44C4135749D300615446 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
9EEC44C6135749D300615446 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "Another/Another-Prefix.pch";
|
||||
INFOPLIST_FILE = "Another/Another-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9EEC44C7135749D300615446 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "Another/Another-Prefix.pch";
|
||||
INFOPLIST_FILE = "Another/Another-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
9EEC44C9135749D300615446 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Another.app/Contents/MacOS/Another";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "AnotherTests/AnotherTests-Prefix.pch";
|
||||
INFOPLIST_FILE = "AnotherTests/AnotherTests-Info.plist";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
SenTestingKit,
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||
WRAPPER_EXTENSION = octest;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9EEC44CA135749D300615446 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Another.app/Contents/MacOS/Another";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "AnotherTests/AnotherTests-Prefix.pch";
|
||||
INFOPLIST_FILE = "AnotherTests/AnotherTests-Info.plist";
|
||||
OTHER_LDFLAGS = (
|
||||
"-framework",
|
||||
SenTestingKit,
|
||||
);
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||
WRAPPER_EXTENSION = octest;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
9EEC448D135749D200615446 /* Build configuration list for PBXProject "Another" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9EEC44C3135749D300615446 /* Debug */,
|
||||
9EEC44C4135749D300615446 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
9EEC44C5135749D300615446 /* Build configuration list for PBXNativeTarget "Another" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9EEC44C6135749D300615446 /* Debug */,
|
||||
9EEC44C7135749D300615446 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
};
|
||||
9EEC44C8135749D300615446 /* Build configuration list for PBXNativeTarget "AnotherTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9EEC44C9135749D300615446 /* Debug */,
|
||||
9EEC44CA135749D300615446 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 9EEC448A135749D200615446 /* Project object */;
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
|
||||
@import <Foundation/CPObject.j>
|
||||
@import <Foundation/CPString.j>
|
||||
@import <Foundation/CPDictionary.j>
|
||||
|
||||
@import "XCResourceMonitor.j"
|
||||
|
||||
var FILE = require("file"),
|
||||
OS = require("os");
|
||||
|
||||
|
||||
@implementation XCProject : CPObject
|
||||
{
|
||||
CFURL m_URL;
|
||||
|
||||
XCResourceMonitor m_sourceResourceMonitor;
|
||||
XCResourceMonitor m_nibResourceMonitor;
|
||||
|
||||
CFURL m_xCodeProjectURL;
|
||||
CFURL m_xCodeProjectFileURL;
|
||||
CFURL m_xCodeSupportSourcesURL;
|
||||
}
|
||||
|
||||
- (id)initWithPath:(CPString)aPath
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
if (self)
|
||||
{
|
||||
m_URL = new CFURL(aPath);
|
||||
|
||||
[self prepare_xCodeProject];
|
||||
|
||||
m_sourceResourceMonitor = [[XCResourceCollection alloc] initWithPattern:FILE.join(m_URL, "/**/*.j")];
|
||||
m_nibResourceMonitor = [[XCResourceCollection alloc] initWithPattern:FILE.join(m_URL, "/**/*.[nx]ib")];
|
||||
|
||||
[self launch];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (CPString)projectName
|
||||
{
|
||||
return m_URL.lastPathComponent();
|
||||
}
|
||||
|
||||
- (CFURL)xCodeProjectTemplateURL
|
||||
{
|
||||
var CAPP_HOME = require("narwhal/packages").catalog["cappuccino"].directory;
|
||||
|
||||
return new CFURL(FILE.join(CAPP_HOME, "lib", "xcodecapp", "Resources", "xCodeSupport.xcodeproj"));
|
||||
}
|
||||
|
||||
- (CFURL)xCodeProjectParserURL
|
||||
{
|
||||
var CAPP_HOME = require("narwhal/packages").catalog["cappuccino"].directory;
|
||||
|
||||
return new CFURL(FILE.join(CAPP_HOME, "lib", "xcodecapp", "Resources", "FIXME_parser.j"));
|
||||
}
|
||||
|
||||
- (void)launch
|
||||
{
|
||||
OS.system("open " + m_xCodeProjectFileURL);
|
||||
}
|
||||
|
||||
- (void)prepare_xCodeProject
|
||||
{
|
||||
m_xCodeProjectURL = new CFURL(".xCodeSupport", m_URL.asDirectoryPathURL());
|
||||
|
||||
if (FILE.exists(m_xCodeProjectURL))
|
||||
FILE.rmtree(m_xCodeProjectURL);
|
||||
|
||||
FILE.mkdir(m_xCodeProjectURL);
|
||||
|
||||
var projectName = [self projectName],
|
||||
xCodeProjectTemplateURL = [self xCodeProjectTemplateURL];
|
||||
|
||||
m_xCodeProjectFileURL = new CFURL(projectName + ".xcodeproj", m_xCodeProjectURL.asDirectoryPathURL());
|
||||
|
||||
FILE.copyTree(xCodeProjectTemplateURL, m_xCodeProjectFileURL.absoluteURL());
|
||||
|
||||
var pbxprojURL = new CFURL("project.pbxproj", m_xCodeProjectFileURL.asDirectoryPathURL()),
|
||||
pbxproj = FILE.read(pbxprojURL, { charset:"UTF-8" });
|
||||
|
||||
pbxproj = pbxproj.replace(/\$\{CappuccinoProjectName\}/g, projectName);
|
||||
pbxproj = pbxproj.replace(/\$\{CappuccinoProjectRelativePath\}/g, FILE.join("..", "..", projectName));
|
||||
|
||||
FILE.write(pbxprojURL, pbxproj, { charset:"UTF-8" });
|
||||
|
||||
m_xCodeSupportSourcesURL = new CFURL("Sources", m_xCodeProjectURL.asDirectoryPathURL());
|
||||
|
||||
FILE.mkdir(m_xCodeSupportSourcesURL);
|
||||
}
|
||||
|
||||
- (void)update
|
||||
{
|
||||
[self updateSourceFiles];
|
||||
[self updateNibFiles];
|
||||
}
|
||||
|
||||
- (CPURL)shadowURLForSourceURL:(CPURL)aSourceURL
|
||||
{
|
||||
var flattenedPath = (aSourceURL + "").replace(new RegExp("\/", "g"), "_"),
|
||||
extension = FILE.extension(flattenedPath),
|
||||
basename = flattenedPath.substr(0, flattenedPath.length - extension.length) + ".h";
|
||||
|
||||
return new CFURL(basename, m_xCodeSupportSourcesURL.asDirectoryPathURL());
|
||||
}
|
||||
|
||||
- (void)updateSourceFiles
|
||||
{
|
||||
// Require the new parser for this.
|
||||
[m_sourceResourceMonitor update];
|
||||
|
||||
[m_sourceResourceMonitor addedFilePaths].forEach(function(aFilePath)
|
||||
{
|
||||
print("Added " + aFilePath);
|
||||
OS.system("objj " + [self xCodeProjectParserURL] + " " + aFilePath + " " + [self shadowURLForSourceURL:aFilePath]);
|
||||
});
|
||||
|
||||
[m_sourceResourceMonitor editedFilePaths].forEach(function(aFilePath)
|
||||
{
|
||||
print("Edited " + aFilePath);
|
||||
OS.system("objj " + [self xCodeProjectParserURL] + " " + aFilePath + " " + [self shadowURLForSourceURL:aFilePath]);
|
||||
});
|
||||
|
||||
[m_sourceResourceMonitor removedFilePaths].forEach(function(aFilePath)
|
||||
{
|
||||
print("Removed " + aFilePath);
|
||||
FILE.remove([self shadowURLForSourceURL:aFilePath]);
|
||||
});
|
||||
}
|
||||
|
||||
- (void)updateNibFiles
|
||||
{
|
||||
[m_nibResourceMonitor update];
|
||||
|
||||
[m_nibResourceMonitor addedFilePaths].forEach(function(aFilePath)
|
||||
{
|
||||
print("Added " + aFilePath);
|
||||
OS.system("nib2cib " + aFilePath);
|
||||
});
|
||||
|
||||
[m_nibResourceMonitor editedFilePaths].forEach(function(aFilePath)
|
||||
{
|
||||
print("Edited " + aFilePath);
|
||||
OS.system("nib2cib " + aFilePath);
|
||||
});
|
||||
|
||||
[m_nibResourceMonitor removedFilePaths].forEach(function(aFilePath)
|
||||
{
|
||||
// delete?
|
||||
print("Removed " + aFilePath);
|
||||
// OS.system("nib2cib " + aFilePath);
|
||||
});
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,71 +0,0 @@
|
||||
|
||||
@import <Foundation/CPObject.j>
|
||||
|
||||
var FILE = require("file"),
|
||||
FileList = require("jake").FileList;
|
||||
|
||||
|
||||
@implementation XCResourceCollection : CPObject
|
||||
{
|
||||
CPString m_pattern;
|
||||
CPDictionary m_mtimesForFilePaths;
|
||||
|
||||
CPMutableArray m_addedFilePaths @accessors(readonly, getter=addedFilePaths);
|
||||
CPMutableArray m_removedFilePaths @accessors(readonly, getter=removedFilePaths);
|
||||
CPMutableArray m_editedFilePaths @accessors(readonly, getter=editedFilePaths);
|
||||
}
|
||||
|
||||
- (id)initWithPattern:(CPString)aPattern
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
if (self)
|
||||
m_pattern = aPattern;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)update
|
||||
{
|
||||
m_addedFilePaths = [];
|
||||
m_removedFilePaths = [];
|
||||
m_editedFilePaths = [];
|
||||
|
||||
// FIXME: There must be a better way to do this.
|
||||
var subProjects = new FileList(FILE.join(FILE.dirname(FILE.dirname(m_pattern)), "*/**/Jakefile")),
|
||||
paths = new FileList(m_pattern);
|
||||
|
||||
subProjects.forEach(function(aPath)
|
||||
{
|
||||
paths.exclude(FILE.join(FILE.dirname(aPath), "**", "*"));
|
||||
});
|
||||
|
||||
paths.exclude(FILE.join("Build", "**", "*"));
|
||||
|
||||
var mtimesForFilePaths = [CPMutableDictionary new];
|
||||
|
||||
paths.forEach(function(aPath)
|
||||
{
|
||||
var time = [m_mtimesForFilePaths objectForKey:aPath],
|
||||
current = FILE.mtime(aPath);
|
||||
|
||||
if (time === nil)
|
||||
[m_addedFilePaths addObject:aPath];
|
||||
|
||||
else if (current > time)
|
||||
[m_editedFilePaths addObject:aPath];
|
||||
|
||||
[mtimesForFilePaths setObject:current forKey:aPath];
|
||||
});
|
||||
|
||||
var filePath = nil,
|
||||
filePaths = [m_mtimesForFilePaths keyEnumerator];
|
||||
|
||||
while (filePath = [filePaths nextObject])
|
||||
if ([mtimesForFilePaths objectForKey:filePath] === nil)
|
||||
[m_removedFilePaths addObject:filePath];
|
||||
|
||||
m_mtimesForFilePaths = mtimesForFilePaths;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
@import "XCProject.j"
|
||||
|
||||
var FILE = require("file"),
|
||||
OS = require("os");
|
||||
|
||||
var project = [[XCProject alloc] initWithPath:FILE.cwd()];
|
||||
|
||||
while (YES)
|
||||
{
|
||||
[project update];
|
||||
|
||||
OS.sleep(1);
|
||||
}
|
||||
|
||||