/* PBExecutableLocation.h created by luke on Sun 28-Sep-1997 */

// This bundle is yet another addition for the OmniMake build system.  OmniMake relocates
// executable products to the $OMNI_BUILD_OUTPUT_DIR.  Since PB isn't aware of the system,
// it won't know where the executable is and therefore the graphical debugger won't be
// able to launch the program.
//
// You can solve this by manually specifying the executable location, but some people find
// that too irritating to trouble themselves with.  So, in theory, this bundle takes care
// of everything for you.
//
// The unfortunate part is: Apple has a bug in their bundle host architecture which makes
// this not work.  When they post the "PBProjectWillOpenNotification", they pass 'nil' as
// the notification object.  Not very useful.  A previous version of this bundle had a
// workaround where I swizzled some methods, smacked some notifications, and made everything
// happy.
//
// However, since I don't think anyone uses this anyway, I'm not going to bother adding
// all that back in.  If someone complains enough, I might do so.  In any case, I think
// the graphical debugger sucks so I don't use it.


#import <AppKit/AppKit.h>
#import <ProjectBuilder/PBBundleHost.h>
#import <ProjectBuilder/PBProject.h>

@interface PBExecutableLocation : NSObject

- (void)projectWillOpen:(NSNotification *)notification;
    // Notification handler for ProjectBuilder notification.

- (NSDictionary *)executableDictionaryForProject:(PBProject *)project;
    // Constructs the dictionary containing the executable path string, args, env, etc.,
    // for a given project.  The contents are defined by ProjectBuilder's defaults entries.

@end
