svn path=/trunk/csharpplugin/; revision=70014
This commit is contained in:
David Hudson 2006-12-24 08:35:24 +00:00
Родитель 2fe1b00868
Коммит 0c71304b39
42 изменённых файлов: 3347 добавлений и 0 удалений

Двоичные данные
Documentation/CSharpPlugin.doc Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Description</key>
<string>A C# file</string>
<key>MainTemplateFile</key>
<string>file.cs</string>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,18 @@
//
//
// ÇPROJECTNAMEÈ
// ÇFILENAMEÈ
//
// Created by ÇFULLUSERNAMEÈ on ÇDATEÈ.
// Copyright ÇYEARÈ ÇORGANIZATIONNAMEÈ. All rights reserved.
//
//
using System;
namespace ÇPROJECTNAMEÈ
{
public class ÇFILEBASENAMEASIDENTIFIERÈ
{
}
}

200
Headers/XCPBuildSystem.h Normal file
Просмотреть файл

@ -0,0 +1,200 @@
/*
XCPBuildSystem.h - XCode Plugin API
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import <Foundation/Foundation.h>
@class XCDependencyNode;
@class XCDependencyCommand;
/*
Generic build context
*/
@interface PBXBuildContext : NSObject {
#if XCODE_VERSION == 23
char _members_PBXBuildContext[0x10 - 0x4];
#endif
}
// Accessors
- (id)currentBuildOperation;
- (NSString*)baseDirectoryPath;
#if XCODE_VERSION < 23
- (NSString*)chrootPath;
#endif
// Modify dynamic settings (= globals variables)
- (void)setStringValue:(NSString*)value forDynamicSetting:(NSString*)settingName;
- (void)removeDynamicSetting:(NSString*)settingName;
- (void)prependStringOrStringListValue:(NSString*)value toDynamicSetting:(NSString*)settingName;
- (void)appendStringOrStringListValue:(NSString*)value toDynamicSetting:(NSString*)settingName;
- (void)removeStringOrStringListValue:(NSString*)value fromDynamicSetting:(NSString*)settingName;
// Recursively replace $(VARIABLE) in strings by the value of the build setting VARIABLE
// $(VARIABLE:quote) may be used to automatically quote and escape variable content
#if XCODE_VERSION < 22
- (NSString*)expandedValueForString:(NSString*)string getRecursiveSettingName:(id*)name options:(unsigned)options;
- (NSString*)expandedValueForString:(NSString*)string getRecursiveSettingName:(id*)name;
- (BOOL)expandedValueExistsForString:(NSString*)string;
#else
- (BOOL)expandedValueIsNonEmptyForString:(NSString*)string;
- (BOOL)expandedBooleanValueForString:(NSString*)string;
#endif
- (NSString*)expandedValueForString:(NSString*)string;
- (NSString*)absoluteExpandedPathForString:(NSString*)string;
// Others
- (void)removeAllDynamicSettings;
/*
- (void)pushToolParameterTierBuildSettingsDictionary:(id)tier;
- (void)popToolParameterTierBuildSettingsDictionary;
- (void)setToolParameterTierBuildSettingsDictionaries:(id)tier;
- (void)setHighestTierBuildSettingsDictionaries:(id)tier;
- (void)pushCustomTierBuildSettingsDictionary:(id)tier;
- (void)popCustomTierBuildSettingsDictionary;
- (void)setCustomTierBuildSettingsDictionaries:(id)tier;
- (void)pushDefaultsTierBuildSettingsDictionary:(id)tier;
- (void)popDefaultsTierBuildSettingsDictionary;
- (void)setDefaultsTierBuildSettingsDictionaries:(id)tier;
- (void)setLowestTierBuildSettingsDictionaries:(id)tier;
- (id)propertyExpansionContext;
- (void)setPropertyExpansionContext:(id)fp8;
#if XCODE_VERSION >= 23
- (id)arrayByExpandingEntriesInArray:(id)fp8;
- (id)dictionaryByExpandingEntriesInDictionary:(id)fp8;
#endif
*/
@end
/*
Context for the target build phase
*/
@interface PBXTargetBuildContext : PBXBuildContext {
#if XCODE_VERSION == 23
char _members_PBXTargetBuildContext[0xd8 - 0x10];
#endif
}
// Accessors
- (id)target;
- (NSString*)productDirectoryPath;
- (NSString*)buildDirectoryPath;
- (NSString*)description;
- (NSString*)baseDirectoryPath;
- (id)presumedBuildAction;
- (id)presumedBuildConfigurationName;
- (id)presumedBuildStyle;
// Natural (= relative to project) to absolute path conversions
- (NSString*)absolutePathForPath:(NSString*)path;
- (NSString*)naturalPathForPath:(NSString*)path;
// Build setting variable containing a list of paths
- (void)addPath:(NSString*)path toFilePathListWithIdentifier:(NSString*)identifier;
- (NSArray*)filePathListWithIdentifier:(NSString*)identifier;
// Dependency nodes
- (XCDependencyNode*)dependencyNodeForName:(NSString*)name createIfNeeded:(BOOL)create;
- (XCDependencyNode*)dependencyNodeForName:(NSString*)name;
// Product nodes
- (void)addProductNode:(XCDependencyNode*)node;
// Dependency commands
- (XCDependencyCommand*)createCommandWithRuleInfo:(NSArray*)info commandPath:(NSString*)path arguments:(NSArray*)args forNode:(XCDependencyNode*)node;
// Generic command creation
- (id)createDirectoryAtPath:(NSString*)path;
- (id)touchFileAtPath:(NSString*)path;
- (id)copyFileAtPath:(NSString*)srcPath toPath:(NSString*)dstPath;
- (id)dittoFileAtPath:(NSString*)srcPath toPath:(NSString*)dstPath;
- (id)moveFileAtPath:(NSString*)srcPath toPath:(NSString*)dstPath;
- (id)makeSymlinkToFileAtPath:(NSString*)originalPath atPath:(NSString*)linkPath;
// Auxiliary file managment
- (void)defineFileContents:(NSData*)content forAuxiliaryFileAtPath:(NSString*)path withPosixPermissions:(unsigned long)perms;
- (NSData*)fileContentsForAuxiliaryFileAtPath:(NSString*)path;
- (void)defineFileContents:(NSData*)content forAuxiliaryFileAtPath:(NSString*)path;
- (id)symlinkContentsForAuxiliarySymlinkAtPath:(NSString*)path;
- (void)defineSymlinkContents:(id)content forAuxiliarySymlinkAtPath:(NSString*)path;
- (BOOL)writeAuxiliaryFiles;
// Compile/source file links
- (void)setCompiledFilePath:(NSString*)compiledPath forSourceFilePath:(NSString*)sourcePath;
- (NSString*)compiledFilePathForSourceFilePath:(NSString*)path;
- (NSString*)sourceFilePathForCompiledFilePath:(NSString*)path;
- (void)clearCompiledFileInfoForFileAtPath:(NSString*)path;
- (void)clearCompiledFileInfoForAllFiles;
// Dependency analysis error messages
- (void)addDependencyAnalysisErrorMessageFormat:(NSString*)format,...;
- (void)addDependencyAnalysisWarningMessageFormat:(NSString*)format,...;
// Included file managment
- (BOOL)shouldScanHeadersOfFileAtPath:(NSString*)path;
- (id)importedFilesForPath:(NSString*)path ensureFilesExist:(BOOL)ensure;
- (id)importedFilesForPath:(NSString*)path;
// Linker parameters setted by compiler
#if XCODE_VERSION >= 23
- (id)compilerRequestedLinkerParameters;
- (void)addCompilerRequestedLinkerParameters:(id)fp8;
- (void)removeAllCompilerRequestedLinkerParameters;
#endif
// Others
- (BOOL)writeToGraphVizFileAtPath:(NSString*)path;
#if XCODE_VERSION >= 22
- (void)createDependencyGraphWithTargetDGSnapshot:(id)dgs;
#endif
/*
- (void)addActiveToolSpecification:(id)fp8;
- (void)setConstantFlags:(id)fp8 forBuildToolWithIdentifier:(id)fp12;
- (void)countBuildFileBaseName:(id)fp8;
- (unsigned)countForBuildFileBaseName:(id)fp8;
- (id)constantFlagsForBuildToolWithIdentifier:(id)fp8;
- (id)preprocessedFilePathForSourceFilePath:(id)fp8;
- (id)disassembledFilePathForSourceFilePath:(id)fp8;
- (id)activeToolSpecifications;
- (id)effectiveSearchPathsForSearchPath:(id)fp8;
- (id)searchPathsForRez;
- (BOOL)isFileUpToDateAtPath:(id)fp8;
- (id)fileInfoValueForKey:(id)fp8 forFileAtPath:(id)fp12;
- (void)setFileInfoValue:(id)fp8 forKey:(id)fp12 forFileAtPath:(id)fp16;
#if XCODE_VERSION < 22
- (id)headermapForGeneratedFiles;
- (id)headermapForOwnTargetHeaders;
- (id)headermapForAllTargetHeaders;
- (id)headermapForProjectHeaders;
- (id)headermap;
#else
- (id)headermapForIdentifier:(id)fp8;
- (void)setHeadermap:(id)fp8 forIdentifier:(id)fp12;
- (id)effectiveHeaderSearchPaths;
- (id)effectiveUserHeaderSearchPaths;
- (id)effectiveFrameworkSearchPaths;
- (id)effectiveLibrarySearchPaths;
- (id)effectiveRezSearchPaths;
#endif
#if XCODE_VERSION >= 23
- (void)removeSearchPathArgumentsFromArrayOfCommandLineArguments:(id)fp8;
#endif
- (id)headerFileSearchContextForSourceFilesUsingCompiler:(id)fp8 languageDialect:(id)fp12;
- (id)preprocessingInfoForIndexingSourceFilesWithCompiler:(id)fp8 languageDialect:(id)fp12;
*/
@end
@interface PBXTargetBuildContext (BDExtensions)
- (NSArray*)linkedLibraryPaths;
@end
/*
PBXHeaderFileSearchContext
*/

62
Headers/XCPBuildSystem.m Normal file
Просмотреть файл

@ -0,0 +1,62 @@
/*
XCPBuildSystem.h - XCode Plugin API
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
Define a function to retreive all files in the framework build phase.
*/
#import "XCPBuildSystem.h"
@class PBXFileType;
@interface PBXFileReference
- (NSArray*)referencesForBuilding;
- (NSString*)path;
- (NSString*)unexpandedAbsolutePath;
- (PBXFileType*)fileType;
@end
@interface PBXBuildFile
- (PBXFileReference*)fileReference;
@end
@interface PBXBuildPhase
#if XCODE_VERSION < 22
- (NSArray*)filteredBuildFilesForTargetBuildContext:(PBXTargetBuildContext*)context;
#else
- (NSArray*)buildFiles;
#endif
@end
@interface PBXTarget
- (PBXBuildPhase*)defaultFrameworksBuildPhase;
@end
@interface PBXTargetBuildContext (BDPrivate)
- (PBXTarget*)target;
@end
@implementation PBXTargetBuildContext (BDExtensions)
- (NSArray*)linkedLibraryPaths {
// From reverse engineering of the Ld linker
NSMutableArray* paths = [NSMutableArray arrayWithCapacity:20];
PBXBuildPhase* buildPhase = [[self target] defaultFrameworksBuildPhase];
#if XCODE_VERSION < 22
NSEnumerator* buildFileEnum = [[buildPhase filteredBuildFilesForTargetBuildContext:self] objectEnumerator];
#else
NSEnumerator* buildFileEnum = [[buildPhase buildFiles] objectEnumerator];
#endif
PBXBuildFile* buildFile;
while((buildFile = [buildFileEnum nextObject]) != nil) {
NSEnumerator* fileEnum = [[[buildFile fileReference] referencesForBuilding] objectEnumerator];
PBXFileReference* file;
while((file = [fileEnum nextObject]) != nil)
[paths addObject:[file unexpandedAbsolutePath]];
}
return paths;
}
@end

Просмотреть файл

@ -0,0 +1,127 @@
/*
XCPDependencyGraph.h - XCode Plugin API
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import <Foundation/Foundation.h>
@class PBXTargetBuildContext;
@class XCCommandLineToolSpecification;
@class XCDependencyCommand;
/*
A dependency node
*/
@interface XCDependencyNode : NSObject {
#if XCODE_VERSION == 23
char _members_XCDependencyNode[0x68 - 0x4];
#endif
}
// Accessors
- (PBXTargetBuildContext*)buildContext;
- (NSString*)name;
- (BOOL)isVirtual;
- (XCDependencyCommand*)command;
- (NSString*)shortNameForDebugging;
// Graph data
- (void)addDependedNode:(XCDependencyNode*)node;
- (void)addIncludedNode:(XCDependencyNode*)node;
- (void)removeAllIncludedNodes;
- (XCDependencyNode*)includedNodes;
- (XCDependencyNode*)includingNodes;
#if XCODE_VERSION < 22
- (XCDependencyNode*)dependedNodes;
- (XCDependencyNode*)dependingNodes;
#else
- (id)producerCommands;
- (id)consumerCommands;
- (id)producerCommand;
#endif
// Paths
- (NSString*)path;
- (NSArray*)paths;
#if XCODE_VERSION < 22
- (void)addPath:(NSString*)path;
#endif
// Included file managment
- (void)setScansFileContentsForIncludes:(BOOL)scan;
//
- (BOOL)isAlwaysOutOfDate;
- (void)setAlwaysOutOfDate:(BOOL)always;
- (BOOL)dontCareIfExists;
- (void)setDontCareIfExists:(BOOL)dontCare;
#if XCODE_VERSION >= 23
- (BOOL)dontCareAboutTimestamp;
- (void)setDontCareAboutTimestamp:(BOOL)fp8;
#endif
@end
/*
A dependency command
*/
@interface XCDependencyCommand : /*XCWorkQueueCommand*/ NSObject
{
#if XCODE_VERSION == 23
char _members_XCDependencyCommand[0x7c - 0x4];
#endif
}
// Accessors
- (PBXTargetBuildContext*)buildContext;
- (NSString*)name;
- (unsigned)commandNumber;
- (NSString*)displayString;
- (NSString*)shortNameForDebugging;
- (NSString*)description;
- (unsigned)phaseNumber;
- (void)setPhaseNumber:(unsigned)number;
- (NSArray*)inputNodes;
- (void)addInputNode:(XCDependencyNode*)node;
- (NSArray*)outputNodes;
- (void)addOutputNode:(XCDependencyNode*)node;
- (XCCommandLineToolSpecification*)toolSpecification;
- (void)setToolSpecification:(XCCommandLineToolSpecification*)spec;
- (id)commandPath;
- (void)setCommandPath:(id)path;
- (NSString*)workingDirectoryPath;
- (void)setWorkingDirectoryPath:(NSString*)path;
// Command arguments
- (void)addArgument:(NSString*)arg;
- (void)addArguments:(NSString*)args;
- (void)addArgumentsFromArray:(NSArray*)args;
// Command environment
- (void)setEnvironment:(NSDictionary*)env;
- (void)addEnvironmentValue:(NSString*)value forKey:(NSString*)key;
- (void)addEnvironmentEntriesFromDictionary:(NSDictionary*)env;
// Included file managment
- (BOOL)caresAboutIncludes;
- (void)setCaresAboutIncludes:(BOOL)care;
/*
- (id)ruleInfo;
- (void)setRuleInfo:(id)rule;
- (void)fileMayHaveChanged;
- (id)dependencyNode;
#if XCODE_VERSION >= 23
- (id)filePathsToRemove;
- (void)addFilePathToRemove:(id)fp8;
#endif
*/
@end

