* Framework/PCProjectBuilder.m: Add some comments

(parseCompilerLine:): Implemented gcc output for compiling and linking.
Set currentBuildFile var on file compilation.
(cleanupAfterMake),(build:),(parseBuildLine:),(buildDidTerminate): Update 
status field of builder panel and project window.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@28126 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Sergii Stoian 2009-03-24 00:47:32 +00:00
parent baa1cfbd35
commit 9515b6703f
3 changed files with 63 additions and 16 deletions

View file

@ -1,3 +1,11 @@
2009-03-24 Sergii Stoian <stoyan255@gmail.com>
* Framework/PCProjectBuilder.m: Add some comments
(parseCompilerLine:): Implemented gcc output for compiling and
linking. Set currentBuildFile var on file compilation.
(cleanupAfterMake),(build:),(parseBuildLine:),(buildDidTerminate):
Update status field of builder panel and project window
2009-03-23 Sergii Stoian <stoyan255@gmail.com> 2009-03-23 Sergii Stoian <stoyan255@gmail.com>
* Framework/PCProjectBuilder.m: Change type of currentBuildPath var * Framework/PCProjectBuilder.m: Change type of currentBuildPath var

View file

@ -33,6 +33,7 @@
#import <ProjectCenter/PCProjectManager.h> #import <ProjectCenter/PCProjectManager.h>
#import <ProjectCenter/PCProject.h> #import <ProjectCenter/PCProject.h>
#import <ProjectCenter/PCProjectWindow.h>
#import <ProjectCenter/PCProjectBuilder.h> #import <ProjectCenter/PCProjectBuilder.h>
#import <ProjectCenter/PCProjectBuilderOptions.h> #import <ProjectCenter/PCProjectBuilderOptions.h>
@ -451,10 +452,14 @@
- (void)cleanupAfterMake - (void)cleanupAfterMake
{ {
NSString *statusString;
if (_isBuilding || _isCleaning) if (_isBuilding || _isCleaning)
{ {
[statusField setStringValue:[NSString stringWithFormat: statusString =[NSString stringWithFormat:
@"%@ - %@ terminated", [project projectName], buildStatusTarget]]; @"%@ - %@ terminated", [project projectName], buildStatusTarget];
[statusField setStringValue:statusString];
[[project projectWindow] updateStatusLineWithText:statusString];
} }
// Restore buttons state // Restore buttons state
@ -591,6 +596,7 @@
warningsCount = 0; warningsCount = 0;
[statusField setStringValue:buildStatus]; [statusField setStringValue:buildStatus];
[[project projectWindow] updateStatusLineWithText:buildStatus];
// Run make task // Run make task
[logOutput setString:@""]; [logOutput setString:@""];
@ -696,6 +702,7 @@
} }
} }
[statusField setStringValue:statusString]; [statusField setStringValue:statusString];
[[project projectWindow] updateStatusLineWithText:statusString];
[self logBuildString:logString newLine:YES]; [self logBuildString:logString newLine:YES];
// Run post process if configured // Run post process if configured
@ -846,7 +853,7 @@
{ {
[self logErrorString:lineString]; [self logErrorString:lineString];
} }
else else // Cleaning or building output string
{ {
[self logBuildString:lineString newLine:NO]; [self logBuildString:lineString newLine:NO];
} }
@ -943,8 +950,29 @@
NSLog(@"Current build path: %@", currentBuildPath); NSLog(@"Current build path: %@", currentBuildPath);
} }
- (void)parseCompilerLine:(NSString *)lineString // Should return:
// 'Compiling ...'
// 'Linking ...'
// Also updates currentBuildFile
- (NSString *)parseCompilerLine:(NSString *)lineString
{ {
NSArray *lineComponents = [self componentsOfLine:lineString];
NSString *outputString = nil;
if ([lineComponents containsObject:@"-c"])
{
[currentBuildFile setString:[lineComponents objectAtIndex:1]];
outputString = [NSString
stringWithFormat:@" Compiling %@...\n", currentBuildFile];
}
else if ([lineComponents containsObject:@"-rdynamic"])
{
outputString = [NSString
stringWithFormat:@" Linking %@...\n",
[lineComponents objectAtIndex:[lineComponents indexOfObject:@"-o"]+1]];
}
return outputString;
} }
// --- Parsing utilities end // --- Parsing utilities end
@ -986,12 +1014,14 @@
- (NSString *)parseBuildLine:(NSString *)string - (NSString *)parseBuildLine:(NSString *)string
{ {
NSArray *components = [self componentsOfLine:string]; NSArray *components = [self componentsOfLine:string];
NSString *parsedString = nil;
if (!components) if (!components)
{ {
return nil; return nil;
} }
// Do current path detection
if ([self line:string startsWithString:@"gmake"] || if ([self line:string startsWithString:@"gmake"] ||
[self line:string startsWithString:@"make"]) [self line:string startsWithString:@"make"])
{ {
@ -999,28 +1029,35 @@
} }
else if ([self line:string startsWithString:@"gcc"]) else if ([self line:string startsWithString:@"gcc"])
{ {
[self parseCompilerLine:string]; parsedString = [self parseCompilerLine:string];
// Should return:
// 'Compiling ...'
// 'Linking ...'
// 'Creating ...'
// 'Copying ...'
} }
else if ([self line:string startsWithString:@"Making all"] || else if ([self line:string startsWithString:@"Making all"] ||
[self line:string startsWithString:@"==="]) [self line:string startsWithString:@"==="])
{ {
NSLog(@"%@", string); parsedString = string;
return string;
} }
// return nil; if (parsedString && ![self line:parsedString startsWithString:@"==="])
{
[statusField setStringValue:parsedString];
[[project projectWindow] updateStatusLineWithText:parsedString];
}
if (verboseBuilding)
{
return string; return string;
} }
else
{
return parsedString;
}
}
@end @end
@implementation PCProjectBuilder (ErrorLogging) @implementation PCProjectBuilder (ErrorLogging)
// Entry point for error logging
- (void)logErrorString:(NSString *)string - (void)logErrorString:(NSString *)string
{ {
NSArray *items; NSArray *items;
@ -1034,6 +1071,7 @@
} }
} }
// Used for warning or error message retrieval
- (NSString *)lineTail:(NSString*)line afterString:(NSString*)string - (NSString *)lineTail:(NSString*)line afterString:(NSString*)string
{ {
NSRange substrRange; NSRange substrRange;
@ -1242,6 +1280,7 @@
return items; return items;
} }
// --- Error output table delegate methods
- (int)numberOfRowsInTableView:(NSTableView *)aTableView - (int)numberOfRowsInTableView:(NSTableView *)aTableView
{ {
if (errorArray != nil && aTableView == errorOutput) if (errorArray != nil && aTableView == errorOutput)

View file

@ -146,7 +146,7 @@ typedef enum _ErrorLevel {
- (BOOL)line:(NSString *)lineString startsWithString:(NSString *)substring; - (BOOL)line:(NSString *)lineString startsWithString:(NSString *)substring;
- (NSArray *)componentsOfLine:(NSString *)lineString; - (NSArray *)componentsOfLine:(NSString *)lineString;
- (void)parseMakeLine:(NSString *)lineString; - (void)parseMakeLine:(NSString *)lineString;
- (void)parseCompilerLine:(NSString *)lineString; - (NSString *)parseCompilerLine:(NSString *)lineString;
- (void)logBuildString:(NSString *)string newLine:(BOOL)newLine; - (void)logBuildString:(NSString *)string newLine:(BOOL)newLine;
- (NSString *)parseBuildLine:(NSString *)string; - (NSString *)parseBuildLine:(NSString *)string;