diff --git a/ChangeLog b/ChangeLog index 722644a..71064a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2014-01-13 Riccardo Mottola + + * Framework/PCFileManager.m + * Headers/ProjectCenter/PCFileManager.h + Convenience method to find executables, by Richard Frith-Macdonald + + * Modules/Preferences/Build/PCBuildPrefs.m + * Modules/Preferences/Misc/PCMiscPrefs.m + Use the convenience method to determine better defaults for make and gdb. + 2013-12-17 Riccardo Mottola * Framework/PCProjectLauncher.m diff --git a/Modules/Preferences/Build/PCBuildPrefs.m b/Modules/Preferences/Build/PCBuildPrefs.m index 3359bd7..92ff7d1 100644 --- a/Modules/Preferences/Build/PCBuildPrefs.m +++ b/Modules/Preferences/Build/PCBuildPrefs.m @@ -63,10 +63,6 @@ - (void)dealloc { -#ifdef DEBUG - NSLog (@"PCBuildPrefs: dealloc"); -#endif - [[NSNotificationCenter defaultCenter] removeObserver:self]; RELEASE(buildingView); @@ -74,12 +70,28 @@ [super dealloc]; } + // Protocol - (void)readPreferences { - NSString *val; - BOOL bVal; - int state; + NSString *val; + BOOL bVal; + int state; + NSString *buildToolDefault; + PCFileManager *pcfm = [PCFileManager defaultManager]; + + /* some heuristic to find the best make default */ + buildToolDefault = [pcfm findExecutableToolFrom: + [NSArray arrayWithObjects: + @"usr/local/bin/gmake", + @"usr/bin/gmake", + @"usr/local/bin/make", + @"usr/bin/make", + @"bin/make", + nil]]; + + + NSLog(@"Build tool found: %@", buildToolDefault); val = [prefs stringForKey:SuccessSound defaultValue:@""]; [successField setStringValue:val]; @@ -89,8 +101,9 @@ val = [prefs stringForKey:RootBuildDirectory defaultValue:@""]; [rootBuildDirField setStringValue:val]; - val = [prefs stringForKey:BuildTool defaultValue:PCDefaultBuildTool]; - [buildToolField setStringValue:val]; + val = [prefs stringForKey:BuildTool defaultValue:buildToolDefault]; + if (val) + [buildToolField setStringValue:val]; bVal = [prefs boolForKey:DeleteCacheWhenQuitting defaultValue:YES]; state = bVal ? NSOnState : NSOffState; diff --git a/Modules/Preferences/Misc/PCMiscPrefs.m b/Modules/Preferences/Misc/PCMiscPrefs.m index c67ded0..7ecd726 100644 --- a/Modules/Preferences/Misc/PCMiscPrefs.m +++ b/Modules/Preferences/Misc/PCMiscPrefs.m @@ -63,10 +63,6 @@ - (void)dealloc { -#ifdef DEBUG - NSLog (@"PCMiscPrefs: dealloc"); -#endif - [[NSNotificationCenter defaultCenter] removeObserver:self]; RELEASE(miscView); @@ -80,6 +76,17 @@ NSString *val; BOOL bVal; int state; + NSString *debuggerToolDefault; + PCFileManager *pcfm = [PCFileManager defaultManager]; + + /* some heuristic to find the best debugger default */ + debuggerToolDefault = [pcfm findExecutableToolFrom: + [NSArray arrayWithObjects: + @"usr/local/bin/gdb", + @"usr/bin/gdb", + @"bin/gdb", + nil]]; + NSLog(@"Debugger tool found: %@", debuggerToolDefault); bVal = [prefs boolForKey:PromptOnQuit defaultValue:YES]; state = bVal ? NSOnState : NSOffState; @@ -101,8 +108,9 @@ state = bVal ? NSOnState : NSOffState; [useTearOffWindows setState:state]; - val = [prefs stringForKey:Debugger defaultValue:PCDefaultDebugger]; - [debuggerField setStringValue:val]; + val = [prefs stringForKey:Debugger defaultValue:debuggerToolDefault]; + if (val) + [debuggerField setStringValue:val]; val = [prefs stringForKey:Editor defaultValue:@"ProjectCenter"]; [editorField setStringValue:val];