Просмотреть файл

@ -0,0 +1,72 @@
/*
XCPOutputParsing.h - XCode Plugin API
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
Output parsering
*/
#import <Foundation/Foundation.h>
typedef enum {
XCP_ErrorMessage = 1,
XCP_WarningMessage = 2,
} XCPMessageType;
@protocol XCBuildCommandOutputParserDelegates
- (void)parserFoundEndOfMostRecentInclusion:(id)parser;
- (void)parserFoundEndOfAllInclusions:(id)parser;
#if XCODE_VERSION < 22
- (void)parser:(id)parser foundInclusionMessage:(const char*)message forFileAtPath:(const char*)path lineNumber:(unsigned)line;
- (void)parser:(id)parser foundNoticeMessage:(const char*)message forFileAtPath:(const char*)path lineNumber:(unsigned)line;
- (void)parser:(id)parser foundLocationSpecifierMessage:(const char*)message forFileAtPath:(const char*)path lineNumber:(unsigned)line;
- (void)parser:(id)parser foundWarningMessage:(const char*)message forFileAtPath:(const char*)path lineNumber:(unsigned)line;
- (void)parser:(id)parser foundErrorMessage:(const char*)message forFileAtPath:(const char*)path lineNumber:(unsigned)line;
#else
- (void)parser:(id)parser foundMessageOfType:(XCPMessageType)type title:(const char*)message forFileAtPath:(const char*)path lineNumber:(unsigned)line;
- (void)parser:(id)parser subcommand:(id)fp12 didStartInSubslot:(unsigned int)fp16;
- (void)parser:(id)parser subcommand:(id)fp12 didEmitLineOfOutputInSubslot:(unsigned int)fp16 bytes:(const char *)fp20 length:(unsigned int)fp24;
- (void)parser:(id)parser subcommand:(id)fp12 didEmitMessageInSubslot:(unsigned int)fp16 type:(unsigned int)fp20 title:(const char *)fp24 forFileAtPath:(const char *)fp28 lineNumber:(unsigned int)fp32;
- (void)parser:(id)parser subcommand:(id)fp12 didPopMostRecentInclusionMessageInSubslot:(unsigned int)fp16;
- (void)parser:(id)parser subcommand:(id)fp12 didPopAllInclusionMessagesInSubslot:(unsigned int)fp16;
- (void)parser:(id)parser subcommand:(id)fp12 didEndInSubslot:(unsigned int)fp16 resultCode:(int)fp20;
#endif
@end
@protocol XCOutputStreams <NSObject>
- (void)writeBytes:(const char*)data length:(unsigned)length;
- (void)flush;
- (void)close;
@end
@interface XCOutputStream : NSObject <XCOutputStreams>
- (void)writeBytes:(const char*)data length:(unsigned)length;
- (void)flush;
- (void)close;
- (void)writeData:(NSData*)data;
@end
@interface XCFilterOutputStream : XCOutputStream
{
id _nextOutputStream;
}
- (id)initWithNextOutputStream:(XCOutputStream*)nextOutputStream;
- (id)init;
- (void)dealloc;
- (XCOutputStream*)nextOutputStream;
- (void)setNextOutputStream:(XCOutputStream*)nextOutputStream;
- (XCOutputStream*)lastOutputStream;
- (void)writeBytes:(const char*)data length:(unsigned)length;
- (void)flush;
- (void)close;
@end
@interface XCBuildCommandOutputParser : XCFilterOutputStream
{
id _delegate;
}
- (id)initWithNextOutputStream:(XCOutputStream*)nextOutputStream;
- (id)delegate;
- (void)setDelegate:(id)delegate;
- (void)writeBytes:(const char*)data length:(unsigned)length;
@end

258
Headers/XCPSourceParsing.h Normal file
Просмотреть файл

@ -0,0 +1,258 @@
/*
XCPSourceParsing.h - XCode Plugin API
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
Language definition and source code parsing
*/
#import <Foundation/Foundation.h>
@interface PBXLexicalRules : NSObject
{
NSMutableCharacterSet* _commentStartChars;
NSMutableCharacterSet* _endCommentStartChars;
NSMutableCharacterSet* _singleLineCommentStartChars;
NSMutableCharacterSet* _stringStartChars;
NSMutableCharacterSet* _endStringStartChars;
NSMutableCharacterSet* _charStartChars;
NSMutableCharacterSet* _endCharStartChars;
NSMutableCharacterSet* _identifierStartChars;
NSMutableCharacterSet* _identifierChars;
NSCharacterSet* _nonIdentifierCharacters;
NSMutableCharacterSet* _numericStartChars;
NSMutableCharacterSet* _numericChars;
NSMutableCharacterSet* _endOfLineChars;
NSCharacterSet* _whitespaceChars;
NSCharacterSet* _nonWhitespaceChars;
PBXSourceTokens* _keywords;
PBXSourceTokens* _altKeywords;
PBXSourceTokens* _docCommentKeywords;
PBXSourceTokens* _preprocessorKeywords;
NSMutableArray* _stringDelimiters;
NSMutableArray* _commentDelimiters;
NSMutableArray* _singleLineComment;
NSMutableArray* _characterDelimiters;
NSString* _docComment;
unsigned short _docCommentKeywordStart;
unsigned short _preprocessorKeywordStart;
unsigned short _escapeCharacter;
NSCharacterSet* _linkStartChars;
NSCharacterSet* _linkPrefixChars;
NSCharacterSet* _urlLocationChars;
NSCharacterSet* _domainNameStartChars;
NSCharacterSet* _domainNameChars;
NSString* _urlSchemeDelimiter;
NSString* _mailLocalNameDelimiter;
BOOL _caseSensitive;
BOOL _unicodeSymbols;
BOOL _indexedSymbols;
BOOL _commentsCanBeNested;
BOOL _fortranStyleComments;
}
- (id)init;
- (id)initWithDictionary:(id)fp8;
- (void)addDictionary:(id)fp8;
- (BOOL)isCommentStartChar:(unsigned short)fp8;
- (BOOL)isEndCommentStartChar:(unsigned short)fp8;
- (BOOL)isSingleLineCommentStartChar:(unsigned short)fp8;
- (BOOL)isStringStartChar:(unsigned short)fp8;
- (BOOL)isEndStringStartChar:(unsigned short)fp8;
- (BOOL)isCharStartChar:(unsigned short)fp8;
- (BOOL)isEndCharStartChar:(unsigned short)fp8;
- (BOOL)isIdentifierStartChar:(unsigned short)fp8;
- (BOOL)isIdentifierChar:(unsigned short)fp8;
- (BOOL)isNumericStartChar:(unsigned short)fp8;
- (BOOL)isNumericChar:(unsigned short)fp8;
- (BOOL)isEndOfLineChar:(unsigned short)fp8;
- (BOOL)isWhitespaceChar:(unsigned short)fp8;
- (BOOL)isLinkStartChar:(unsigned short)fp8;
- (BOOL)isDomainNameStartChar:(unsigned short)fp8;
- (id)nonIdentifierCharacterSet;
- (id)nonWhitespaceCharacterSet;
- (BOOL)isKeyword:(id)fp8;
- (BOOL)isAltKeyword:(id)fp8;
- (BOOL)isDocCommentKeyword:(id)fp8;
- (BOOL)isPreprocessorKeyword:(id)fp8;
- (id)keywords;
- (id)altKeywords;
- (id)docCommentKeywords;
- (id)preprocessorKeywords;
- (id)stringDelimiters;
- (id)commentDelimiters;
- (id)singleLineComment;
- (id)characterDelimiters;
- (id)docComment;
- (unsigned short)escapeCharacter;
- (unsigned short)preprocessorKeywordStart;
- (unsigned short)docCommentKeywordStart;
- (id)urlSchemeDelimiter;
- (id)mailLocalNameDelimiter;
- (id)linkPrefixChars;
- (id)urlLocationChars;
- (id)domainNameChars;
- (BOOL)caseSensitive;
- (BOOL)unicodeSymbols;
- (BOOL)indexedSymbols;
- (BOOL)commentsCanBeNested;
- (BOOL)fortranStyleComments;
- (int)tokenForString:(id)fp8;
- (BOOL)isNumber:(id)fp8 withRange:(NSRange*)fp12;
@end
@interface PBXSourceLexer : NSObject
{
PBXLexicalRules* _rules;
NSRange _tokenRange;
NSString* _tokenString;
id _delegate;
BOOL _ignoreNewLines;
BOOL fortranStyleComments;
char* characterMap;
XCAttributeRun* _tokenRun;
}
- (id)initWithLexicalRules:(id)fp8;
- (void)dealloc;
- (void)finalize;
- (void)setDelegate:(id)fp8;
- (void)setString:(id)fp8 range:(NSRange)fp12;
- (void)scanSubRange:(NSRange)fp8 startingInState:(int)fp16;
- (id)rules;
- (void)setIgnoreNewLines:(BOOL)fp8;
- (void)skipWhitespace;
- (unsigned short)nextCharWithoutSkippingWhitespace;
- (unsigned short)nextChar;
- (unsigned short)peekChar;
- (unsigned short)peekCharWithoutSkippingWhitespace;
- (unsigned)peekCharacterInSet:(id)fp8;
- (unsigned)curLocation;
- (void)setLocation:(unsigned int)fp8;
- (void)incLocation;
- (void)decLocation;
- (unsigned)length;
- (void)parseDocCommentFromLoc:(unsigned)fp8 matchIndex:(int)fp12;
- (void)scanForLinksInRange:(NSRange)fp8;
- (void)skipMultiLineCommentFromLoc:(unsigned)fp8 matchIndex:(int)fp12;
- (void)buildCharacterMap;
- (int)nextToken;
- (int)nextToken:(BOOL)fp8;
- (void)stringWasEdited:(NSRange*)fp8 replacementLength:(int)fp12;
- (int)cachedTokenTypeAtLocation:(unsigned)fp8 tokenRange:(NSRange*)fp12;
- (int)peekToken;
- (id)tokenString;
- (void)setTokenStringToRange:(NSRange)fp8;
- (id)stringForRange:(NSRange)fp8;
- (NSRange)tokenRange;
- (unsigned short)skipToCharacter:(unsigned short)fp8 orCharacter:(unsigned short)fp12 withEscape:(BOOL)fp16;
- (void)skipToCharacter:(unsigned short)fp8 withEscape:(BOOL)fp12;
- (void)skipToString:(id)fp8 withEscape:(BOOL)fp12;
- (void)skipToEndOfLineWithEscape:(BOOL)fp8;
- (BOOL)inputMatchesString:(id)fp8;
- (BOOL)inputIsInSet:(id)fp8;
- (void)skipToEndDelimeter:(unsigned short)fp8 withStart:(unsigned short)fp12;
@end
@interface PBXSourceLexer (PBXPrivate)
- (void)gotCharacterForRange:(NSRange)range;
- (void)gotStringForRange:(NSRange)range;
- (void)gotNumberForRange:(NSRange)range;
- (void)gotCommentForRange:(NSRange)range;
- (void)gotMultilineCommentForRange:(NSRange)range;
- (void)gotDocCommentForRange:(NSRange)range;
- (void)gotDocCommentKeywordForRange:(NSRange)range;
- (void)gotKeywordForRange:(NSRange)range;
- (void)gotAltKeywordForRange:(NSRange)range;
- (void)gotIdentifierForRange:(NSRange)range;
- (void)gotPreprocessorForRange:(NSRange)range;
- (void)gotURLForRange:(NSRange)range;
- (void)gotMailAddressForRange:(NSRange)range;
@end
@interface PBXSourceScanner : NSObject
{
PBXSourceLexer* _lexer;
}
- (id)initWithLanguageSpecification:(id)fp8;
- (void)dealloc;
- (void)finalize;
- (id)lexer;
- (void)initSourceLexerForSpecification:(id)fp8;
- (void)initInterestingSymbols;
- (id)parseString:(id)fp8;
- (id)parse;
@end
@protocol PBXScannerItem <NSObject>
- (id)name;
- (id)nameWithIndent;
- (int)type;
- (int)compareWithScannerItem:(id)fp8;
@end
@interface PBXSourceScannerItem : NSObject <PBXScannerItem>
{
NSString* name;
NSMutableArray* children;
int type;
PBXSourceScannerItem* parent;
NSRange nameRange;
NSRange range;
int nestingLevel;
int indentLevel;
}
- (id)initWithName:(id)fp8 type:(int)fp12;
- (void)dealloc;
- (void)finalize;
- (id)description;
- (id)name;
- (id)nameWithIndent;
- (void)setName:(id)fp8;
- (void)addChild:(id)fp8;
- (id)childAtIndex:(int)fp8;
- (int)numberOfChildren;
- (int)type;
- (void)setType:(int)fp8;
- (BOOL)isDeclaration;
- (id)parent;
- (void)setParent:(id)fp8;
- (NSRange)nameRange;
- (void)setNameRange:(NSRange)fp8;
- (NSRange)range;
- (void)setRange:(NSRange)fp8;
- (int)nestingLevel;
- (void)setNestingLevel:(int)fp8;
- (int)indentLevel;
- (void)setIndentLevel:(int)fp8;
- (int)compareWithScannerItem:(id)fp8;
@end
@interface PBXSourceTokens : NSObject
{
NSMutableSet* _tokens;
BOOL _caseSensitive;
}
+ (int)_tokenForString:(id)fp8;
+ (int)addTokenForString:(id)fp8;
- (id)initWithArrayOfStrings:(id)fp8 caseSensitive:(BOOL)fp12;
- (void)dealloc;
- (void)finalize;
- (void)addArrayOfStrings:(id)fp8;
- (BOOL)containsToken:(id)fp8;
- (int)tokenForString:(id)fp8;
- (id)allTokens;
@end
/*
@interface PBXCSourceScanner : PBXSourceScanner
@interface PBXNQCSourceScanner : PBXCSourceScanner
@interface PBXObjCPPSourceScanner : PBXCSourceScanner
@interface PBXCPPSourceScanner : PBXCSourceScanner
@interface PBXObjCSourceScanner : PBXCSourceScanner
@interface PBXJamSourceScanner : PBXSourceScanner
@interface PBXJavaScriptSourceScanner : PBXSourceScanner
@interface PBXJavaSourceScanner : PBXSourceScanner
@interface PBXLabelSourceScanner : PBXSourceScanner
@interface PBXPerlSourceScanner : PBXSourceScanner
@interface PBXPythonSourceScanner : PBXSourceScanner
@interface PBXRubySourceScanner : PBXSourceScanner
*/

