forked from gnustep/libs-xcode
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPBXVariantGroup.m
94 lines (80 loc) · 1.94 KB
/
PBXVariantGroup.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#import "PBXCommon.h"
#import "PBXVariantGroup.h"
#import "PBXGroup.h"
#import "PBXFileReference.h"
#import "GSXCBuildContext.h"
@implementation PBXVariantGroup
// Methods....
- (NSString *) sourceTree // getter
{
return sourceTree;
}
- (void) setSourceTree: (NSString *)object; // setter
{
ASSIGN(sourceTree,object);
}
- (NSString *) path // getter
{
return path;
}
- (void) setPath: (NSString *)object; // setter
{
ASSIGN(path,object);
}
- (NSMutableArray *) children // getter
{
return children;
}
- (void) setChildren: (NSMutableArray *)object; // setter
{
ASSIGN(children,object);
}
- (NSString *) name // getter
{
return name;
}
- (void) setName: (NSString *)object; // setter
{
ASSIGN(name,object);
}
- (NSString *) resolvePathFor: (id)object
withGroup: (PBXGroup *)group
found: (BOOL *)found
{
NSString *result = @"";
NSArray *chldren = [group children];
NSEnumerator *en = [chldren objectEnumerator];
id file = nil;
while((file = [en nextObject]) != nil && *found == NO)
{
if(file == self) // have we found ourselves??
{
PBXFileReference *fileRef = [[file children] objectAtIndex: 0]; // FIXME: Assume english for now...
NSString *filePath = ([fileRef path] == nil)?@"":[[fileRef path] lastPathComponent];
result = filePath;
*found = YES;
break;
}
else if([file isKindOfClass: [PBXGroup class]])
{
NSString *filePath = ([file path] == nil)?@"":[file path]; // lastPathComponent];
result = [filePath stringByAppendingPathComponent:
[self resolvePathFor: object
withGroup: file
found: found]];
}
}
return result;
}
- (NSString *) buildPath
{
PBXGroup *mainGroup = [[GSXCBuildContext sharedBuildContext] objectForKey: @"MAIN_GROUP"];
BOOL found = NO;
NSString *result = nil;
// Resolve path for the current file reference...
result = [self resolvePathFor: self
withGroup: mainGroup
found: &found];
return result;
}
@end