Wrote a tool for testing plist schemata.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@1111 127b21dd-08f5-0310-b4b7-95ae10353056
This commit is contained in:
Jens Ayton 2007-07-28 18:53:04 +00:00
parent 1b66670b7d
commit 069571302d
3 changed files with 555 additions and 0 deletions

View File

@ -0,0 +1,251 @@
/*
plistSchemaValidator
Test rig for OOPListSchemaVerifier, and also a tool for checking plists
against schemata.
Usage: first argument should be a plist specifying a schema. Subsequent
arguments are files to test against the schema.
Build requirements:
* Foundation
* OOPListSchemaVerifier
* OOLogging
- OOLogOutputHandler (currently Mac-only)
- OOAsyncQueue
* OOCollectionExtractors
- OOStringParsing.m
- OOMaths, OOVector, OOQuaternion
- OOFastArithmetic.m (currently PPC-only)
* legacy_random.c
*/
#import <stdlib.h>
#import <Foundation/Foundation.h>
#import "OOPListSchemaVerifier.h"
#import "OOLogging.h"
#import "OOMaths.h"
static void RegisterPhonyDefaults(void);
static OOPListSchemaVerifier *GetVerifier(const char *path);
static void Verify(OOPListSchemaVerifier *verifier, const char *path);
static id ReadPList(const char *path);
int main(int argc, const char * argv[])
{
NSAutoreleasePool *pool = nil;
OOPListSchemaVerifier *verifier = nil;
unsigned i;
[[NSAutoreleasePool alloc] init];
RegisterPhonyDefaults();
OOLoggingInit();
if (argc < 3)
{
OOLog(@"badUsage", @"Usage: %s schema file [, file...]", argc ? argv[0] : "plistschemaverifier");
return EXIT_FAILURE;
}
verifier = GetVerifier(argv[1]);
for (i = 2; i != argc; ++i)
{
pool = [[NSAutoreleasePool alloc] init];
Verify(verifier, argv[i]);
[pool release];
}
return EXIT_SUCCESS;
}
static void RegisterPhonyDefaults(void)
{
NSDictionary *defaults = nil;
defaults = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:NO], @"logging-show-class",
[NSNumber numberWithBool:YES], @"logging-echo-to-stderr",
nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
}
static OOPListSchemaVerifier *GetVerifier(const char *path)
{
id schema = nil;
OOPListSchemaVerifier *verifier = nil;
schema = ReadPList(path);
if (schema == nil)
{
OOLog(@"badSchema", @"Could not read schema.");
exit(EXIT_FAILURE);
}
verifier = [OOPListSchemaVerifier verifierWithSchema:schema];
if (verifier == nil)
{
OOLog(@"badSchema", @"Could not interpret %s as a schema.", path);
exit(EXIT_FAILURE);
}
return verifier;
}
static void Verify(OOPListSchemaVerifier *verifier, const char *path)
{
id plist = nil;
NSString *name = nil;
plist = ReadPList(path);
if (plist != nil)
{
name = [NSString stringWithUTF8String:path];
if (name == nil) name = [NSString stringWithCString:path];
name = [name lastPathComponent];
OOLog(@"verifying", @"Verifying %@:", name);
OOLogIndent();
if ([verifier verifyPropertyList:plist named:name])
{
OOLog(@"verifying.success", @"OK.");
}
OOLogOutdent();
}
}
static id ReadPList(const char *path)
{
NSString *nsPath = nil;
NSData *data = nil;
id result = nil;
NSString *error = nil;
nsPath = [NSString stringWithUTF8String:path];
if (nsPath == nil) nsPath = [NSString stringWithCString:path];
if (nsPath == nil)
{
OOLog(@"badPath", @"Could not interpret \"%s\" as a path.", path);
exit(EXIT_FAILURE);
}
data = [[NSData alloc] initWithContentsOfFile:nsPath];
if (data == nil)
{
OOLog(@"readError", @"Could not read %@.", nsPath);
exit(EXIT_FAILURE);
}
result = [NSPropertyListSerialization propertyListFromData:data
mutabilityOption:NSPropertyListImmutable
format:NULL
errorDescription:&error];
[data release];
if (result == nil)
{
OOLog(@"badPList", @"Could not interpret contents of %@ as a property list: %@.", nsPath, error);
}
return result;
}
/****** Shims *******
Everything beyond this point is stuff that's needed to link, but whose full
behaviour is not needed.
*/
@interface ResourceManager: NSObject
+ (NSArray *)rootPaths;
@end
@implementation ResourceManager
+ (NSArray *)rootPaths
{
return [NSArray array];
}
@end
NSDictionary *OODictionaryFromFile(NSString *path)
{
return [NSDictionary dictionaryWithContentsOfFile:path];
}
static NSString * const kOOLogStringVectorConversion = @"strings.conversion.vector";
static NSString * const kOOLogStringQuaternionConversion = @"strings.conversion.quaternion";
BOOL ScanVectorFromString(NSString *xyzString, Vector *outVector)
{
GLfloat xyz[] = {0.0, 0.0, 0.0};
int i = 0;
NSString *error = nil;
NSScanner *scanner = nil;
if (xyzString == nil) return NO;
else if (outVector == NULL) error = @"nil result pointer";
if (!error) scanner = [NSScanner scannerWithString:xyzString];
while (![scanner isAtEnd] && i < 3 && !error)
{
if (![scanner scanFloat:&xyz[i++]]) error = @"could not scan a float value.";
}
if (!error && i < 3) error = @"found less than three float values.";
if (!error)
{
*outVector = make_vector(xyz[0], xyz[1], xyz[2]);
return YES;
}
else
{
OOLog(kOOLogStringVectorConversion, @"***** ERROR cannot make vector from '%@': %@", xyzString, error);
return NO;
}
}
BOOL ScanQuaternionFromString(NSString *wxyzString, Quaternion *outQuaternion)
{
GLfloat wxyz[] = {1.0, 0.0, 0.0, 0.0};
int i = 0;
NSString *error = nil;
NSScanner *scanner = nil;
if (wxyzString == nil) return NO;
else if (outQuaternion == NULL) error = @"nil result pointer";
if (!error) scanner = [NSScanner scannerWithString:wxyzString];
while (![scanner isAtEnd] && i < 4 && !error)
{
if (![scanner scanFloat:&wxyz[i++]]) error = @"could not scan a float value.";
}
if (!error && i < 4) error = @"found less than four float values.";
if (!error)
{
outQuaternion->w = wxyz[0];
outQuaternion->x = wxyz[1];
outQuaternion->y = wxyz[2];
outQuaternion->z = wxyz[3];
quaternion_normalize(outQuaternion);
return YES;
}
else
{
OOLog(kOOLogStringQuaternionConversion, @"***** ERROR cannot make quaternion from '%@': %@", wxyzString, error);
return NO;
}
}