514
Headers/XCPSpecifications.h Normal file
Просмотреть файл

@ -0,0 +1,514 @@
/*
XCPSpecifications.h - XCode Plugin API
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import <Foundation/Foundation.h>
@class PBXTargetBuildContext;
@class PBXFileType;
@class PBXFileTypePart;
@class PBXLexicalRules;
@class PBXSourceLexer;
@class PBXSourceScanner;
/*
Generic specification object.
Specification are automatically created by Xcode. However Xcode create a proxy version in
order to load the sepcification only when first used : you must call -loadedSpecification to
retreive the loaded specification object.
*/
@interface XCSpecification : NSObject
{
NSString* _identifier;
XCSpecification* _superSpecification;
#if XCODE_VERSION < 23
NSMutableDictionary* _properties;
#else
NSDictionary* _properties;
#endif
NSDictionary* _localizationDictionary;
NSBundle* _bundle;
}
/* Informations about this specification (class: XCSpecification, type: @"Generic",
path extensions: .pbsomethingspec...) */
+ (Class)specificationTypeBaseClass;
+ (NSString*)specificationType;
+ (NSString*)localizedSpecificationTypeName;
+ (NSSet*)specificationTypePathExtensions;
// Get specifications of this type
+ (NSDictionary*)specificationRegistry; // keys are identifiers
+ (XCSpecification*)specificationForIdentifier:(NSString*)identifier;
+ (XCSpecification*)specificationsForIdentifiers:(NSArray*)identifiers;
+ (NSArray*)registeredSpecifications;
+ (NSArray*)registeredBaseSpecifications;
// Get specifications of all types
+ (NSArray*)allRegisteredSpecifications;
// Loading
- (XCSpecification*)loadedSpecification;
- (BOOL)isNotYetLoadedSpecificationProxy;
- (BOOL)isMissingSpecificationProxy;
// Accessors
- (XCSpecification*)superSpecification;
- (NSArray*)subSpecifications;
- (BOOL)isKindOfSpecification:(XCSpecification*)specification;
- (NSString*)identifier;
- (NSString*)name;
- (NSString*)description;
- (NSString*)localizedDescription;
- (NSBundle*)bundle; // plugin bundle defining this specification
- (BOOL)isAbstract;
- (NSDictionary*)properties;
- (NSDictionary*)localizationDictionary;
// Property list content
- (id)objectForKey:(NSString*)key;
- (NSString*)stringForKey:(NSString*)key;
- (NSArray*)arrayForKey:(NSString*)key;
- (NSDictionary*)dictionaryForKey:(NSString*)key;
- (NSData*)dataForKey:(NSString*)key;
- (int)integerForKey:(NSString*)key;
- (long long)longLongForKey:(NSString*)key;
- (float)floatForKey:(NSString*)key;
- (double)doubleForKey:(NSString*)key;
- (BOOL)boolForKey:(NSString*)key;
- (BOOL)boolForKeyFromProxy:(NSString*)key;
#if XCODE_VERSION >= 23
- (id)arrayOrStringForKey:(NSString*)key;
#endif
// Others (you don't need them)
+ (void)registerSpecificationTypeBaseClass:(Class)class;
+ (void)registerSpecificationOrProxy:(id)spec;
+ (id)registerSpecificationProxyFromPropertyList:(id)plist;
+ (id)registerSpecificationProxiesFromPropertyListsInDirectory:(id)fp8 recursively:(BOOL)fp12 inBundle:(id)fp16;
+ (id)registerSpecificationProxiesFromPropertyListsInDirectory:(id)fp8 recursively:(BOOL)fp12;
- (id)initWithPropertyListDictionary:(id)plist;
- (id)initAsMissingSpecificationProxyWithIdentifier:(id)fp8 name:(id)fp12 description:(id)fp16;
- (int)identifierCompare:(id)fp8;
- (int)nameCompare:(id)fp8;
@end
/*
XCSpecification using build settings
*/
@interface XCPropertyDomainSpecification : XCSpecification
{
NSDictionary* _buildOptions;
NSArray* _orderedBuildOptions;
NSArray* _optionNamesForCommandLine;
NSArray* _commonBuildOptions;
NSArray* _buildOptionCategories;
XCPropertyDomainSpecification* _specForUserInterface;
NSDictionary* _flattenedBuildOptions;
NSArray* _flattenedOrderedBuildOptions;
NSArray* _flattenedCommonBuildOptions;
NSArray* _flattenedOptionNamesForCommandLine;
NSArray* _flattenedOptionCategories;
NSDictionary* _flattenedDefaultValues;
}
// See XCSpecification
- (id)initWithPropertyListDictionary:(id)plist;
// Accessors
- (NSDictionary*)buildOptions; // "Options" key, as a dictionary : option name => option
#if XCODE_VERSION == 22
- (id)buildOptionForKey:(NSString*)key;
#elif XCODE_VERSION >= 23
- (id)buildOptionNamed:(NSString*)name;
#endif
- (NSArray*)orderedBuildOptions; // Like buildOptions, but as an array
- (NSArray*)commonBuildOptions; // Like orderedBuildOptions but only items whose "CommonOption" key is YES
- (NSArray*)namesOfBuildOptionsForCommandLine; // names of all options
- (NSArray*)namesOfFlattenedOptionsForCommandLine;
- (NSDictionary*)defaultValuesForAllOptions; // dictionary : option name => default value
- (id)buildOptionCategories; // "OptionCategories" key
- (NSArray*)flattenedOptionCategories;
- (XCPropertyDomainSpecification*)specificationToShowInUserInterface; // show options for this command into the GUI group of the returned command
- (NSArray*)commandLineForAutogeneratedOptionsForKey:(NSString*)key inTargetBuildContext:(PBXTargetBuildContext*)context;
@end
/*
Command line tool specification
*/
@interface XCCommandLineToolSpecification : XCPropertyDomainSpecification
{
#if XCODE_VERSION >= 23
Class _commandInvocationClass;
#endif
NSArray* _outputParserClassesOrRules;
}
- (id)initWithPropertyListDictionary:(id)plist;
+ (id)unionedDefaultValuesForAllPropertiesForAllTools;
// Accessors
- (NSString*)path; // ExecPath key
#if XCODE_VERSION >= 23
- (Class)commandInvocationClass;
#endif
- (id)commandOutputParserClassesOrParseRules;
// Auto computed argument array
- (NSArray*)commandLineForAutogeneratedOptionsInTargetBuildContext:(PBXTargetBuildContext*)context;
- (BOOL)areOutputFilesAffectedByCommandLineArgument:(id)fp8;
- (BOOL)areOutputFilesAffectedByEnvironmentVariable:(id)fp8;
- (id)instantiatedCommandOutputParserWithDelegate:(id)fp8;
#if XCODE_VERSION < 22
- (void)createInvocationInContext:(id)fp8;
#else
- (id)createCommandsInBuildContext:(id)fp8;
- (unsigned)concurrentExecutionCountInTargetBuildContext:(id)fp8;
#endif
#if XCODE_VERSION >= 23
- (id)hashStringForCommandLineComponents:(id)fp8 inputFilePaths:(id)fp12 inTargetBuildContext:(id)fp16;
#endif
@end
/*
A Compiler definition (.pbcompspec)
*/
@interface XCCompilerSpecification : XCCommandLineToolSpecification
{
NSMutableArray* _inputFileTypes;
}
+ (id)displaySpecifications;
- (id)initWithPropertyListDictionary:(id)plist;
// Accesors
- (id)inputFileTypes; // "FileTypes" key
- (BOOL)acceptsInputFileType:(id)type;
- (BOOL)isAbstract; // "Abstract" key
- (NSString*)builtinJambaseRuleName; // "BuiltinJambaseRuleName" key
#if XCODE_VERSION < 22
- (NSString*)jamfileCodeString;
#endif
- (NSString*)defaultOutputDirectory;
// Compiler tasks
#if XCODE_VERSION < 23
- (XCCompilerSpecification*)effectiveCompilerSpecificationForFileNamed:(NSString*)file inTargetBuildContext:(PBXTargetBuildContext*)context;
- (NSArray*)computeDependenciesForFilePaths:(NSArray*)paths outputDirectory:(NSString*)outputDir inTargetBuildContext:(PBXTargetBuildContext*)context;
#endif
- (NSString*)uniqueOutputBaseNameForInputFilePath:(NSString*)path inTargetBuildContext:(PBXTargetBuildContext*)context;
- (NSArray*)outputFilesForInputFilePath:(NSString*)path inTargetBuildContext:(PBXTargetBuildContext*)context;
#if XCODE_VERSION >= 22
- (PBXFileType*)adjustedFileTypeForInputFileAtPath:(NSString*)path originalFileType:(PBXFileType*)type inTargetBuildContext:(PBXTargetBuildContext*)context;
#endif
#if XCODE_VERSION >= 23
- (XCCompilerSpecification*)effectiveCompilerSpecificationInPropertyExpansionContext:(id)context;
#endif
#if XCODE_VERSION < 22
@end
@interface XCCompilerSpecification (PublicAPI)
#endif
- (NSString*)executablePath;
- (NSString*)defaultOutputDirectory;
- (NSArray*)computeDependenciesForInputFile:(NSString*)path ofType:(PBXFileType*)type variant:(NSString*)variant architecture:(NSString*)arch outputDirectory:(NSString*)outputDir inTargetBuildContext:(PBXTargetBuildContext*)context;
- (NSArray*)computeDependenciesForFilePath:(NSString*)path ofType:(PBXFileType*)type outputDirectory:(NSString*)outputDir inTargetBuildContext:(PBXTargetBuildContext*)context;
#if XCODE_VERSION < 23
- (XCCompilerSpecification*)effectiveCompilerSpecificationForFileNamed:(NSString*)file ofType:(PBXFileType*)type inTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)appendAdditionalLinkerArguments:(NSArray*)args forBuildOption:(NSString*)option inTargetBuildContext:(PBXTargetBuildContext*)context;
#endif
@end
@interface XCCompilerSpecification (IndexingSupport)
- (id)builtinQuoteSearchPathsInBuildContext:(id)fp8 forLanguageDialect:(id)fp12;
- (id)builtinBracketSearchPathsInBuildContext:(id)fp8 forLanguageDialect:(id)fp12;
- (id)builtinFrameworkSearchPathsInBuildContext:(id)fp8 forLanguageDialect:(id)fp12;
- (id)builtinMacroDefinitionsInBuildContext:(id)fp8 forLanguageDialect:(id)fp12;
@end
/*
A Linker definition (.pblinkspec)
*/
@interface XCLinkerSpecification : XCCommandLineToolSpecification
{
NSMutableArray* _inputFileTypes;
}
- (id)initWithPropertyListDictionary:(id)plist;
+ (id)linkerForFileNamed:(id)file;
// Accesors
- (NSArray*)architectures;
- (NSArray*)inputFileTypes;
- (BOOL)acceptsFileNamed:(NSString*)name;
- (NSString*)executablePathInTargetBuildContext:(PBXTargetBuildContext*)context;
- (NSArray*)computeDependenciesForFilePaths:(NSArray*)paths outputPath:(NSString*)output inTargetBuildContext:(PBXTargetBuildContext*)context;
@end
/*
A file description (.pbfilespec)
*/
@interface PBXFileType : XCSpecification
{
NSArray* _extensions;
}
- (id)initWithPropertyListDictionary:(id)plist;
// Generic types
+ (PBXFileType*)genericFileType;
+ (PBXFileType*)textFileType;
+ (PBXFileType*)genericFolderType;
+ (PBXFileType*)wrapperFolderType;
// Compute file type from file informations
+ (PBXFileType*)fileTypeForPath:(NSString*)path;
+ (PBXFileType*)fileTypeForPath:(NSString*)path getExtraFileProperties:(id*)props;
+ (PBXFileType*)fileTypeForFileName:(NSString*)name;
#if XCODE_VERSION < 22
+ (PBXFileType*)fileTypeForFileName:(NSString*)name posixPermissions:(unsigned)perms hfsTypeCode:(unsigned)type hfsCreatorCode:(unsigned)creator;
#else
+ (PBXFileType*)fileTypeForFileName:(NSString*)name posixPermissions:(unsigned)perms hfsTypeCode:(unsigned long)type hfsCreatorCode:(unsigned long)creator;
#endif
+ (PBXFileType*)guessFileTypeForGenericFileAtPath:(NSString*)path withFileAttributes:(id)attr getExtraFileProperties:(id*)props;
+ (PBXFileType*)bestFileTypeForRepresentingFileAtPath:(NSString*)path withFileAttributes:(id)attr withLessSpecificFileType:(PBXFileType*)type getExtraFileProperties:(id*)props;
// Accessors
- (id)extensions;
- (id)hfsTypeCodes;
- (BOOL)isBundle;
- (BOOL)isApplication;
- (BOOL)isLibrary;
- (BOOL)isDynamicLibrary;
- (BOOL)isStaticLibrary;
- (BOOL)isFramework;
- (BOOL)isStaticFramework;
- (BOOL)isProjectWrapper;
- (BOOL)isTargetWrapper;
- (BOOL)isExecutable;
- (BOOL)isExecutableWithGUI;
- (BOOL)isPlainFile;
- (BOOL)isTextFile;
- (BOOL)isSourceCode;
- (BOOL)isDocumentation;
- (BOOL)isFolder;
- (BOOL)isNonWrapperFolder;
- (BOOL)isWrapperFolder;
- (BOOL)includeInIndex;
- (BOOL)isTransparent;
- (BOOL)canSetIncludeInIndex;
#if XCODE_VERSION >= 22
- (BOOL)isScannedForIncludes;
#endif
- (NSString*)languageSpecificationIdentifier;
- (BOOL)requiresHardTabs;
- (NSString*)description;
- (id)extraPropertyNames;
- (PBXFileTypePart*)subpathForWrapperPart:(NSString*)part ofPath:(NSString*)path withExtraFileProperties:(id)props;
- (PBXFileTypePart*)fileTypePartForIdentifier:(NSString*)identifier;
@end
/*
Product type definition
*/
@protocol XCProductPartOwners
- (id)productPartForIdentifier:(id)fp8;
- (id)subpartsForProductPart:(id)fp8;
@end
@interface XCProductTypeSpecification : XCSpecification <XCProductPartOwners>
{
NSDictionary* _defaultBuildSettings;
NSDictionary* _flattenedDefaultBuildSettings;
NSSet* _allowedBuildPhaseClasses;
NSArray* _packageTypes;
NSArray* _productParts;
}
- (id)initWithPropertyListDictionary:(id)plist;
// Accessors
- (NSString*)defaultTargetName;
- (id)defaultBuildSettings;
- (id)allowedBuildPhaseClasses;
- (id)packageTypes;
- (id)defaultPackageType;
- (id)productParts;
- (id)productPartForIdentifier:(NSString*)identifier;
- (id)subpartsForProductPart:(NSString*)part;
- (BOOL)hasInfoPlist;
- (NSString*)iconNamePrefix;
// ?
- (void)computeDependenciesInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)initializeTemporaryBuildSettingsInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)initializeBuildSettingsInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)computeProductDependenciesInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)initializeSearchPathBuildSettingsInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)alterBuildSettingsToUseSDKPackageInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)defineAuxiliaryFilesInTargetBuildContext:(PBXTargetBuildContext*)context;
#if XCODE_VERSION < 22
- (void)computePostprocessingDependenciesInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)moveAsideRawLinkedProductInTargetBuildContext:(PBXTargetBuildContext*)context;
#endif
#if XCODE_VERSION >= 22
- (void)copyAsideProductInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)compileAuxiliaryFilesForVariant:(NSString*)variant architecture:(NSString*)arch inTargetBuildContext:(PBXTargetBuildContext*)context;
- (BOOL)shouldStripSymbolsOfLinkedProductInTargetBuildContext:(PBXTargetBuildContext*)context separately:(char*)fp12;
#endif
#if XCODE_VERSION >= 23
- (void)generateDSYMFileForLinkedProductInTargetBuildContext:(PBXTargetBuildContext*)context;
- (id)createUniversalBinaryFromThinBinaries:(NSArray*)binaries inTargetBuildContext:(PBXTargetBuildContext*)context;
#endif
- (void)editSymbolsOfLinkedProductInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)ranlibLinkedProductInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)separatelyStripSymbolsOfLinkedProductInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)changePermissionsOnProductInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)computeSymlinkDependenciesInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)computeProductTouchActionInTargetBuildContext:(PBXTargetBuildContext*)context;
- (XCLinkerSpecification*)linkerSpecificationForObjectFilesInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)addBaseLinkerFlagsInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)addWarningLinkerFlagsInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)addInstallNameLinkerFlagsInTargetBuildContext:(PBXTargetBuildContext*)context;
- (void)addStripLinkerFlagsInTargetBuildContext:(PBXTargetBuildContext*)context;
@end
/*
Language specification
*/
@interface PBXLanguageSpecification : XCSpecification
{
NSDictionary* _syntaxColoringRules;
NSDictionary* _indentationRules;
NSString* _scannerClassName;
Class _scannerClass;
NSString* _lexerClassName;
Class _lexerClass;
PBXLexicalRules* _lexRules;
BOOL _supportsSyntaxAwareIndenting;
}
- (id)initWithPropertyListDictionary:(id)dict;
- (NSDictionary*)syntaxColoringRules;
- (NSDictionary*)indentationRules;
- (BOOL)supportsSyntaxAwareIndenting;
- (PBXSourceScanner*)sourceScanner;
- (PBXSourceLexer*)sourceLexer;
- (PBXLexicalRules*)loadBaseLexicalRules;
- (PBXLexicalRules*)lexicalRules;
@end
/**/
@interface PBXPackageTypeSpecification : XCSpecification
{
NSDictionary* _defaultBuildSettings;
NSDictionary* _flattenedDefaultBuildSettings;
NSString* _productReferenceFileTypeIdentifier;
PBXFileType* _productReferenceFileType;
NSString* _productReferenceName;
BOOL _productReferenceIsLaunchable;
}
+ (id)wrapperSubpathForWrapperPart:(int)part;
- (id)initWithPropertyListDictionary:(id)plist;
- (id)defaultBuildSettings;
- (id)productReferenceFileType;
- (id)productReferenceName;
- (BOOL)productReferenceIsLaunchable;
@end
@interface PBXRuntimeSystemSpecification : XCSpecification
{
}
+ (PBXRuntimeSystemSpecification*)nativeRuntimeSystemSpecificaton;
- (id)infoPlistKey;
- (id)specificResourcePath;
@end
@interface PBXBuildSettingsPaneSpecification : XCSpecification
{
NSString* _settingsDomainPath;
NSString* _paneClassName;
NSString* _paneFollows;
NSArray* _widgets;
}
+ (id)registeredSpecificationsSorted;
- (id)initWithPropertyListDictionary:(id)plist;
- (id)name;
- (id)settingsDomainPath;
- (id)paneClassName;
- (Class)paneClass;
- (id)paneFollows;
- (id)widgets;
@end
@interface PBXSCMSpecification : XCSpecification
{
NSString* _classBaseName;
BOOL _canAddDirectories;
BOOL _canRenameFiles;
}
- (id)initWithPropertyListDictionary:(id)plist;
- (NSString*)classBaseName;
- (BOOL)canAddDirectories;
- (BOOL)canRenameFiles;
@end
@interface XCArchitectureSpecification : XCSpecification
{
unsigned _byteOrder;
}
- (id)initWithPropertyListDictionary:(id)plist;
- (unsigned)byteOrder;
@end
@interface XCPlatformSpecification : XCSpecification
{
NSArray* _architectures;
}
- (id)initWithPropertyListDictionary:(id)plist;
- (NSArray*)architectures;
@end
/*
@interface PBXPlistFileType : PBXFileType
@interface PBXHTMLFileType : PBXFileType
@interface PBXMachOFileType : PBXFileType
@interface PBXCFBundleWrapperFileType : PBXFileType
@interface PBXFrameworkWrapperFileType : PBXCFBundleWrapperFileType
@interface XCStaticFrameworkWrapperFileType : PBXFrameworkWrapperFileType
@interface PBXApplicationWrapperFileType : PBXCFBundleWrapperFileType
@interface XCBuildSystemSpecification : XCPropertyDomainSpecification
@interface XCBuildPhaseSpecification : XCPropertyDomainSpecification
@interface XCCompilerSpecificationCpp : XCCompilerSpecification
@interface PBXCompilerSpecificationGcc : XCCompilerSpecification
@interface PBXCompilerSpecificationGcc2_95_2 : PBXCompilerSpecificationGcc
@interface PBXCompilerSpecificationGcc3_1 : PBXCompilerSpecificationGcc2_95_2
@interface PBXCompilerSpecificationGcc3_3 : PBXCompilerSpecificationGcc3_1
@interface PBXCompilerSpecificationGccPlusPlus : XCCompilerSpecification
@interface PBXCompilerSpecificationPbxCp : XCCompilerSpecification
@interface PBXCompilerSpecificationMig : XCCompilerSpecification
@interface PBXCompilerSpecificationRez : XCCompilerSpecification
@interface PBXCompilerSpecificationLex : XCCompilerSpecification
@interface PBXCompilerSpecificationYacc : XCCompilerSpecification
@interface PBXLinkerSpecificationLd : XCLinkerSpecification
@interface PBXLinkerSpecificationZeroLink : PBXLinkerSpecificationLd
@interface PBXLinkerSpecificationLibtool : XCLinkerSpecification
@interface PBXLinkerSpecificationResMerger : XCLinkerSpecification
@interface PBXBundleProductType : XCProductTypeSpecification
@interface XCKernelExtensionProductType : PBXBundleProductType
@interface PBXApplicationProductType : PBXBundleProductType
@interface PBXFrameworkProductType : PBXBundleProductType
@interface XCStaticFrameworkProductType : PBXFrameworkProductType
@interface XCStandaloneExecutableProductType : XCProductTypeSpecification
@interface PBXToolProductType : XCStandaloneExecutableProductType
@interface PBXDynamicLibraryProductType : XCStandaloneExecutableProductType
@interface PBXStaticLibraryProductType : XCStandaloneExecutableProductType
@interface XCFolderProductType : XCProductTypeSpecification
@interface XCInfoPlistProductType : XCProductTypeSpecification
@interface XCMachOExecutableProductType : XCProductTypeSpecification
@interface XCSymLinkProductType : XCProductTypeSpecification
@interface XCWrapperProductType : XCProductTypeSpecification
*/

