diff --git a/Documentation/ChangeLog b/Documentation/ChangeLog index f246e4b..442da09 100644 --- a/Documentation/ChangeLog +++ b/Documentation/ChangeLog @@ -1,3 +1,15 @@ +2007-07-19 Sergii Stoian + + * GNUmakefile.postamble: Cleanup old code. + * Headers/ProjectCenter/PCMakefileFacory.h: + * Framework/PCMakefileFacory.m: + (-createMakefileFroProject:): change argument type from + NSSrting to PCProject. Set installation path PCInstallDir + value. + * Modules/Projects/*/PC*Project.m: + (-writeMakefile): Adopt createMakefileForProject argument type + changes. + 2007-06-06 Sergii Stoian * GNUmakefile: Set GNUSTEP_INSTALLATION_DOMAIN to SYSTEM. diff --git a/Documentation/TODO b/Documentation/TODO index b1fbaa9..174650a 100644 --- a/Documentation/TODO +++ b/Documentation/TODO @@ -1,4 +1,4 @@ -TODO +TODO **** This is the GNUstep ProjectCenter TODO list. @@ -39,6 +39,7 @@ ProjectCenter 0.5 - Finish options handling stoyan - Parse gcc output [95% done!] - Display warnings,errors,options etc. as clickable list [done!] +- GNUstep make version 2.0 compliance stoyan - Finish FileNameIcon (draggable, files can be dragged to it) stoyan - Review all dialogs and situations when dialogs must be popped up stoyan @@ -46,20 +47,22 @@ ProjectCenter 0.5 ProjectCenter 0.6 ----------------- +- Better integration with other tools (GORM) ??? - Rewrite Preferences (3rd party sections etc.) stoyan - Add "Palette" project type stoyan - Add "Component" project type stoyan -- Create custom Info panel stoyan +- Create new Info panel stoyan - More options for file creation stoyan -- Implement Editor indentation stoyan -- Better integration with other tools (Gorm) stoyan +--- Project Editor + - Implement indentation stoyan + - Implement interaction with Builder (errors, warnings) stoyan +- New icons. Need volonteers!!! ??? ProjectCenter 0.7 ----------------- - An initial project wide find feature ??? - Implement support for integrated debugging ??? -- More project customisation possibilities ??? - CVS/SVN integration ??? ProjectCenter 0.8 diff --git a/Framework/PCMakefileFactory.m b/Framework/PCMakefileFactory.m index 6f0a414..91c11f5 100644 --- a/Framework/PCMakefileFactory.m +++ b/Framework/PCMakefileFactory.m @@ -57,11 +57,13 @@ static PCMakefileFactory *_factory = nil; return _factory; } -- (void)createMakefileForProject:(NSString *)prName +- (void)createMakefileForProject:(PCProject *)project { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSString *buildDir = [ud objectForKey:RootBuildDirectory]; + NSString *prName = [project projectName]; NSString *buildName = [prName stringByAppendingPathExtension:@"build"]; + NSString *instDir = [[project projectDict] objectForKey:PCInstallDir]; NSAssert(prName, @"No project name given!"); @@ -74,6 +76,22 @@ static PCMakefileFactory *_factory = nil; [mfile appendString:@"#\n"]; [mfile appendString:@"# GNUmakefile - Generated by ProjectCenter\n"]; [mfile appendString:@"#\n"]; + + if ([instDir isEqualToString:@"LOCAL"] || + [instDir isEqualToString:@"SYSTEM"] || + [instDir isEqualToString:@"USER"] || + [instDir isEqualToString:@"NETWORK"]) + { + [mfile appendString: + [NSString stringWithFormat:@"\nGNUSTEP_INSTALLATION_DOMAIN = %@\n", + instDir]]; + } + else if ([instDir isEqualToString:@""]) + { + [mfile appendString: + [NSString stringWithFormat:@"\nGNUSTEP_INSTALLATION_DOMAIN = LOCAL\n", + instDir]]; + } [mfile appendString:@"\ninclude $(GNUSTEP_MAKEFILES)/common.make\n"]; @@ -201,8 +219,8 @@ static PCMakefileFactory *_factory = nil; - (void)appendString:(NSString *)aString { - NSAssert( mfile, @"No valid makefile available!"); - NSAssert( aString, @"No valid string!"); + NSAssert(mfile, @"No valid makefile available!"); + NSAssert(aString, @"No valid string!"); [mfile appendString:aString]; } diff --git a/Framework/PCProjectBuilder.m b/Framework/PCProjectBuilder.m index 3ea9d89..5745c45 100644 --- a/Framework/PCProjectBuilder.m +++ b/Framework/PCProjectBuilder.m @@ -113,16 +113,16 @@ * 4 build Buttons */ [buildButton setToolTip:@"Build"]; -// [buildButton setImage:IMAGE(@"Build")]; + [buildButton setImage:IMAGE(@"Build")]; [cleanButton setToolTip:@"Clean"]; -// [cleanButton setImage:IMAGE(@"Clean")]; + [cleanButton setImage:IMAGE(@"Clean")]; [installButton setToolTip:@"Install"]; -// [installButton setImage:IMAGE(@"Install")]; + [installButton setImage:IMAGE(@"Install")]; [optionsButton setToolTip:@"Build Options"]; -// [optionsButton setImage:IMAGE(@"Options")]; + [optionsButton setImage:IMAGE(@"Options")]; [errorsCountField setStringValue:@""]; diff --git a/Framework/PCProjectInspector.m b/Framework/PCProjectInspector.m index f19ac86..85ad1b2 100644 --- a/Framework/PCProjectInspector.m +++ b/Framework/PCProjectInspector.m @@ -245,9 +245,9 @@ // editing with Enter key) - (void)controlTextDidEndEditing:(NSNotification *)aNotif { - NSControl *anObject = [aNotif object]; - id target = [anObject target]; - SEL action = [anObject action]; + NSControl *anObject = [aNotif object]; + id target = [anObject target]; + SEL action = [anObject action]; if ([anObject isKindOfClass:[PCFileNameField class]]) { diff --git a/Framework/PCProjectWindow.m b/Framework/PCProjectWindow.m index c5c287b..f5e637e 100644 --- a/Framework/PCProjectWindow.m +++ b/Framework/PCProjectWindow.m @@ -68,27 +68,27 @@ NSRect rect; [buildButton setToolTip:@"Project Builder"]; -// [buildButton setImage:IMAGE(@"Build")]; + [buildButton setImage:IMAGE(@"Build")]; [launchButton setToolTip:@"Project Launcher"]; -// [launchButton setImage:IMAGE(@"Run")]; + [launchButton setImage:IMAGE(@"Run")]; if (![project isExecutable]) { [launchButton setEnabled:NO]; } [loadedFilesButton setToolTip:@"Loaded Files"]; -// [loadedFilesButton setImage:IMAGE(@"Files")]; + [loadedFilesButton setImage:IMAGE(@"Files")]; if ([self hasLoadedFilesView]) { [loadedFilesButton setEnabled:NO]; } [findButton setToolTip:@"Project Finder"]; -// [findButton setImage:IMAGE(@"Find")]; + [findButton setImage:IMAGE(@"Find")]; [inspectorButton setToolTip:@"Project Inspector"]; -// [inspectorButton setImage:IMAGE(@"Inspector")]; + [inspectorButton setImage:IMAGE(@"Inspector")]; [fileIcon setFileNameField:fileIconTitle]; [fileIcon setDelegate:[project projectBrowser]]; diff --git a/GNUmakefile b/GNUmakefile index 6660400..f6236c0 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -24,7 +24,7 @@ ProjectCenter_APPLICATION_ICON = Images/ProjectCenter.tiff # Subprojects # SUBPROJECTS = \ - Framework \ + Framework \ Modules # diff --git a/GNUmakefile.postamble b/GNUmakefile.postamble index 44c0721..c48c075 100644 --- a/GNUmakefile.postamble +++ b/GNUmakefile.postamble @@ -20,38 +20,13 @@ # If not, write to the Free Software Foundation, # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#HEADER_LINK_DEPENDS=link-setup - -#before-all:: header-links +before-all:: before-install:: mkdir -p Framework/ProjectCenter.framework/Headers/Protocols cp -r Headers/Protocols/*.h Framework/ProjectCenter.framework/Headers/Protocols - + after-clean:: -# rm -rf ProjectCenter $(HEADER_LINK_DEPENDS) after-uninstall:: -# FIXME: Temporary solution to Library being in the wrong place - we really -# should just move the directory in CVS -#DO_HEADER_LINKS=no -#ifeq ($(GNUSTEP_TARGET_OS), mingw32) -# DO_HEADER_LINKS=yes -#endif -#ifeq ($(GNUSTEP_TARGET_OS), cygwin) -# DO_HEADER_LINKS=yes -#endif -#ifeq ($(DO_HEADER_LINKS), yes) -#header-links: $(HEADER_LINK_DEPENDS) -# -rm -rf ProjectCenter -# -mkdir ProjectCenter -# cp -f Library/*.h ProjectCenter -#else -#header-links: $(HEADER_LINK_DEPENDS) -# -rm -f ProjectCenter -# $(LN_S) Library ProjectCenter -#endif - -#$(HEADER_LINK_DEPENDS): -# touch $(HEADER_LINK_DEPENDS) diff --git a/Headers/ProjectCenter/PCMakefileFactory.h b/Headers/ProjectCenter/PCMakefileFactory.h index 951f638..bda3c77 100644 --- a/Headers/ProjectCenter/PCMakefileFactory.h +++ b/Headers/ProjectCenter/PCMakefileFactory.h @@ -38,7 +38,7 @@ + (PCMakefileFactory *)sharedFactory; -- (void)createMakefileForProject:(NSString *)prName; +- (void)createMakefileForProject:(PCProject *)project; - (BOOL)createPreambleForProject:(PCProject *)project; - (BOOL)createPostambleForProject:(PCProject *)project; diff --git a/Modules/Projects/Aggregate/PCAggregateProject.m b/Modules/Projects/Aggregate/PCAggregateProject.m index d2dae83..b462a37 100644 --- a/Modules/Projects/Aggregate/PCAggregateProject.m +++ b/Modules/Projects/Aggregate/PCAggregateProject.m @@ -146,7 +146,7 @@ [mf createPreambleForProject:self]; // Create the new file - [mf createMakefileForProject:projectName]; + [mf createMakefileForProject:self]; // Head [self appendHead:mf]; diff --git a/Modules/Projects/Application/PCAppProject.m b/Modules/Projects/Application/PCAppProject.m index 0760a08..78f3865 100644 --- a/Modules/Projects/Application/PCAppProject.m +++ b/Modules/Projects/Application/PCAppProject.m @@ -457,7 +457,7 @@ [mf createPreambleForProject:self]; // Create the new file - [mf createMakefileForProject:projectName]; + [mf createMakefileForProject:self]; // Head (Application) [self appendHead:mf]; diff --git a/Modules/Projects/Bundle/PCBundleProject.m b/Modules/Projects/Bundle/PCBundleProject.m index 12efa21..939ed6a 100644 --- a/Modules/Projects/Bundle/PCBundleProject.m +++ b/Modules/Projects/Bundle/PCBundleProject.m @@ -182,7 +182,7 @@ [mf createPreambleForProject:self]; // Create the new file - [mf createMakefileForProject:projectName]; + [mf createMakefileForProject:self]; // Head [self appendHead:mf]; diff --git a/Modules/Projects/Framework/PCFrameworkProject.m b/Modules/Projects/Framework/PCFrameworkProject.m index 1bf6996..5945a23 100644 --- a/Modules/Projects/Framework/PCFrameworkProject.m +++ b/Modules/Projects/Framework/PCFrameworkProject.m @@ -206,7 +206,7 @@ [mf createPreambleForProject:self]; // Create the new file - [mf createMakefileForProject:projectName]; + [mf createMakefileForProject:self]; // Head [self appendHead:mf]; diff --git a/Modules/Projects/Library/PCLibProject.m b/Modules/Projects/Library/PCLibProject.m index 1720eb3..0fea67c 100644 --- a/Modules/Projects/Library/PCLibProject.m +++ b/Modules/Projects/Library/PCLibProject.m @@ -214,7 +214,7 @@ [mf createPreambleForProject:self]; // Create the new file - [mf createMakefileForProject:projectName]; + [mf createMakefileForProject:self]; // Head [self appendHead:mf]; diff --git a/Modules/Projects/ResourceSet/PCResourceSetProject.m b/Modules/Projects/ResourceSet/PCResourceSetProject.m index 455db9a..b94fe2f 100644 --- a/Modules/Projects/ResourceSet/PCResourceSetProject.m +++ b/Modules/Projects/ResourceSet/PCResourceSetProject.m @@ -135,7 +135,7 @@ [mf createPreambleForProject:self]; // Create the new file - [mf createMakefileForProject:projectName]; + [mf createMakefileForProject:self]; // Head [self appendHead:mf]; diff --git a/Modules/Projects/Tool/PCToolProject.m b/Modules/Projects/Tool/PCToolProject.m index 637d0a1..5f206a4 100644 --- a/Modules/Projects/Tool/PCToolProject.m +++ b/Modules/Projects/Tool/PCToolProject.m @@ -283,7 +283,7 @@ [mf createPreambleForProject:self]; // Create the new file - [mf createMakefileForProject:projectName]; + [mf createMakefileForProject:self]; // Head [self appendHead:mf];