View File

@ -0,0 +1,297 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {
/* Begin PBXBuildFile section */
1A2F5E230C5BB9C7003872C8 /* OOPListSchemaVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5E210C5BB9C7003872C8 /* OOPListSchemaVerifier.m */; };
1A2F5E240C5BB9C7003872C8 /* OOPListSchemaVerifier.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E220C5BB9C7003872C8 /* OOPListSchemaVerifier.h */; };
1A2F5E260C5BB9D3003872C8 /* plistschema.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E250C5BB9D3003872C8 /* plistschema.plist */; };
1A2F5E280C5BB9D9003872C8 /* plist verifier design.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E270C5BB9D9003872C8 /* plist verifier design.txt */; };
1A2F5E2B0C5BB9E4003872C8 /* OOLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5E290C5BB9E4003872C8 /* OOLogging.m */; };
1A2F5E2C0C5BB9E4003872C8 /* OOLogging.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E2A0C5BB9E4003872C8 /* OOLogging.h */; };
1A2F5E4D0C5BC04F003872C8 /* OOCollectionExtractors.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5E4B0C5BC04F003872C8 /* OOCollectionExtractors.m */; };
1A2F5E4E0C5BC04F003872C8 /* OOCollectionExtractors.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E4C0C5BC04F003872C8 /* OOCollectionExtractors.h */; };
1A2F5E660C5BC20E003872C8 /* OOLogOutputHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5E640C5BC20E003872C8 /* OOLogOutputHandler.m */; };
1A2F5E670C5BC20E003872C8 /* OOLogOutputHandler.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E650C5BC20E003872C8 /* OOLogOutputHandler.h */; };
1A2F5E720C5BC29F003872C8 /* OOVector.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5E6D0C5BC29F003872C8 /* OOVector.m */; };
1A2F5E730C5BC29F003872C8 /* OOVector.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E6E0C5BC29F003872C8 /* OOVector.h */; };
1A2F5E740C5BC29F003872C8 /* OOMaths.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E6F0C5BC29F003872C8 /* OOMaths.h */; };
1A2F5E750C5BC29F003872C8 /* OOQuaternion.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5E700C5BC29F003872C8 /* OOQuaternion.m */; };
1A2F5E760C5BC29F003872C8 /* OOQuaternion.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5E710C5BC29F003872C8 /* OOQuaternion.h */; };
1A2F5EB40C5BC3A6003872C8 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A2F5EB30C5BC3A6003872C8 /* Carbon.framework */; };
1A2F5F500C5BC3B1003872C8 /* OOAsyncQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5F4E0C5BC3B1003872C8 /* OOAsyncQueue.m */; };
1A2F5F510C5BC3B1003872C8 /* OOAsyncQueue.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5F4F0C5BC3B1003872C8 /* OOAsyncQueue.h */; };
1A2F5F5B0C5BC3F3003872C8 /* legacy_random.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1A2F5F590C5BC3F3003872C8 /* legacy_random.h */; };
1A2F5F5C0C5BC3F3003872C8 /* legacy_random.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5F5A0C5BC3F3003872C8 /* legacy_random.c */; };
1A2F5F620C5BC414003872C8 /* OOFastArithmetic.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2F5F610C5BC414003872C8 /* OOFastArithmetic.m */; };
8DD76F9A0486AA7600D96B5E /* plistShemaValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* plistShemaValidator.m */; settings = {ATTRIBUTES = (); }; };
8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
8DD76F9E0486AA7600D96B5E /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 8;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
1A2F5E240C5BB9C7003872C8 /* OOPListSchemaVerifier.h in CopyFiles */,
1A2F5E260C5BB9D3003872C8 /* plistschema.plist in CopyFiles */,
1A2F5E280C5BB9D9003872C8 /* plist verifier design.txt in CopyFiles */,
1A2F5E2C0C5BB9E4003872C8 /* OOLogging.h in CopyFiles */,
1A2F5E4E0C5BC04F003872C8 /* OOCollectionExtractors.h in CopyFiles */,
1A2F5E670C5BC20E003872C8 /* OOLogOutputHandler.h in CopyFiles */,
1A2F5E730C5BC29F003872C8 /* OOVector.h in CopyFiles */,
1A2F5E740C5BC29F003872C8 /* OOMaths.h in CopyFiles */,
1A2F5E760C5BC29F003872C8 /* OOQuaternion.h in CopyFiles */,
1A2F5F510C5BC3B1003872C8 /* OOAsyncQueue.h in CopyFiles */,
1A2F5F5B0C5BC3F3003872C8 /* legacy_random.h in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 1;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
08FB7796FE84155DC02AAC07 /* plistShemaValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = plistShemaValidator.m; sourceTree = "<group>"; };
08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
1A2F5E210C5BB9C7003872C8 /* OOPListSchemaVerifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OOPListSchemaVerifier.m; path = OXPVerifier/OOPListSchemaVerifier.m; sourceTree = "<group>"; };
1A2F5E220C5BB9C7003872C8 /* OOPListSchemaVerifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OOPListSchemaVerifier.h; path = OXPVerifier/OOPListSchemaVerifier.h; sourceTree = "<group>"; };
1A2F5E250C5BB9D3003872C8 /* plistschema.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; name = plistschema.plist; path = OXPVerifier/plistschema.plist; sourceTree = "<group>"; };
1A2F5E270C5BB9D9003872C8 /* plist verifier design.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "plist verifier design.txt"; path = "OXPVerifier/plist verifier design.txt"; sourceTree = "<group>"; };
1A2F5E290C5BB9E4003872C8 /* OOLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OOLogging.m; sourceTree = "<group>"; };
1A2F5E2A0C5BB9E4003872C8 /* OOLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OOLogging.h; sourceTree = "<group>"; };
1A2F5E4B0C5BC04F003872C8 /* OOCollectionExtractors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OOCollectionExtractors.m; sourceTree = "<group>"; };
1A2F5E4C0C5BC04F003872C8 /* OOCollectionExtractors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OOCollectionExtractors.h; sourceTree = "<group>"; };
1A2F5E640C5BC20E003872C8 /* OOLogOutputHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OOLogOutputHandler.m; path = ../../src/Cocoa/OOLogOutputHandler.m; sourceTree = SOURCE_ROOT; };
1A2F5E650C5BC20E003872C8 /* OOLogOutputHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OOLogOutputHandler.h; path = ../../src/Cocoa/OOLogOutputHandler.h; sourceTree = SOURCE_ROOT; };
1A2F5E6D0C5BC29F003872C8 /* OOVector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OOVector.m; sourceTree = "<group>"; };
1A2F5E6E0C5BC29F003872C8 /* OOVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OOVector.h; sourceTree = "<group>"; };
1A2F5E6F0C5BC29F003872C8 /* OOMaths.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OOMaths.h; sourceTree = "<group>"; };
1A2F5E700C5BC29F003872C8 /* OOQuaternion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OOQuaternion.m; sourceTree = "<group>"; };
1A2F5E710C5BC29F003872C8 /* OOQuaternion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OOQuaternion.h; sourceTree = "<group>"; };
1A2F5EB30C5BC3A6003872C8 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
1A2F5F4E0C5BC3B1003872C8 /* OOAsyncQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OOAsyncQueue.m; sourceTree = "<group>"; };
1A2F5F4F0C5BC3B1003872C8 /* OOAsyncQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OOAsyncQueue.h; sourceTree = "<group>"; };
1A2F5F590C5BC3F3003872C8 /* legacy_random.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = legacy_random.h; sourceTree = "<group>"; };
1A2F5F5A0C5BC3F3003872C8 /* legacy_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = legacy_random.c; sourceTree = "<group>"; };
1A2F5F610C5BC414003872C8 /* OOFastArithmetic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OOFastArithmetic.m; sourceTree = "<group>"; };
32A70AAB03705E1F00C91783 /* plistShemaValidator_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plistShemaValidator_Prefix.pch; sourceTree = "<group>"; };
8DD76FA10486AA7600D96B5E /* plistShemaValidator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = plistShemaValidator; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8DD76F9B0486AA7600D96B5E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */,
1A2F5EB40C5BC3A6003872C8 /* Carbon.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
08FB7794FE84155DC02AAC07 /* plistShemaValidator */ = {
isa = PBXGroup;
children = (
08FB7795FE84155DC02AAC07 /* Source */,
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
1AB674ADFE9D54B511CA2CBB /* Products */,
);
name = plistShemaValidator;
sourceTree = "<group>";
};
08FB7795FE84155DC02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
32A70AAB03705E1F00C91783 /* plistShemaValidator_Prefix.pch */,
08FB7796FE84155DC02AAC07 /* plistShemaValidator.m */,
1A2F5E1E0C5BB9A5003872C8 /* Oolite bits */,
);
name = Source;
sourceTree = "<group>";
};
08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
1A2F5EB30C5BC3A6003872C8 /* Carbon.framework */,
08FB779EFE84155DC02AAC07 /* Foundation.framework */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
};
1A2F5E1E0C5BB9A5003872C8 /* Oolite bits */ = {
isa = PBXGroup;
children = (
1A2F5E220C5BB9C7003872C8 /* OOPListSchemaVerifier.h */,
1A2F5E210C5BB9C7003872C8 /* OOPListSchemaVerifier.m */,
1A2F5E250C5BB9D3003872C8 /* plistschema.plist */,
1A2F5E270C5BB9D9003872C8 /* plist verifier design.txt */,
1A2F5E2A0C5BB9E4003872C8 /* OOLogging.h */,
1A2F5E290C5BB9E4003872C8 /* OOLogging.m */,
1A2F5E640C5BC20E003872C8 /* OOLogOutputHandler.m */,
1A2F5E650C5BC20E003872C8 /* OOLogOutputHandler.h */,
1A2F5E4C0C5BC04F003872C8 /* OOCollectionExtractors.h */,
1A2F5E4B0C5BC04F003872C8 /* OOCollectionExtractors.m */,
1A2F5E6D0C5BC29F003872C8 /* OOVector.m */,
1A2F5E6E0C5BC29F003872C8 /* OOVector.h */,
1A2F5E6F0C5BC29F003872C8 /* OOMaths.h */,
1A2F5F610C5BC414003872C8 /* OOFastArithmetic.m */,
1A2F5E700C5BC29F003872C8 /* OOQuaternion.m */,
1A2F5E710C5BC29F003872C8 /* OOQuaternion.h */,
1A2F5F4E0C5BC3B1003872C8 /* OOAsyncQueue.m */,
1A2F5F4F0C5BC3B1003872C8 /* OOAsyncQueue.h */,
1A2F5F590C5BC3F3003872C8 /* legacy_random.h */,
1A2F5F5A0C5BC3F3003872C8 /* legacy_random.c */,
);
name = "Oolite bits";
path = ../../src/Core;
sourceTree = "<group>";
};
1AB674ADFE9D54B511CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8DD76FA10486AA7600D96B5E /* plistShemaValidator */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8DD76F960486AA7600D96B5E /* plistShemaValidator */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "plistShemaValidator" */;
buildPhases = (
8DD76F990486AA7600D96B5E /* Sources */,
8DD76F9B0486AA7600D96B5E /* Frameworks */,
8DD76F9E0486AA7600D96B5E /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = plistShemaValidator;
productInstallPath = "$(HOME)/bin";
productName = plistShemaValidator;
productReference = 8DD76FA10486AA7600D96B5E /* plistShemaValidator */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
08FB7793FE84155DC02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "plistShemaValidator" */;
hasScannedForEncodings = 1;
mainGroup = 08FB7794FE84155DC02AAC07 /* plistShemaValidator */;
projectDirPath = "";
targets = (
8DD76F960486AA7600D96B5E /* plistShemaValidator */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
8DD76F990486AA7600D96B5E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8DD76F9A0486AA7600D96B5E /* plistShemaValidator.m in Sources */,
1A2F5E230C5BB9C7003872C8 /* OOPListSchemaVerifier.m in Sources */,
1A2F5E2B0C5BB9E4003872C8 /* OOLogging.m in Sources */,
1A2F5E4D0C5BC04F003872C8 /* OOCollectionExtractors.m in Sources */,
1A2F5E660C5BC20E003872C8 /* OOLogOutputHandler.m in Sources */,
1A2F5E720C5BC29F003872C8 /* OOVector.m in Sources */,
1A2F5E750C5BC29F003872C8 /* OOQuaternion.m in Sources */,
1A2F5F500C5BC3B1003872C8 /* OOAsyncQueue.m in Sources */,
1A2F5F5C0C5BC3F3003872C8 /* legacy_random.c in Sources */,
1A2F5F620C5BC414003872C8 /* OOFastArithmetic.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
1DEB927508733DD40010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = plistShemaValidator_Prefix.pch;
INSTALL_PATH = "$(HOME)/bin";
PRODUCT_NAME = plistShemaValidator;
ZERO_LINK = YES;
};
name = Debug;
};
1DEB927608733DD40010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
);
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = plistShemaValidator_Prefix.pch;
INSTALL_PATH = "$(HOME)/bin";
PRODUCT_NAME = plistShemaValidator;
};
name = Release;
};
1DEB927908733DD40010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Debug;
};
1DEB927A08733DD40010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "plistShemaValidator" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1DEB927508733DD40010E9CD /* Debug */,
1DEB927608733DD40010E9CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "plistShemaValidator" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1DEB927908733DD40010E9CD /* Debug */,
1DEB927A08733DD40010E9CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
}

View File

@ -0,0 +1,7 @@
//
// Prefix header for all source files of the 'plistShemaValidator' target in the 'plistShemaValidator' project.
//
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#endif