231
Headers/XCPSupport.h Normal file
Просмотреть файл

@ -0,0 +1,231 @@
/*
XCPSupport.h - XCode Plugin API
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
Development Tool Support Framework.
*/
#import <Foundation/Foundation.h>
/*
Regular expression search.
Does not support more than 20 subexpressions.
Only return informations about the first occurrence.
*/
@interface TSRegularExpression : NSObject <NSCopying, NSCoding>
{
NSString* _expressionString;
NSString* _lastMatch;
NSRange _lastSubexpressionRanges[20];
void* _compiledExpression;
BOOL _ignoreCase;
}
+ (BOOL)validExpressionString:(NSString*)regex;
+ (id)regularExpressionWithString:(NSString*)regex ignoreCase:(BOOL)ignore;
+ (id)regularExpressionWithString:(NSString*)regex;
- (id)initWithExpressionString:(NSString*)regex ignoreCase:(BOOL)ignore;
- (id)initWithExpressionString:(NSString*)regex;
- (NSString*)expressionString;
- (BOOL)matchesString:(NSString*)string;
- (NSRange)rangeForSubexpressionAtIndex:(unsigned)fp8 inString:(NSString*)string;
- (NSString*)substringForSubexpressionAtIndex:(unsigned)fp8 inString:(NSString*)string;
- (NSArray*)subexpressionsForString:(NSString*)string;
@end
/**/
@interface NSString (TSStringAdditions)
+ (unsigned)TSDefaultCStringEncoding;
+ (void)setTSDefaultCStringEncoding:(unsigned)fp8;
+ (BOOL)isFileUnicode:(id)fp8 fileData:(id)fp12;
+ (BOOL)isFileUTF8WithBOM:(id)fp8 fileData:(id)fp12;
- (id)arrayByParsingAsCommandLineArguments;
- (id)arrayByParsingAsStringList;
- (void)testMacroExpansion;
- (id)namesOfExpandableVariables;
- (id)TS_stringByExpandingVariables:(id)fp8 inRange:(NSRange)fp12 options:(unsigned)fp20;
- (id)TS_stringByExpandingVariables:(id)fp8 options:(unsigned)fp12;
- (id)TS_stringByExpandingEnvironmentVariables;
- (id)stringByDeletingLeadingWhitespace;
- (id)stringByDeletingTrailingWhitespace;
- (id)stringByDeletingAllWhitespace;
- (id)stringByAbbreviatingWithEllipsisInMiddleToLength:(unsigned)fp8;
- (BOOL)isLegalCIdentifier;
- (id)stringByManglingToLegalCIdentifier;
- (id)stringByEscapingForXML;
- (id)stringByUnescapingFromXML;
- (id)initWithContentsOfFile:(id)fp8 defaultCStringEncoding:(unsigned)fp12 getStringEncoding:(unsigned*)fp16;
- (id)initWithUnicodeOrMacOSRomanContentsOfFile:(id)fp8 getStringEncoding:(unsigned*)fp12;
- (id)initWithPotentiallyMalformedUTF8Bytes:(const char*)fp8 length:(unsigned)fp12 stopAtTrailingIncompleteUTF8Sequence:(BOOL)fp16 getUsedLength:(unsigned*)fp20 getNumberOfMalformedSequences:(unsigned*)fp24;
- (void)getLineStartOffsets:(unsigned**)fp8 count:(unsigned*)fp12;
- (NSRange)rangeNotHavingLiteralPrefixAndSuffixInCommonWithRange:(NSRange)fp8 ofString:(id)fp16;
- (BOOL)writeUsingFileSystemEncodingToFile:(id)fp8 atomically:(BOOL)fp12;
@end
@interface NSMutableString (PBXTSStringAdditions)
- (void)appendSubstringWithRange:(NSRange)range ofString:(NSString*)string;
- (void)deleteCharactersFromSet:(NSCharacterSet*)set atIndex:(unsigned)index options:(unsigned)options;
- (void)deleteLeadingWhitespace;
- (void)deleteAllWhitespace;
- (void)deleteTrailingWhitespace;
- (void)deleteAllCharactersInSet:(NSCharacterSet*)set;
@end
@interface NSCharacterSet (TSStringAdditions)
+ (id)isspaceCharacterSet;
@end
@interface NSUserDefaults (TSUserDefaultsExtra)
- (BOOL)boolForKey:(NSString*)key withDefaultValue:(BOOL)defaultValue;
@end
@interface NSInvocation (TSFoundationExtra)
+ (id)invocationWithTarget:(id)target selector:(SEL)select object:(id)object;
@end
@interface NSMutableAttributedString (TSFoundationExtra)
- (void)appendString:(id)string attributes:(id)attributes;
@end
@interface NSDictionary (TSFoundationExtra)
- (NSDictionary*)dictionaryByAddingEntriesFromDictionary:(NSDictionary*)dict;
- (NSDictionary*)dictionaryByRecursivelyElidingEmptyStringValuesForKeysInSet:(id)set;
- (NSString*)stringByConcatenatingEntriesAsLinesOfSimpleAssignments;
- (NSDictionary*)inverseDictionary;
@end
@interface NSMutableArray (TSFoundationExtra)
- (void)addObjectIfAbsent:(id)object;
- (void)addObjectsFromArrayIfAbsent:(id)object;
- (void)correctlyRemoveObjectsFromIndices:(unsigned*)indices numIndices:(unsigned)num;
- (void)moveObjectsFromIndices:(unsigned*)indices numIndices:(unsigned)num toIndex:(unsigned)index;
@end
@interface NSArray (TSFoundationExtra)
+ (NSArray*)arrayWithArraysOrObjects:(id)arg;
- (NSArray*)initWithArraysOrObjects:(id)arg;
- (void)makeObjectsPerformSelector:(SEL)selector withObject:(id)object withObject:(id)obj2;
- (void)processObjectsUsingObject:(id)object selector:(SEL)selector withObject:(id)obj2 withObject:(id)obj3 inReverseOrder:(BOOL)reverse;
- (void)processObjectsUsingObject:(id)object selector:(SEL)selector withObject:(id)obj2 withObject:(id)obj3;
- (void)processObjectsUsingObject:(id)object selector:(SEL)selector withObject:(id)obj2 inReverseOrder:(BOOL)reverse;
- (void)processObjectsUsingObject:(id)object selector:(SEL)selector withObject:(id)obj2;
- (void)processObjectsUsingObject:(id)object selector:(SEL)selector inReverseOrder:(BOOL)reverse;
- (void)processObjectsUsingObject:(id)object selector:(SEL)selector;
- (NSString*)stringByConcatenatingObjectsAsCommandLineArguments;
- (NSString*)stringByConcatenatingObjectsAsStringList;
- (NSArray*)arrayByExtractingCommandLineArgumentsHavingPrefix:(NSString*)prefix;
- (NSArray*)arrayByPrefixingObjectsWithString:(NSString*)prefix;
- (NSArray*)arrayByMakingRelativePathsAbsoluteUsingBasePath:(NSString*)path;
- (NSString*)PBX_longestCommonPrefixForStrings;
- (NSArray*)arrayByRecursivelyElidingEmptyStringValuesForDictionaryKeysInSet:(id)set;
- (NSArray*)arrayByMakingObjectsPerformSelector:(SEL)selector withObject:(id)object;
- (NSArray*)arrayByMakingObjectsPerformSelector:(SEL)selector;
- (BOOL)areAllObjectsKindOfClass:(Class)class;
- (NSArray*)subarrayToIndex:(unsigned)index;
- (NSArray*)subarrayFromIndex:(unsigned)index;
- (id)firstObject;
- (id)secondObject;
- (id)thirdObject;
- (id)fourthObject;
- (id)preantepenultimateObject;
- (id)antepenultimateObject;
- (id)penultimateObject;
@end
@interface NSString (TSFoundationExtra)
+ (NSString*)stringWithHexRepresentationOfBytes:(const void*)bytes length:(unsigned)length;
+ (NSString*)stringWithBase64RepresentationOfBytes:(const void*)bytes length:(unsigned)length;
+ (NSString*)stringWithUnicodeInvisibleSeparatorCharacter;
+ (NSString*)stringWithUnicodeInvisibleTimesCharacter;
+ (NSString*)stringWithHexadecimalRepresentationOfUniqueIdentifier;
+ (NSString*)stringWithBase64RepresentationOfUniqueIdentifier;
- (BOOL)boolValue;
- (NSString*)stringByRemovingLeadingAndTrailingCharactersFromSet:(NSCharacterSet*)set;
- (NSString*)stringByRemovingLeadingAndTrailingWhitespace;
- (NSString*)stringByRemovingLeadingAndTrailingWhitespaceAndNewlines;
- (NSString*)stringByRemovingPrefix:(NSString*)prefix;
- (NSString*)stringByRemovingSuffix:(NSString*)suffix;
- (NSString*)stringByQuotingOnlyIfNeeded:(BOOL)ifNeeded quoteTabsAndEOLs:(BOOL)quoteTabsAndEOLs quoteHighBitUnichars:(BOOL)quoteHighBits;
- (NSString*)stringByQuotingIfNeeded;
- (NSString*)stringByQuotingWhitespaceIfNeeded;
- (NSString*)PBX_stringByReplacingBackslashWithSlash;
- (NSString*)stringByReplacingCharacter:(unsigned short)oldChar withCharacter:(unsigned short)newChar;
- (NSString*)stringByReplacingSubstring:(NSString*)oldString withString:(NSString*)newString;
- (NSString*)stringByAppendingPathSeparatorIfNeeded;
- (NSDictionary*)dictionaryByParsingAsSimpleAssignmentsAndGetLocalizedErrorString:(NSString**)error;
- (NSString*)substringAfterString:(NSString*)string crossingLineBoundaries:(BOOL)cross;
- (NSString*)substringBeforeString:(NSString*)string crossingLineBoundaries:(BOOL)cross;
- (NSString*)substringBetweenString:(NSString*)startString andString:(NSString*)endString crossingLineBoundaries:(BOOL)cross;
- (NSString*)firstMatchingPrefixFromArray:(NSArray*)prefixes;
@end
@interface NSMutableData (TSFoundationExtra)
- (void)appendCStringCharacters:(const char*)cstring;
- (void)appendUnsignedLEB128:(unsigned long)uleb128;
- (void)appendSignedLEB128:(long)leb128;
@end
@interface NSData (TSFoundationExtra)
- (id)initWithHexRepresentationOfBytes:(const void*)bytes length:(unsigned)length;
- (id)initWithBase64RepresentationOfBytes:(const void*)bytes length:(unsigned)length;
@end
@interface NSObject (TSFoundationExtra)
+ (BOOL)isSubclassOfClass:(Class)class;
+ (id)allSubclasses;
- (void)swizzleToClass:(Class)class;
- (void)performSelector:(SEL)selector withEachObjectInArray:(NSArray*)array withSecondObject:(id)obj2 inReverseOrder:(BOOL)reverse;
- (void)performSelector:(SEL)selector withEachObjectInArray:(NSArray*)array inReverseOrder:(BOOL)reverse;
- (void)performSelector:(SEL)selector withEachObjectInArray:(NSArray*)array withSecondObject:(id)obj2;
- (void)performSelector:(SEL)selector withEachObjectInArray:(NSArray*)array;
- (void)performSelector:(SEL)selector withEachKeyAndObjectInDictionary:(NSDictionary*)dict withThirdObject:(id)obj3;
- (void)performSelector:(SEL)selector withEachKeyAndObjectInDictionary:(NSDictionary*)dict;
- (id)forEachObjectInArray:(id)fp8;
- (id)forEachObjectInDictionary:(id)fp8;
- (id)forEachObjectInSet:(id)fp8;
@end
@interface TSPropertyListDictionary : NSDictionary
{
NSDictionary* _dict;
NSString* _localizedDesc;
NSBundle* _bundle;
NSDictionary* _localizationDict;
}
+ (id)propertyListDictionaryWithDictionary:(NSDictionary*)dict;
+ (id)propertyListDictionaryWithContentsOfString:(NSString*)string;
+ (id)propertyListDictionaryWithContentsOfFile:(NSString*)path encoding:(unsigned)encoding;
- (id)initWithDictionary:(NSDictionary*)dict;
- (id)initWithContentsOfString:(NSString*)string;
- (id)initWithContentsOfFile:(NSString*)path encoding:(unsigned)encoding;
- (NSString*)localizedMessageDescription;
- (void)setLocalizedMessageDescription:(NSString*)description;
- (NSBundle*)bundle;
- (void)setBundle:(NSBundle*)bundle;
- (NSDictionary*)localizationDictionary;
- (void)setLocalizationDictionary:(NSDictionary*)dict;
- (unsigned)count;
- (NSEnumerator*)keyEnumerator;
- (NSObject*)objectForKey:(NSString*)key;
- (NSObject*)objectOrNilForKey:(NSString*)key;
- (NSString*)stringForKey:(NSString*)key;
- (NSString*)stringOrNilForKey:(NSString*)key;
- (NSData*)dataForKey:(NSString*)key;
- (NSData*)dataOrNilForKey:(NSString*)key;
- (NSDictionary*)dictionaryForKey:(NSString*)key;
- (NSDictionary*)dictionaryOrNilForKey:(NSString*)key;
- (NSArray*)arrayForKey:(NSString*)key;
- (NSArray*)arrayOrNilForKey:(NSString*)key;
@end
@interface NSString (TSPathUtilities)
- (NSString*)PBX_stringByResolvingSymlinksInPath;
- (NSString*)stringByMakingPathRelativeToPath:(NSString*)path;
- (NSString*)regionVariantName;
- (NSString*)platformName;
- (NSString*)stringByMakingPathPlatformGeneric;
- (NSString*)stringByMakingPathPlatformSpecific:(id)plateform;
- (int)comparePaths:(NSString*)path;
- (NSString*)stringByCanonicalizingPathUsingBasePath:(NSString*)base;
- (NSString*)stringByCanonicalizingPath;
@end

