diff --git a/Documentation/TODO b/Documentation/TODO index 0f7c317..dbe2c2f 100644 --- a/Documentation/TODO +++ b/Documentation/TODO @@ -52,7 +52,10 @@ ProjectCenter 0.6 - Check all textfields if 'scrollable' attribute set [done!] - Rewrite Preferences (3rd party sections etc.) [done!] --- Project Builder -------------------------------------------- - - Finish parsing gcc output (make errors, etc.) stoyan + - Review build, compiler, linker options setting + (Build Options, Inspector) stoyan + - Finish parsing build output (compiler errors/warnings, + make errors, gnustep-make verbose mode) stoyan - Implement interaction with Editor (errors, warnings) stoyan --- Project Editor --------------------------------------------- - review situations when editor is opened stoyan @@ -60,13 +63,15 @@ ProjectCenter 0.6 - Implement interaction with Builder (errors, warnings) stoyan - Implement indentation stoyan - implement undo inside editor stoyan - - Add and use basic editor preferences (fonts, colors, sizes) [25% done] -- Think about imlementing pending adding/removal of files ??? + - Add and use basic editor preferences (fonts, colors, sizes) [50% done] - Split "Application" to "Application GORM" and - "Application Renaissance" project types ??? + "Application Renaissance" project types stoyan +- Review all sections of Project Inspector for correct + behaviour stoyan - Add "Palette" project type ??? - Add "Component" project type ??? - Process reported bugs ??? +- Think about imlementing pending adding/removal of files ??? - New icons. Need volonteers!!! ??? ProjectCenter 0.7 diff --git a/Framework/English.lproj/BuildAttributes.gorm/objects.gorm b/Framework/English.lproj/BuildAttributes.gorm/objects.gorm index 6506941..7e5afc8 100644 Binary files a/Framework/English.lproj/BuildAttributes.gorm/objects.gorm and b/Framework/English.lproj/BuildAttributes.gorm/objects.gorm differ diff --git a/Framework/PCProject.m b/Framework/PCProject.m index b4f376f..2f8a023 100644 --- a/Framework/PCProject.m +++ b/Framework/PCProject.m @@ -701,7 +701,18 @@ NSString - (NSArray *)buildTargets { - return [[self projectBundleInfoTable] objectForKey:@"BuildTargets"]; + NSArray *buildTargets = [projectDict objectForKey:PCBuilderTargets]; + + if (!buildTargets) + { + buildTargets = + [[self projectBundleInfoTable] objectForKey:@"BuildTargets"]; + [self setProjectDictObject:buildTargets + forKey:PCBuilderTargets + notify:NO]; + } + + return buildTargets; } - (NSArray *)sourceFileKeys diff --git a/Framework/PCProjectBuilder.m b/Framework/PCProjectBuilder.m index fd67534..cd10943 100644 --- a/Framework/PCProjectBuilder.m +++ b/Framework/PCProjectBuilder.m @@ -187,9 +187,9 @@ [errorOutput addTableColumn:errorColumn]; [errorOutput setDataSource:self]; [errorOutput setBackgroundColor:[NSColor colorWithDeviceRed:0.88 - green:0.76 - blue:0.60 - alpha:1.0]]; + green:0.76 + blue:0.60 + alpha:1.0]]; [errorOutput setDrawsGrid:NO]; [errorOutput setTarget:self]; [errorOutput setAction:@selector(errorItemClick:)]; @@ -206,8 +206,7 @@ /* * Log output */ - logScroll = [[NSScrollView alloc] - initWithFrame:NSMakeRect (0, 0, 480, 133)]; + logScroll = [[NSScrollView alloc] initWithFrame:NSMakeRect(0,0,480,133)]; [logScroll setHasHorizontalScroller:NO]; [logScroll setHasVerticalScroller:YES]; [logScroll setBorderType:NSBezelBorder]; @@ -237,9 +236,9 @@ * Split view */ [split addSubview:errorScroll]; - RELEASE (errorScroll); + RELEASE(errorScroll); [split addSubview:logScroll]; - RELEASE (logScroll); + RELEASE(logScroll); // [split adjustSubviews]; // [componentView addSubview:split]; @@ -532,11 +531,16 @@ } // Create root build directory if not exist - buildDir = [NSString stringWithFormat:@"%@.build", [project projectName]]; - buildDir = [rootBuildDir stringByAppendingPathComponent:buildDir]; - if (![fm fileExistsAtPath:rootBuildDir] || ![fm fileExistsAtPath:buildDir]) + if (rootBuildDir && ![rootBuildDir isEqualToString:@""]) { - [pcfm createDirectoriesIfNeededAtPath:buildDir]; + buildDir = [NSString + stringWithFormat:@"%@.build", [project projectName]]; + buildDir = [rootBuildDir stringByAppendingPathComponent:buildDir]; + if (![fm fileExistsAtPath:rootBuildDir] || + ![fm fileExistsAtPath:buildDir]) + { + [pcfm createDirectoriesIfNeededAtPath:buildDir]; + } } return YES; @@ -597,6 +601,11 @@ [makeTask setStandardOutput:logPipe]; [makeTask setStandardError:errorPipe]; + [self logString: + [NSString stringWithFormat:@"=== %@ started ===", buildStatusTarget] + error:NO + newLine:YES]; + NS_DURING { [makeTask launch]; diff --git a/Framework/PCProjectInspector.m b/Framework/PCProjectInspector.m index d98e47c..595ff99 100644 --- a/Framework/PCProjectInspector.m +++ b/Framework/PCProjectInspector.m @@ -377,6 +377,9 @@ // Table [searchOrderList setCornerView:nil]; [searchOrderList setHeaderView:nil]; + [searchOrderList setTarget:self]; + [searchOrderList setAction:@selector(searchOrderClick:)]; +// [searchOrderColumn setEditable:NO]; // Buttons [self setSearchOrderButtonsState]; @@ -390,15 +393,19 @@ { NSString *selectedTitle = [sender titleOfSelectedItem]; - if ([selectedTitle isEqualToString: @"Header Directories Search Order"]) + if ([selectedTitle isEqualToString:@"Header Directories Search Order"]) { ASSIGN(searchItems, searchHeaders); } - else if ([selectedTitle isEqualToString: @"Library Directories Search Order"]) + else if ([selectedTitle isEqualToString:@"Library Directories Search Order"]) { ASSIGN(searchItems, searchLibs); } - else + else if ([selectedTitle isEqualToString:@"Build Targets"]) + { + ASSIGN(searchItems,[project buildTargets]); + } + else { ASSIGN(searchItems,nil); } @@ -415,8 +422,6 @@ - (void)searchOrderClick:(id)sender { - // Warning! NSTableView doesn't call action method - // TODO: Fix NSTableView (NSCell/NSActionCell?) [self setSearchOrderButtonsState]; } @@ -425,8 +430,6 @@ // Disable until implemented [searchOrderSet setEnabled:NO]; - return; // See searchOrderClick - if ([searchOrderList selectedRow] == -1) { [searchOrderRemove setEnabled:NO]; @@ -472,17 +475,20 @@ pIndex = [searchOrderPopup indexOfSelectedItem]; switch (pIndex) { - case 0: + case 0: // Headers [project setProjectDictObject:searchItems forKey:PCSearchHeaders notify:YES]; break; - case 1: + case 1: // Libraries [project setProjectDictObject:searchItems forKey:PCSearchLibs notify:YES]; break; - case 2: + case 2: // Targets + [project setProjectDictObject:searchItems + forKey:PCBuilderTargets + notify:YES]; return; } } diff --git a/Headers/ProjectCenter/PCDefines.h b/Headers/ProjectCenter/PCDefines.h index 67d6fa8..48fed06 100644 --- a/Headers/ProjectCenter/PCDefines.h +++ b/Headers/ProjectCenter/PCDefines.h @@ -163,7 +163,7 @@ static NSString * const PCSearchHeaders = @"SEARCH_HEADER_DIRS"; static NSString * const PCSearchLibs = @"SEARCH_LIB_DIRS"; // Project Builder options -static NSString * const PCBuilderOptions = @"BUILDER_OPTIONS"; +static NSString * const PCBuilderTargets = @"BUILDER_TARGETS"; static NSString * const PCBuilderArguments = @"BUILDER_ARGS"; static NSString * const PCBuilderDebug = @"BUILDER_DEBUG"; static NSString * const PCBuilderStrip = @"BUILDER_STRIP";