From 5457ddb44fc7df0ac7d720b253746100937f914c Mon Sep 17 00:00:00 2001 From: Alexandre Wilhelm Date: Wed, 18 Nov 2015 13:09:39 -0800 Subject: [PATCH] Fixed: ignored compiled nib file of xcodecapp when having xcodecapp folder in a XcodeCapp project --- Tools/XcodeCapp/XcodeCapp/XCCCappuccinoProject.m | 9 ++++++++- Tools/XcodeCapp/XcodeCapp/XCCSourcesFinderOperation.m | 7 +++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Tools/XcodeCapp/XcodeCapp/XCCCappuccinoProject.m b/Tools/XcodeCapp/XcodeCapp/XCCCappuccinoProject.m index 81ef58dca..8cc491b89 100644 --- a/Tools/XcodeCapp/XcodeCapp/XCCCappuccinoProject.m +++ b/Tools/XcodeCapp/XcodeCapp/XCCCappuccinoProject.m @@ -16,7 +16,9 @@ static NSDictionary* XCCCappuccinoProjectDefaultSettings; static NSString * const XCCSlashReplacement = @"::"; static NSPredicate * XCCDirectoriesToIgnorePredicate = nil; +static NSPredicate * XCCXcodeCappNibToIgnorePredicate = nil; static NSString * const XCCDirectoriesToIgnorePattern = @"^(?:Build|F(?:rameworks|oundation)|AppKit|Objective-J|(?:Browser|CommonJS)\\.environment|XcodeSupport|.+\\.xcodeproj)$"; +static NSString * const XCCXcodeCappNibToIgnorePattern = @"^/Applications/XcodeCapp.app/.*$"; static NSArray *XCCCappuccinoProjectDefaultIgnoredPaths = nil; @@ -51,6 +53,7 @@ NSString * const XCCCappuccinoProjectLastEventIDKey = @"XCCCappuccinoPro NSNumber *appCompatibilityVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:XCCCompatibilityVersionKey]; XCCDirectoriesToIgnorePredicate = [NSPredicate predicateWithFormat:@"SELF matches %@", XCCDirectoriesToIgnorePattern]; + XCCXcodeCappNibToIgnorePredicate = [NSPredicate predicateWithFormat:@"SELF matches %@", XCCXcodeCappNibToIgnorePattern]; XCCCappuccinoProjectDefaultSettings = @{XCCCompatibilityVersionKey: appCompatibilityVersion, XCCCappuccinoProcessCappLintKey: @NO, @@ -129,7 +132,11 @@ NSString * const XCCCappuccinoProjectLastEventIDKey = @"XCCCappuccinoPro + (BOOL)pathMatchesIgnoredPaths:(NSString*)aPath cappuccinoProjectIgnoredPathPredicates:(NSMutableArray*)cappuccinoProjectIgnoredPathPredicates { BOOL ignore = NO; - + + // This is a bit tricky, is to avoid to fetch nib of a compiled XcodeCapp + if ([XCCXcodeCappNibToIgnorePredicate evaluateWithObject:aPath]) + return YES; + for (NSDictionary *ignoreInfo in cappuccinoProjectIgnoredPathPredicates) { BOOL matches = [ignoreInfo[@"predicate"] evaluateWithObject:aPath]; diff --git a/Tools/XcodeCapp/XcodeCapp/XCCSourcesFinderOperation.m b/Tools/XcodeCapp/XcodeCapp/XCCSourcesFinderOperation.m index b8c1d5102..d72357337 100644 --- a/Tools/XcodeCapp/XcodeCapp/XCCSourcesFinderOperation.m +++ b/Tools/XcodeCapp/XcodeCapp/XCCSourcesFinderOperation.m @@ -36,7 +36,7 @@ NSString * const XCCNeedSourceToProjectPathMappingNotification = @"XCCNeedSource #pragma mark - Utilities - (NSArray *)_findSourceFilesAtProjectPath:(NSString *)aProjectPath -{ +{ NSError *error = NULL; NSString *projectPath = [self.cappuccinoProject.projectPath stringByAppendingPathComponent:aProjectPath]; NSFileManager *fm = [NSFileManager defaultManager]; @@ -105,9 +105,8 @@ NSString * const XCCNeedSourceToProjectPathMappingNotification = @"XCCNeedSource } NSLog(@"%@: found directory. checking for source files: %@", self.cappuccinoProject.name, filename); - - if (![XCCCappuccinoProject pathMatchesIgnoredPaths:realPath cappuccinoProjectIgnoredPathPredicates:self.cappuccinoProject.ignoredPathPredicates]) - [sourcePaths addObjectsFromArray:[self _findSourceFilesAtProjectPath:projectRelativePath]]; + + [sourcePaths addObjectsFromArray:[self _findSourceFilesAtProjectPath:projectRelativePath]]; continue; }