Просмотреть файл

@ -0,0 +1,23 @@
//
//
// ÇPROJECTNAMEÈ
//
// Created by ÇFULLUSERNAMEÈ on ÇDATEÈ.
// Copyright ÇYEARÈ ÇORGANIZATIONNAMEÈ. All rights reserved.
//
//
using System;
namespace ÇPROJECTNAMEÈ
{
public class ÇPROJECTNAMEÈ
{
public static void Main()
{
// Insert your code here
Console.WriteLine( "Goodbye, Forever!");
return;
}
}
}

Просмотреть файл

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Description</key>
<string>A C# file</string>
<key>MainTemplateFile</key>
<string>file.cs</string>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Description</key>
<string>This project builds a mono executable application written in C#.</string>
<key>FilesToMacroExpand</key>
<array>
<string>«PROJECTNAMEASIDENTIFIER».cs</string>
<string>«PROJECTNAME».xcodeproj/default.pbxuser</string>
</array>
<key>FilesToRename</key>
<dict>
<key>MainFile.cs</key>
<string>«PROJECTNAMEASIDENTIFIER».cs</string>
</dict>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,136 @@
// !$*UTF8*$!
{
08D1CF7E0A94341D003EF5EB /* Project object */ = {
activeBuildConfigurationName = Release;
activeExecutable = 08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */;
activeTarget = 08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */;
breakpointsGroup = 08DDBDC00AC25B8B009DA930 /* XCBreakpointsBucket */;
codeSenseManager = 08DDBDBF0AC25B8B009DA930 /* Code sense */;
executables = (
08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */,
);
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
300,
133,
);
PBXFileTableDataSourceColumnsKey = (
PBXErrorsWarningsDataSource_TypeID,
PBXErrorsWarningsDataSource_MessageID,
PBXErrorsWarningsDataSource_LocationID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
PBXFileTableDataSourceColumnWidthsKey = (
22,
300,
131,
);
PBXFileTableDataSourceColumnsKey = (
PBXExecutablesDataSource_ActiveFlagID,
PBXExecutablesDataSource_NameID,
PBXExecutablesDataSource_CommentsID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
243,
20,
48.1626,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 180509544;
PBXWorkspaceStateSaveDate = 180509544;
};
sourceControlManager = 08DDBDBE0AC25B8B009DA930 /* Source Control */;
userBuildSettings = {
};
};
08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */ = {
activeExec = 0;
executables = (
08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */,
);
};
08D1CF960A94344F003EF5EB /* CSTrial.cs */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {763, 487}}";
sepNavSelRange = "{0, 0}";
sepNavVisRect = "{{0, 0}, {763, 487}}";
sepNavWindowFrame = "{{15, 257}, {808, 616}}";
};
};
08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */ = {
isa = PBXExecutable;
activeArgIndex = 0;
activeArgIndices = (
YES,
);
argumentStrings = (
"«PROJECTNAMEASIDENTIFIER».exe",
);
autoAttachOnCrash = 1;
configStateDict = {
};
customDataFormattersEnabled = 1;
debuggerPlugin = GDBDebugging;
disassemblyDisplayState = 0;
dylibVariantSuffix = "";
enableDebugStr = 1;
environmentEntries = (
);
launchableReference = 130F8B99001BDF0A11CA292A; /* Mono */
executableSystemSymbolLevel = 0;
executableUserSymbolLevel = 0;
libgmallocEnabled = 0;
name = «PROJECTNAMEASIDENTIFIER»;
isa = PBXExecutable;
sourceDirectories = (
);
};
08DDBDBE0AC25B8B009DA930 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
};
scmType = "";
};
08DDBDBF0AC25B8B009DA930 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
08DDBDC00AC25B8B009DA930 /* XCBreakpointsBucket */ = {
isa = XCBreakpointsBucket;
name = "Project Breakpoints";
objects = (
);
};
130F8B99001BDF0A11CA292A = {
isa = PBXExecutableFileReference;
name = Mono;
path = /usr/bin/Mono;
refType = 0;
};
}

Просмотреть файл

@ -0,0 +1,161 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {
/* Begin PBXBuildFile section */
08D1CF970A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs in Sources */ = {isa = PBXBuildFile; fileRef = 08D1CF960A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
08D1CF8F0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = compiled.mono.executable; name = «PROJECTNAMEASIDENTIFIER»; path = build/Debug/«PROJECTNAMEASIDENTIFIER»; sourceTree = "<group>"; };
08D1CF960A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.csharp; path = «PROJECTNAMEASIDENTIFIER».cs; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
08D1CF8D0A943432003EF5EB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
08D1CF7C0A94341D003EF5EB = {
isa = PBXGroup;
children = (
08D1CF950A94343C003EF5EB /* Sources */,
08D1CF900A943432003EF5EB /* Products */,
);
sourceTree = "<group>";
};
08D1CF900A943432003EF5EB /* Products */ = {
isa = PBXGroup;
children = (
08D1CF8F0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */,
);
name = Products;
sourceTree = "<group>";
};
08D1CF950A94343C003EF5EB /* Sources */ = {
isa = PBXGroup;
children = (
08D1CF960A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs */,
);
name = Sources;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */ = {
isa = PBXNativeTarget;
buildConfigurationList = 08D1CF920A943433003EF5EB /* Build configuration list for PBXNativeTarget "«PROJECTNAMEASIDENTIFIER»" */;
buildPhases = (
08D1CF8C0A943432003EF5EB /* Sources */,
08D1CF8D0A943432003EF5EB /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = «PROJECTNAMEASIDENTIFIER»;
productName = «PROJECTNAMEASIDENTIFIER»;
productReference = 08D1CF8F0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */;
productType = "com.mono.product-type.executable";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
08D1CF7E0A94341D003EF5EB /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 08D1CF7F0A94341D003EF5EB /* Build configuration list for PBXProject "«PROJECTNAME»" */;
hasScannedForEncodings = 0;
mainGroup = 08D1CF7C0A94341D003EF5EB;
productRefGroup = 08D1CF900A943432003EF5EB /* Products */;
projectDirPath = "";
targets = (
08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
08D1CF8C0A943432003EF5EB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
08D1CF970A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
08D1CF800A94341D003EF5EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
};
name = Debug;
};
08D1CF810A94341D003EF5EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
};
name = Release;
};
08D1CF930A943433003EF5EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
EXECUTABLE_EXTENSION = .exe;
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = «PROJECTNAMEASIDENTIFIER»;
TARGET_TYPE = "-target:exe";
};
name = Debug;
};
08D1CF940A943433003EF5EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
EXECUTABLE_EXTENSION = .exe;
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = «PROJECTNAMEASIDENTIFIER»;
TARGET_TYPE = "-target:exe";
ZERO_LINK = NO;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
08D1CF7F0A94341D003EF5EB /* Build configuration list for PBXProject "«PROJECTNAME»" */ = {
isa = XCConfigurationList;
buildConfigurations = (
08D1CF800A94341D003EF5EB /* Debug */,
08D1CF810A94341D003EF5EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
08D1CF920A943433003EF5EB /* Build configuration list for PBXNativeTarget "«PROJECTNAMEASIDENTIFIER»" */ = {
isa = XCConfigurationList;
buildConfigurations = (
08D1CF930A943433003EF5EB /* Debug */,
08D1CF940A943433003EF5EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 08D1CF7E0A94341D003EF5EB /* Project object */;
}

Просмотреть файл

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Description</key>
<string>A C# file</string>
<key>MainTemplateFile</key>
<string>file.cs</string>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,17 @@
//
//
// ÇPROJECTNAMEÈ
//
// Created by ÇFULLUSERNAMEÈ on ÇDATEÈ.
// Copyright ÇYEARÈ ÇORGANIZATIONNAMEÈ. All rights reserved.
//
//
using System;
namespace ÇPROJECTNAMEÈ
{
public class ÇPROJECTNAMEÈ
{
}
}

Просмотреть файл

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Description</key>
<string>This project builds a mono library assembly in C#</string>
<key>FilesToMacroExpand</key>
<array>
<string>«PROJECTNAMEASIDENTIFIER».cs</string>
<string>«PROJECTNAME».xcodeproj/default.pbxuser</string>
</array>
<key>FilesToRename</key>
<dict>
<key>file.cs</key>
<string>«PROJECTNAMEASIDENTIFIER».cs</string>
</dict>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,136 @@
// !$*UTF8*$!
{
08D1CF7E0A94341D003EF5EB /* Project object */ = {
activeBuildConfigurationName = Release;
activeExecutable = 08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */;
activeTarget = 08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */;
breakpointsGroup = 08DDBDC00AC25B8B009DA930 /* XCBreakpointsBucket */;
codeSenseManager = 08DDBDBF0AC25B8B009DA930 /* Code sense */;
executables = (
08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */,
);
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
300,
133,
);
PBXFileTableDataSourceColumnsKey = (
PBXErrorsWarningsDataSource_TypeID,
PBXErrorsWarningsDataSource_MessageID,
PBXErrorsWarningsDataSource_LocationID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
PBXFileTableDataSourceColumnWidthsKey = (
22,
300,
131,
);
PBXFileTableDataSourceColumnsKey = (
PBXExecutablesDataSource_ActiveFlagID,
PBXExecutablesDataSource_NameID,
PBXExecutablesDataSource_CommentsID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
243,
20,
48.1626,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 180509544;
PBXWorkspaceStateSaveDate = 180509544;
};
sourceControlManager = 08DDBDBE0AC25B8B009DA930 /* Source Control */;
userBuildSettings = {
};
};
08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */ = {
activeExec = 0;
executables = (
08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */,
);
};
08D1CF960A94344F003EF5EB /* CSTrial.cs */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {763, 487}}";
sepNavSelRange = "{0, 0}";
sepNavVisRect = "{{0, 0}, {763, 487}}";
sepNavWindowFrame = "{{15, 257}, {808, 616}}";
};
};
08DDBDB30AC25B68009DA930 /* «PROJECTNAMEASIDENTIFIER» */ = {
isa = PBXExecutable;
activeArgIndex = 0;
activeArgIndices = (
YES,
);
argumentStrings = (
"«PROJECTNAMEASIDENTIFIER».exe",
);
autoAttachOnCrash = 1;
configStateDict = {
};
customDataFormattersEnabled = 1;
debuggerPlugin = GDBDebugging;
disassemblyDisplayState = 0;
dylibVariantSuffix = "";
enableDebugStr = 1;
environmentEntries = (
);
launchableReference = 130F8B99001BDF0A11CA292A; /* Mono */
executableSystemSymbolLevel = 0;
executableUserSymbolLevel = 0;
libgmallocEnabled = 0;
name = «PROJECTNAMEASIDENTIFIER»;
isa = PBXExecutable;
sourceDirectories = (
);
};
08DDBDBE0AC25B8B009DA930 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
};
scmType = "";
};
08DDBDBF0AC25B8B009DA930 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
08DDBDC00AC25B8B009DA930 /* XCBreakpointsBucket */ = {
isa = XCBreakpointsBucket;
name = "Project Breakpoints";
objects = (
);
};
130F8B99001BDF0A11CA292A = {
isa = PBXExecutableFileReference;
name = Mono;
path = /usr/bin/Mono;
refType = 0;
};
}

Просмотреть файл

@ -0,0 +1,161 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {
/* Begin PBXBuildFile section */
08D1CF970A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs in Sources */ = {isa = PBXBuildFile; fileRef = 08D1CF960A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
08D1CF8F0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = compiled.mono.library; name = «PROJECTNAMEASIDENTIFIER»; path = build/Debug/«PROJECTNAMEASIDENTIFIER»; sourceTree = "<group>"; };
08D1CF960A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.csharp; path = «PROJECTNAMEASIDENTIFIER».cs; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
08D1CF8D0A943432003EF5EB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
08D1CF7C0A94341D003EF5EB = {
isa = PBXGroup;
children = (
08D1CF950A94343C003EF5EB /* Sources */,
08D1CF900A943432003EF5EB /* Products */,
);
sourceTree = "<group>";
};
08D1CF900A943432003EF5EB /* Products */ = {
isa = PBXGroup;
children = (
08D1CF8F0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */,
);
name = Products;
sourceTree = "<group>";
};
08D1CF950A94343C003EF5EB /* Sources */ = {
isa = PBXGroup;
children = (
08D1CF960A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs */,
);
name = Sources;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */ = {
isa = PBXNativeTarget;
buildConfigurationList = 08D1CF920A943433003EF5EB /* Build configuration list for PBXNativeTarget "«PROJECTNAMEASIDENTIFIER»" */;
buildPhases = (
08D1CF8C0A943432003EF5EB /* Sources */,
08D1CF8D0A943432003EF5EB /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = «PROJECTNAMEASIDENTIFIER»;
productName = «PROJECTNAMEASIDENTIFIER»;
productReference = 08D1CF8F0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */;
productType = "com.mono.product-type.library";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
08D1CF7E0A94341D003EF5EB /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 08D1CF7F0A94341D003EF5EB /* Build configuration list for PBXProject "«PROJECTNAME»" */;
hasScannedForEncodings = 0;
mainGroup = 08D1CF7C0A94341D003EF5EB;
productRefGroup = 08D1CF900A943432003EF5EB /* Products */;
projectDirPath = "";
targets = (
08D1CF8E0A943432003EF5EB /* «PROJECTNAMEASIDENTIFIER» */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
08D1CF8C0A943432003EF5EB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
08D1CF970A94344F003EF5EB /* «PROJECTNAMEASIDENTIFIER».cs in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
08D1CF800A94341D003EF5EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
};
name = Debug;
};
08D1CF810A94341D003EF5EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
};
name = Release;
};
08D1CF930A943433003EF5EB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
EXECUTABLE_EXTENSION = .exe;
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = «PROJECTNAMEASIDENTIFIER»;
TARGET_TYPE = "-target:library";
};
name = Debug;
};
08D1CF940A943433003EF5EB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
EXECUTABLE_EXTENSION = .exe;
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = «PROJECTNAMEASIDENTIFIER»;
TARGET_TYPE = "-target:library";
ZERO_LINK = NO;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
08D1CF7F0A94341D003EF5EB /* Build configuration list for PBXProject "«PROJECTNAME»" */ = {
isa = XCConfigurationList;
buildConfigurations = (
08D1CF800A94341D003EF5EB /* Debug */,
08D1CF810A94341D003EF5EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
08D1CF920A943433003EF5EB /* Build configuration list for PBXNativeTarget "«PROJECTNAMEASIDENTIFIER»" */ = {
isa = XCConfigurationList;
buildConfigurations = (
08D1CF930A943433003EF5EB /* Debug */,
08D1CF940A943433003EF5EB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 08D1CF7E0A94341D003EF5EB /* Project object */;
}

Просмотреть файл

@ -0,0 +1,10 @@
/*
Mono Runtime System - CSharp.pbRTSspec
*/
(
{
Identifier ="rts.Mono";
Name = "Mono:
SpecificResourcePath = "/usr/bin/Mono";
}
)

Просмотреть файл

@ -0,0 +1,47 @@
/*
Mono C# Package Specification
Based (heavily) on
ocaml.pbpackspec - OCamlPlugin
Copyright 2005 Damien Bobillot.
Distributed under the GPL licence.
*/
(
// Mono executable assembly
{
Identifier = com.mono.package-type.executable;
Name = "Mono Executable Assembly";
Description = "Mono assembly that can be run";
DefaultBuildSettings = {
PACKAGE_TYPE = EXECUTABLE;
EXECUTABLE_SUFFIX = ".exe";
EXECUTABLE_NAME = "$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)";
EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
GENERATE_PKGINFO_FILE = NO;
};
ProductReference = {
FileType = compiled.mono.executable;
Name = "$(PRODUCT_NAME).exe"; // always assumed to be relative to $(BUILD_DIR)
IsLaunchable = YES;
};
},
// Mono library assembly
{
Identifier = com.mono.package-type.library;
Name = "Mono library Assembly";
Description = "Mono assembly that is to be referenced by aother assembly";
DefaultBuildSettings = {
PACKAGE_TYPE = EXECUTABLE;
EXECUTABLE_SUFFIX = ".dll";
EXECUTABLE_NAME = "$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)";
EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
GENERATE_PKGINFO_FILE = NO;
};
ProductReference = {
FileType = compiled.mono.library;
Name = "$(PRODUCT_NAME).dll"; // always assumed to be relative to $(BUILD_DIR)
IsLaunchable = YES;
};
}
)

Просмотреть файл

@ -0,0 +1,151 @@
//
// CSharp BuildSteeings
// English localisation
//
"Name" = "CSharp Build Settings";
"Description" = "CSharp Options";
// options
"[OTHER_CSHARPFLAGS]-name" = "Other CSharp Flags";
"[OTHER_CSHARPFLAGS]-description" = "Not all compiler options that (g)mcs can accept are made available directly through these option settings. Compiler options in this category typically include those related to debugging the compiler (e.g. --fatal, --parse, --stacktrace, -timestamp and -v).
This option is required for the --expect-error option as this option takes 2 parameters and this is not possible with the current version of XCode.
Another option that cannot be passed is -recurse: however this option does not make sense when used within the XCode environment.
[OTHER_CSHARPFLAGS]";
"[CS_ADDMODULE]-name" = "Add Modules";
"[CS_ADDMODULE]-description" = "(--addmodule)
Includes the specified modules in the resulting assembly.
Each module to be added should be listed on a separate line.
[CS_ADDMODULE]";
"[CS_CHECKED]-name" = "Use Checked Expressions";
"[CS_CHECKED]-description" = "(-checked+|-checked-)
Specifies that all maths operations should be checked for exceptions. Performing such checking is set by default.
[CS_CHECKED]";
"[CS_CODEPAGE]-name" = "Code Page";
"[CS_CODEPAGE]-description" = "(-codepage)
Specifies the code page to process the input files. By default, files will be processed in the Latin-1 code page. The compiler will automatically detect Unicode files that have an embedded byte mark at the beginning.
This option applies to ALL source code files within the build. (This varies from the use of the -codepage within the mcs command line where it applies only to those input files that follow it - such usage is not available under XCode).
Options are:
- utf-8 (codepage 65001)
- Latin1 (codepage 28591)
- reset (use automatic processing rules)
[CS_CODEPAGE]";
"[CS_DEFINE]-name" = "Define Symbols";
"[CS_DEFINE]-description" = "(-define)
Defines symbols that can be tested in the source code by the preprocessor, or can be used by methods that have been tagged with the Conditional attribute.
Multiple symbols can be defined.
[CS_DEFINE]";
"[CS_DEBUG]-name" = "Generate debug information";
"[CS_DEBUG]-description" = "(-debug+)
Generate debugging information. To obtain stack traces with debugging nformation, you need to invoke the Mono runtime with the '--debug' flag. This debugging information is stored inside the assembly as a resource.
The default is to not generate the debugging information.
[CS_DEBUG]";
"[CS_DELAYSIGNING]-name" = "Delay Signing";
"[CS_DELAYSIGNING]-description" = "(-delaysign+)
Only embed the strongname public key into the assembly. The actual signing must be done in a later stage using the SN tool. This is useful to protect the private key during development. Note that delay signing can only be done using a strongname key file (not a key container).
The option is equivalent to including [assembly: AssemblyDelaySign(true)] in your source code. This option takes precedence over the source file attribute.
[CS_DELAYSIGNING]";
"[CS_DOC]-name" = "Extract Documentation to file";
"[CS_DOC]-description" = "(-doc)
Extracts the C#/XML documentation from the source code and stores it in the specified file.
[CS_DOC]";
"[CS_KEYFILE]-name" = "Specify Key file";
"[CS_KEYFILE]-description" = "(-keyfile)
Strongname (sign) the output assembly using the key pair present in the specified strong name key file (snk). A full key pair is required be default (or when using -delaysign-). A file containing on the public key can be used with -delaysign+.
The option is equivalent to including [assembly: AssemblyKeyFile(\"KEY-FILE\")] in your source code. This compiler option takes precedence over the source file attribute.
[CS_KEYFILE]";
"[CS_KEYCONTAINER]-name" = "Specify Key container";
"[CS_KEYCONTAINER]-description" = "(-keycontainer)
Strongname (sign) the output assembly using the key pair present in the specified container. Note that -delaysign+ is ignored when using key containers.
The option is equivalent to including [assembly: AssemblyKeyName(\"CONTAINER\")] in your source code. This compiler option takes precedence over the attribute.
[CS_KEYCONTAINER]";
"[CS_LANGUAGE]-name" = "Specify Language";
"[CS_LANGUAGE]-description" = "(-langversion)
This option specifies the version of the language to use. The feature set is different in each C# version. This switch can be used to force the compiler to allow only a subset of the features. The possible values are:
- Default (or blank) - instructs the compiler to use the latest version
- ISO-1 - restrict the compiler to use only ISO standardised features. The usage of features such as generics, static classes, anonymous methods will lead to an error.
Note: this flag only controls the language features available to the programmer; it does NOT control the kind of assemblies produced.
[CS_LANGUAGE]";
"[CS_LIBRARIES]-name" = "Library Paths";
"[CS_LIBRARIES]-description" = "(-lib)
Each path specifies where the compiler is to look for libraries.
[CS_LIBRARIES]";
"[CS_MAINCLASS]-name" = "Main Class";
"[CS_MAINCLASS]-description" = "(-main)
Tells the compiler that the CLASS name entered contains the entry point.
This is useful when you are compiling several classes with a Main method.
[CS_MAINCLASS]";
"[CS_NOCONFIG]-name" = "Disable Default Configuration";
"[CS_NOCONFIG]-description" = "(-noconfig+)
Selecting this option disables the loading of the default compiler configuration. The compiler by default has references to the system assemblies.
[CS_NOCONFIG]";
"[CS_NOWARNINGS]-name" = "Ignore Specified Warnings";
"[CS_NOWARNINGS]-description" = "(-nowarn)
Makes the compiler ignore the specified warnings. The warnings are identified by their numerical value.
[CS_NOWARNINGS]";
"[CS_OPTIMISE]-name" = "Perform Optimisations";
"[CS_OPTIMISE]-description" = "(-optimize+)
Controls whether to perform optimisations on the code. The default is to optimise.
[CS_OPTIMISE]";
"[CS_PKGCONFIG]-name" = "Use Pkg-Config";
"[CS_PKGCONFIG]-description" = "(-pkg)
The compiler will invoke the 'pkg-config --libs' on the set of packages specified to obtain libraries and directories to compile the code.
A special package of 'dotnet' can be entered. Ths will instruct the compiler to reference the System.* libraries available on a typical dotnet framework installation. Note that this does not incloude all of the Mono libraries, only the System.* ones; this is a convenient shortcut for those porting code.
[CS_PKGCONFIG]";
"[CS_RESOURCE]-name" = "Embed Resource File(s)";
"[CS_RESOURCE]-description" = "(-resource)
Embeds the specified resource file(s) into the assembly. If the entered filename is followed by a \",ID\" value, the ID will be used to give a different name to the resource. Otherwise the filename will be the resource name.
[CS_RESOURCE]";
"[CS_LINKRESOURCE]-name" = "Link Resource File(s)";
"[CS_LINKRESOURCE]-description" = "(-linkresource)
Links the specified resource file(s) frm the assembly. If the filename is followed by a \",ID\" value, the ID will be used as the name of the resource; otherwise the filename will be used.
[CS_LINKRESOURCE]";
"[CS_REFERENCEDASSEMBLIES]-name" = "Reference Assemblies";
"[CS_REFERENCEDASSEMBLIES]-description" = "(-r)
Reference the named assemblies. Use this to use the classes fom the named assembly in your program. The assembly will be loaded from either the system directory where all assemblies live, or from the path explicitly given with the 'Library Paths' option.
Multiple assemblies can be listed.
Typically you do not need to list assemblies that are created within the same project from different targets. Simply drag the library assembly into the 'Link Binary with Libraries' target phase and they will be included in building this target.
[CS_REFERENCEDASSEMBLIES]";
"[CS_UNSAFE]-name" = "Allow Unsafe Code";
"[CS_UNSAFE]-description" = "(-unsafe+)
Enables compilation of unsafe code.
[CS_UNSAFE]";
"[CS_WARNASERROR]-name" = "Treat Warnings As Errors";
"[CS_WARNASERROR]-description" = "(-warnaserror+)
Treats all warnings as errors.
[CS_WARNASERROR]";
"[CS_WARNINGLEVEL]-name" = "Warning Level";
"[CS_WARNINGLEVEL]-description" = "(-warn)
Sets the warning level. 0 is the lowest warning level and 4 is the highest. The default is 2.
[CS_WARNINGLEVEL]";
"[CS_DOTNETVERSION]-name" = ".NET Version";
"[CS_DOTNETVERSION]-description" = "Selects the .NET version to be used via selection of the compiler version. The possible values are:
- V1 - .NET versions V1.0 and V1.1. (uses the mcs compiler)
- V2 - .NET version V2 (uses the gmcs compiler)
Note: the 'mcs' compiler selected using the V1 option links against the V1.x assemblies although it actually allows the use of C# V2.0 features except generics and nullable types. The 'gmcs' compiler links against the V2.x assemblies and implements the complete C# 2.0 specification.
[CS_DOTNETVERSION]";

28
Resources/Info.plist Normal file
Просмотреть файл

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>CSharpPlugin</string>
<key>CFBundleIconFile</key>
<string>csharpplugin</string>
<key>CFBundleIdentifier</key>
<string>com.mono.Xcode.CSharpPlugin</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>CSharpPlugin</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LoadAtLaunch</key>
<string>YES</string>
<key>XCPluginHasUI</key>
<string>NO</string>
</dict>
</plist>

12
Resources/Mono.xcspec Normal file
Просмотреть файл

@ -0,0 +1,12 @@
(
// Mono - architecture independent
{
Type = Architecture;
Identifier = mono;
Name = "Mono IDL";
Description = "Mono architecture - independent of any hardware";
ByteOrder = little;
ShowInUI = YES;
// SortNumber = 53;
},
)

Просмотреть файл

@ -0,0 +1,26 @@
/*
CSharp.pbbsetspec - CSharp plugin
Based heavily on:
ada.pbbsetspec - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
(
{
Identifier = com.mono.buildsettings.csharpprops;
Name = "CSharp Properties";
Description = "C# Build Settings";
IconName = "GroupFolder";
Options = (
{
//Set default context to be checked
Name = CS_DEBUG;
Type = bool;
DefaultValue = NO;
CommandLineArgs = { YES = ("-debug+"); NO = (); };
CommonOption = YES;
},
);
},
)

242
Resources/csharp.pbcompspec Normal file
Просмотреть файл

@ -0,0 +1,242 @@
/*
Mono C# Compiler Specification
Copyright (c) 2006 Susan Mackay
(but feel free to add to/change/fix anything that needs it!!!)
This compiler specification defines the characteristics of the Mono MCS and GMCS compilers.
*/
{
Type = Compiler;
Identifier = com.mono.compilers.csharp.gmcs;
Class = MonoCompilerSpecificationCS;
Name = "Mono gmcs Compiler";
Description = "Mono development projects gmcs compiler for C# code";
Version = "2.0";
Vendor = "Mono";
Languages = (csharp);
Architectures = ( mono, i386, ppc );
FileTypes = (sourcecode.csharp);
ExecPath = "/usr/bin/gmcs";
CommandOutputParser = MonoOutputParser;
SupportsZeroLink = NO;
SupportsPredictiveCompilation = NO;
Options = (
{
Name = OTHER_CSHARPFLAGS;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = { "" = (); "<<otherwise>>" = ("${0}"); };
Category = Building;
},
{
// Adds the module to the generated assembly
Name = CS_ADDMODULE;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = ( "--addmodule:${0}" );
Category = Building;
CommonOption = NO;
},
{
//Set default context to be checked
Name = CS_CHECKED;
Type = bool;
DefaultValue = YES;
CommandLineArgs = { YES = (); NO = ("-checked-"); };
Category = CodeGeneration;
CommonOption = NO;
},
{
// Sets the code page
Name = CS_CODEPAGE;
Type = enum;
AllowedValues = ("", "Latin1", "utf8", "reset");
DefaultValue = "";
CommandLineArgs = { "" = (); "<<otherwise>>" = ("-codepage:${0}"); };
Category = Language;
CommonOption = NO;
},
{
// Define symbols
Name = CS_DEFINE;
Type = stringlist;
DefautValue = "";
CommandLineArgs = ( "-define:${0}" );
Category = Language;
CommonOption = NO;
},
{
// Debug flag
Name = CS_DEBUG;
Type = bool;
DefaultValue = NO;
CommandLineArgs = { YES = ("-debug+"); NO = (); };
CommonOption = YES;
Category = CodeGeneration;
},
{
// Delay Signing
Name = CS_DELAYSIGNING;
Type = bool;
DefaultValue = NO;
CommandLineArgs = { YES = ("-delaysign+"); NO = (); };
Category = Building;
CommonOption = NO;
},
{
// Documentation Extraction to a file
Name = CS_DOC;
Type = string;
DefaultValue = "";
CommandLineArgs = { "" = (); "<<otherwise>>" = ( "-doc:${0}" ); };
Category = Building;
CommonOption = NO;
},
{
// KeyFile
Name = CS_KEYFILE;
Type = string;
DefaultValue = "";
CommandLineArgs = { "" = (); "<<otherwise>>" = ( "-keyfile:${0}" ); };
Category = Building;
CommonOption = NO;
},
{
// KeyContainer
Name = CS_KEYCONTAINER;
Type = string;
DefaultValue = "";
CommandLineArgs = { "" = (); "<<otherwise>>" = ( "-keycontainer:${0}" ); };
Category = Building;
CommonOption = NO;
},
{
// Language
Name = CS_LANGUAGE;
Type = enum;
AllowedValues = ( "", "Default", "ISO-1");
DefaultValue = "";
CommandLineArgs = { "" = (); "<<otherwise>>" = ("--langversion:${0}"); };
Category = Language;
CommonOption = NO;
},
{
// Library path list
Name = CS_LIBRARIES;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = ( "-lib:${0}" );
Category = Building;
CommonOption = YES;
},
{
// Main Class
Name = CS_MAINCLASS;
Type = string;
DefaultValue = "";
CommandLineArgs = { "" = (); "<<otherwise>>" = ( "-main:${0}" ); };
Category = Building;
CommonOption = NO;
},
{
// NoConfig
Name = CS_NOCONFIG;
Type = bool;
DefaultValue = NO;
CommandLineArgs = { YES = ("-noconfig+"); NO = (); };
Category = Building;
CommonOption = NO;
},
{
// Ignore Specified Warings
Name = CS_NOWARNINGS;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = ( "-nowarn:${0}" );
Category = Building;
CommonOption = NO;
},
{
// Optimisation
Name = CS_OPTIMISE;
Type = bool;
DefaultValue = YES;
CommandLineArgs = { YES = (); NO = ("-optimize-"); };
Category = CodeGeneration;
CommonOption = NO;
},
{
// pkg-config
Name = CS_PKGCONFIG;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = ( "-pkg:${0}" );
Category = Building;
CommonOption = NO;
},
{
// Resource
Name = CS_RESOURCE;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = ( "-resource:${0}" );
Category = Building;
CommonOption = YES;
},
{
Name = CS_LINKRESOURCE;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = ( "-linkresource:${0}" );
CommonOption = NO;
},
{
// Reference the specified assembly
Name = CS_REFERENCEDASSEMBLIES;
Type = stringlist;
DefaultValue = "";
CommandLineArgs = ( "-reference:${0}" );
Category = Building;
CommonOption = YES;
},
{
// Allows unsafe code
Name = CS_UNSAFE;
Type = bool;
DefaultValue = NO;
CommandLineArgs = { NO = (); YES = ("-unsafe+"); };
Category = Language;
CommonOption = NO;
},
{
// Treat warnings as errors
Name = CS_WARNASERROR;
Type = bool;
DefaultValue = NO;
CommandLineArgs = { NO = (); YES = ( "-warnaserror+" ); };
Category = CodeGeneration;
CommonOption = NO;
},
{
// Warning Level
Name = CS_WARNINGLEVEL;
Type = enum;
AllowedValues = ( "0", "1", "2", "3", "4" );
DefaultValue = "2";
CommandLineArgs = { "2" = (); "<<otherwise>>" = ( "-warn:${0}" ); };
Category = CodeGeneration;
CommonOption = NO;
},
{
// Control .NET V1 or V2 usage
Name = CS_DOTNETVERSION;
Type = enum;
AllowedValues = ( "V1", "V2");
DefaultValue = "V2";
Category = Language;
CommonOption = YES;
},
);
}

Просмотреть файл

@ -0,0 +1,55 @@
/**
CSharp source and executable file specs.
*/
(
{
// C-Sharp source code
Identifier = sourcecode.csharp;
BasedOn = sourcecode;
Name = "C# File";
Extensions = (cs, csharp);
MIMETypes = ("text/C#");
ComputerLanguage = csharp;
IsTextFile = YES;
IsSourceCode = YES;
AppliesToBuildRules = YES;
ChangesCauseDependencyGraphInvalidation = YES;
},
{
// Executable (.exe) file
Identifier = compiled.mono.executable;
BasedOn = compiled;
Name = "Mono Executable File";
Extensions = (exe);
TypeCodes = (APPL);
IsTextFile = NO;
IsSourceFile = NO;
IsExecutable = YES;
IsExecutableWithGUI = NO;
IsTransparent = NO;
IsApplication = NO;
IsBundle = NO;
ContainsNativeCode = NO;
AppliesToBuildRules = NO;
ComputerLanguage = csharp;
},
{
// Library/Assembly (.dll) file
Identifier = compiled.mono.library;
BasedOn = compiled;
Name = "Mono Library Assembly File";
Extensions = (dll);
TypeCodes = (APPL);
IsTextFile = NO;
IsSourceFile = NO;
IsExecutable = YES;
IsExecutableWithGUI = NO;
IsTransparent = NO;
IsApplication = NO;
IsBundle = NO;
ContainsNativeCode = NO;
AppliesToBuildRules = NO;
ComputerLanguage = csharp;
ChangesCauseDependencyGraphInvalidation = YES;
}
)

134
Resources/csharp.pblangspec Normal file
Просмотреть файл

@ -0,0 +1,134 @@
/**
chsarp.pblangspec - CSharp language specification.
*/
(
{
Identifier = csharp;
Name = "CSharp";
Description = "CSharp source file";
BasedOn = "pbx_root_language";
SourceScannerClassName = PBXCPPSourceScanner;
SupportsIndentation = YES;
Indentation = {
};
SyntaxColoring = {
CaseSensitive = YES;
UnicodeSymbols = YES;
UnicodeEscapes = YES;
IndexedSymbols = YES;
CommentsCanBeNested = YES;
IdentifierStartChars = "_";
IdentifierChars = "_";
MultiLineComment = (
( "/*", "*/" )
);
String = (
( "\"", "\"" )
);
EscapeCharacter = "\\";
Character = (
( "'", "'" )
);
SingleLineComment = ( "//" );
DocComment = "///";
DocCommentKeywords = (
"summary",
"param",
"returns"
);
Keywords = (
"abstract",
"as",
"base",
"bool",
"break",
"byte",
"case",
"catch",
"char",
"checked",
"class",
"const",
"continue",
"decimal",
"default",
"delegate",
"do",
"double",
"else",
"enum",
"event",
"explicit",
"extern",
"false",
"finally",
"fixed",
"float",
"for",
"foreach",
"get",
"goto",
"if",
"implicit",
"in",
"int",
"interface",
"internal",
"is",
"lock",
"long",
"namespace",
"new",
"null",
"object",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"ref",
"return",
"sbyte",
"sealed",
"set",
"short",
"sizeof",
"stackalloc",
"static",
"string",
"struct",
"switch",
"this",
"throw",
"true",
"try",
"typeof",
"uint",
"ulong",
"unchecked",
"unsafe",
"ushort",
"using",
"value",
"virtual",
"void",
"volatile",
"while"
);
AltKeywords = (
);
PreprocessorKeywordStart = "#";
PreprocessorKeywords = (
"region",
"endregion",
"if",
"else",
"endif"
);
};
},
)

Просмотреть файл

@ -0,0 +1,38 @@
/*
CSharp.pblinkspec - CSharp plugin
In the mono environment, the mcs or gmcs tool performs all compiling and linking.
Therefore this specification file does the job of both the pbcompspec and pblinkspec
files.
Based heavily on:
ada.pblinkspec - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
(
{
Identifier = com.mono.compilers.csharp.linker;
Class = MonoLinkerSpecificationCS;
Name = "CSharp Assembly Builder";
Description = "C# Assembly Builder";
Version = "V2";
Vendor = "Mono";
Languages = (csharp);
BinaryFormats = ( compiled.mono.executable, compiled.mono.library );
Architectures = (mono, i386, ppc);
ExecPath = "/usr/bin/gmcs";
InputFileTypes = ( sourcecode.csharp, compiled.mono.library);
Options =
(
{
//Set default context to be checked
Name = CS_DEBUG;
Type = bool;
DefaultValue = NO;
CommandLineArgs = { YES = ("-debug+"); NO = (); };
CommonOption = YES;
},
);
}
)

Просмотреть файл

@ -0,0 +1,48 @@
/*
Mono C# Product Specification
This is typically a mono executable or mono library assembly
*/
(
{
// Mono Executable Assembly (.exe)
Identifier = com.mono.product-type.executable;
Class = MonoProductSpecificationCS;
Name = "Mono Executable Builder";
Description = "Mono Executable Assembly Builder";
IconNamePrefix = "TargetExecutable";
DefaultTargetName = "Application";
SupportsZeroLink = NO;
Vendor = "Mono";
AllowedBuildPhaseTypes = ( Sources, Frameworks );
DefaultBuildProperties = {
ARCHS = (mono);
VALID_ARCHS = (mono, i386, ppc );
FULL_PRODUCT_NAME = "$(PRODUCT_NAME).exe";
};
PackageTypes = (
com.mono.package-type.executable // default
);
},
{
// Mono Library Assembly (.dll)
Identifier = com.mono.product-type.library;
Class = MonoProductSpecificationCS;
Name = "Mono Library Builder";
Description = "Mono Library Assembly Builder";
IconNamePrefix = "TargetExecutable";
DefaultTargetName = "Application";
SupportsZeroLink = NO;
Vendor = "Mono";
AllowedBuildPhaseTypes = ( Sources, Frameworks );
DefaultBuildProperties = {
ARCHS = (mono);
VALID_ARCHS = (mono, i386, ppc );
FULL_PRODUCT_NAME = "$(PRODUCT_NAME).dll";
};
PackageTypes = (
com.mono.package-type.library
);
},
)

Просмотреть файл

@ -0,0 +1,18 @@
/*
Mono Compiler build rules
Based (havily) on:
ocaml.xcbuildrules - OCamlPlugin
Copyright 2005 Damien Bobillot.
Distributed under the GPL licence.
*/
(
{
// .NET V2 compatible compiler
// Note: The monoCompilerSpecificationCS.m doesn't actually use this
// It uses option values to select the V1/V2 compiler (mcs/gmcs)
Name = "Mono Source rule";
FileType = sourcecode.csharp;
CompilerSpec = com.mono.compilers.csharp.gmcs;
},
)

Просмотреть файл

@ -0,0 +1,13 @@
/*
MonoCompilerSpecificationCS.h - CSharp plugin
Based heavily on:
MACompilerSpecificationGNAT.h - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import "XCPSpecifications.h"
@interface MonoCompilerSpecificationCS : XCCompilerSpecification
@end

Просмотреть файл

@ -0,0 +1,84 @@
/*
MonoCompilerSpecificationCS.m - CSharp plugin
Based heavily on:
MACompilerSpecificationGNAT.h - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import "MonoCompilerSpecificationCS.h"
#import "XCPBuildSystem.h"
#import "XCPDependencyGraph.h"
#import "XCPSupport.h"
@implementation MonoCompilerSpecificationCS
- (NSArray*) computeDependenciesForInputFile:(NSString*)input
ofType:(PBXFileType*)type
variant:(NSString*)variant
architecture:(NSString*)arch
outputDirectory:(NSString*)outputDir
inTargetBuildContext:(PBXTargetBuildContext*)context
{
// FILE* CSDumpFile = fopen( "/Users/susan/CSDumpFile.txt", "a");
// fprintf( CSDumpFile, "In Compiler\n");
// compute input path (with variable substitution) and create the input node
input = [context expandedValueForString:input];
XCDependencyNode* inputNode = [context dependencyNodeForName:input createIfNeeded:YES];
// Get the product node
NSString* ProductPath = [context expandedValueForString:@"$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)"];
XCDependencyNode* productNode = [context dependencyNodeForName:ProductPath];
XCDependencyCommand* depLink;
if( nil == productNode)
{
// fprintf( CSDumpFile, " Creating compiler command...\n");
// Create the product node and set it up for the compile
productNode = [context dependencyNodeForName:ProductPath createIfNeeded:YES];
[context addProductNode:productNode];
NSString* CompilerVersion = [context expandedValueForString:@"$(CS_DOTNETVERSION)"];
NSString* CompilerPath = @"/usr/bin/gmcs";
if( [CompilerVersion isEqualToString:@"V1"])
{ CompilerPath = @"/usr/bin/mcs"; }
// create linker command
depLink = [context
createCommandWithRuleInfo:[NSArray arrayWithObjects:@"Mono Compile",[context naturalPathForPath:ProductPath],nil]
commandPath:CompilerPath
arguments:nil
forNode:productNode];
[depLink setToolSpecification:self];
// add in the compiler option flags
NSArray* CmdLineArgs = [self commandLineForAutogeneratedOptionsInTargetBuildContext:context];
[depLink addArgumentsFromArray:CmdLineArgs];
// fprintf( CSDumpFile, " Created compiler command\n");
}
else
{ depLink = [productNode producerCommand]; }
// fprintf( CSDumpFile, " Input File: %s - Product Node: %s\n", [input cString], [ProductPath cString]);
// Add the input node as an argument and dependency node for the product
[depLink addArgument:input];
[productNode addDependedNode:inputNode];
[context setCompiledFilePath:ProductPath forSourceFilePath:input];
NSString* object_files = [context expandedValueForString:@"object_files"];
[context appendStringOrStringListValue:input toDynamicSetting:object_files];
// [context writeToGraphVizFileAtPath:@"/Users/susan/DumpDependency.dot"];
// fprintf( CSDumpFile, "--- Completed Compile\n");
// fclose( CSDumpFile);
// return the product node (as an array of one element)
return [NSArray arrayWithObject:productNode];
}
@end

Просмотреть файл

@ -0,0 +1,13 @@
/*
MonoLinkerSpecificationCS.h - CSharpPlugin
Based heavily on:
MALinkerSpecificationGNAT.h - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import "XCPSpecifications.h"
@interface MonoLinkerSpecificationCS : XCLinkerSpecification
@end

Просмотреть файл

@ -0,0 +1,88 @@
/*
MonoLinkerSpecificationCS.m - CSharpPlugin
Based heavily on:
MALinkerSpecificationGNAT.m - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import "MonoLinkerSpecificationCS.h"
#import "XCPBuildSystem.h"
#import "XCPDependencyGraph.h"
#import "XCPSupport.h"
@implementation MonoLinkerSpecificationCS
- (NSArray*) computeDependenciesForFilePaths:(NSArray*)inputs
outputPath:(NSString*)output
inTargetBuildContext:(PBXTargetBuildContext*)context
{
// FILE* CSDumpFile = fopen( "/Users/susan/CSDumpFile.txt", "a");
// fprintf( CSDumpFile, "In Linker\n");
// compute output paths and nodes
output = [context expandedValueForString:output];
// fprintf( CSDumpFile, " - output = %s\n", [output cString]);
XCDependencyNode* outputNode = [context dependencyNodeForName:output];
XCDependencyCommand* depLink = [outputNode producerCommand];
NSString* OutputArgument = [NSString stringWithString:@"-out:"];
OutputArgument = [OutputArgument stringByAppendingString:output];
[depLink addArgument:OutputArgument];
[depLink addArgument:[context expandedValueForString:@"$(TARGET_TYPE)"]];
// fprintf( CSDumpFile, " Command is now: %s\n", [[depLink displayString] cString]);
// Anticipated file type(s)
PBXFileType* assemblyFileType = (PBXFileType*)[PBXFileType specificationForIdentifier:@"compiled.mono.library"];
NSEnumerator* AssembliesEnum = [[context linkedLibraryPaths] objectEnumerator];
NSString* Assembly;
while( (Assembly = [AssembliesEnum nextObject]) != nil)
{
Assembly = [context expandedValueForString:Assembly];
PBXFileType* type = [PBXFileType fileTypeForFileName:[Assembly lastPathComponent]];
if( [type isKindOfSpecification:assemblyFileType])
{
// Assembly file
// fprintf( CSDumpFile, " - Adding library file: %s\n", [Assembly cString]);
XCDependencyNode* libraryNode = [context dependencyNodeForName:Assembly createIfNeeded:YES];
[outputNode addDependedNode:libraryNode];
NSString* ReferenceEntry = [NSString stringWithFormat:@"%@%@", @"-reference:", Assembly];
[depLink addArgument:ReferenceEntry];
}
else
{
// fprintf( CSDumpFile, " - Skipping file %s of type %s\n", [Assembly cString], [[type identifier] cString]);
[context addDependencyAnalysisWarningMessageFormat:
@"warning: skipping file '%@' (unexpected file type '%@' in link phase)",
Assembly, [type identifier]];
}
}
// [context writeToGraphVizFileAtPath:@"/Users/susan/DumpDependency.dot"];
// fprintf( CSDumpFile, "---Completed Link\n");
// fclose( CSDumpFile);
return [NSArray arrayWithObject:outputNode];
}
- (BOOL)acceptsInputFileType:(id)type
{
// some types
PBXFileType* assemblyFileType = (PBXFileType*)[PBXFileType specificationForIdentifier:@"compiled.mono.library"];
PBXFileType* FileType = (PBXFileType*)type;
BOOL Result = [FileType isKindOfSpecification:assemblyFileType];
return Result;
}
@end

Просмотреть файл

@ -0,0 +1,14 @@
/*
INOCamlCommandOutputParser.h - OCamlPlugin
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import "XCPOutputParsing.h"
@interface MonoOutputParser : XCBuildCommandOutputParser
{
}
- (id)initWithNextOutputStream:(XCOutputStream*)nextOutputStream;
- (void)writeBytes:(const char *)data length:(unsigned int)length;
@end

Просмотреть файл

@ -0,0 +1,66 @@
/*
INOCamlCommandOutputParser.m - OCamlPlugin
Copyright 2005-2006 Damien Bobillot.
Distributed under the GPL licence.
History:
- 19/07/05: created by Damien Bobillot (damien.bobillot.2002_ocamlplugin@m4x.org)
- 20/08/05: add support for lex notice output
- 02/10/05: use Xcode's regex support instead of the POSIX regex.h library
*/
#import "MonoOutputParser.h"
#import "XCPSupport.h"
TSRegularExpression* __regex_error = nil;
TSRegularExpression* __regex_warning = nil;
@implementation MonoOutputParser
+ (void)initialize
{
__regex_error = [[TSRegularExpression alloc] initWithExpressionString:@"(.*)\\(([0-9]*),([0-9]*)\\): error (.*)"];
__regex_warning = [[TSRegularExpression alloc] initWithExpressionString:@"(.*)\\(([0-9]*),([0-9]*)\\): warning (.*)"];
}
- (id)initWithNextOutputStream:(XCOutputStream*)nextOutputStream
{
if((self = [super initWithNextOutputStream:nextOutputStream]) == nil) return nil;
return self;
}
- (void)writeBytes:(const char*)data length:(unsigned)length
{
NSString* line = [[[NSString alloc] initWithBytes:data length:length encoding:NSASCIIStringEncoding] autorelease];
NSArray* subexpressions;
if( nil != (subexpressions = [__regex_error subexpressionsForString:line]))
{
NSString* FilePath = [subexpressions objectAtIndex:1];
NSString* LineNumber = [subexpressions objectAtIndex:2];
NSString* ErrorText = [subexpressions objectAtIndex:4];
id SelfDelegate = [self delegate];
[SelfDelegate parser:self
foundMessageOfType:1
title:[ErrorText cString]
forFileAtPath:[FilePath cString]
lineNumber:[LineNumber intValue]];
}
else if( nil != (subexpressions = [__regex_warning subexpressionsForString:line]))
{
NSString* FilePath = [subexpressions objectAtIndex:1];
NSString* LineNumber = [subexpressions objectAtIndex:2];
NSString* ErrorText = [subexpressions objectAtIndex:4];
id SelfDelegate = [self delegate];
[SelfDelegate parser:self
foundMessageOfType:2
title:[ErrorText cString]
forFileAtPath:[FilePath cString]
lineNumber:[LineNumber intValue]];
}
[super writeBytes:data length:length];
}
@end

Просмотреть файл

@ -0,0 +1,13 @@
/*
MonoProductSpecificationCS.h - CSharpPlugin
Based heavily on:
MAProductTypeSpecificationGNAT.h - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import "XCPSpecifications.h"
@interface MonoProductSpecificationCS : XCProductTypeSpecification
@end

Просмотреть файл

@ -0,0 +1,28 @@
/*
MonoProductSpecificationCS.m
Based heavily on:
MAProductTypeSpecificationGNAT.m - AdaPlugin
Copyright 2006 Damien Bobillot.
Distributed under the GPL licence.
*/
#import "MonoProductSpecificationCS.h"
#import "XCPBuildSystem.h"
@implementation MonoProductSpecificationCS
- (void) initializeBuildSettingsInTargetBuildContext:(PBXTargetBuildContext*)context
{
}
- (XCLinkerSpecification*) linkerSpecificationForObjectFilesInTargetBuildContext:(PBXTargetBuildContext*)context
{
//
// TODO: Check the .NET version to be used: V1 => mcs; V2 => gmcs
//
// Use the gmcs compiler
XCLinkerSpecification* Result = [[XCLinkerSpecification specificationRegistry] objectForKey:@"com.mono.compilers.csharp.linker"];
return Result;
}
@end

Просмотреть файл

@ -0,0 +1,20 @@
{
Class = Native;
ProductType = "com.mono.product-type.executable";
Description = "Target for building an application that uses the Mono .NET environment";
CustomBuildSettings = {
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = "«PRODUCTNAME».exe";
EXECUTABLE_EXTENSION = "exe";
TARGET_TYPE = "-target:exe";
};
BuildPhases = (
{
Class = Sources;
},
{
Class = Frameworks;
},
);
}

Просмотреть файл

@ -0,0 +1,17 @@
{
Class = Native;
ProductType = "com.mono.product-type.library";
Description = "Target for building a mono assembly that can be linked to other assemblies";
CustomBuildSettings =
{
INSTALL_PATH = "$(HOME)/Applications";
PRODUCT_NAME = "«PRODUCTNAME».dll";
EXECUTABLE_EXTENSION = "dll";
TARGET_TYPE = "-target:library";
};
BuildPhases =
(
{ Class = Sources; },
{ Class = Frameworks; },
);
}