To create a new project type definition called MyApplication, create a MyApplication.projectType directory with the following two components:
A "projectTemplate" directory containing the initial contents of projects that are created from this projectType. For example, a standard Info Panel and set of local frameworks could be added to the Application project template so that a new app could be site-specific "right out of the box".
An "Info.table" textual property-list file describing attributes of the Project Type. Valid keys include:
Allowable_SubprojectTypes - A list of names of subprojects which are valid as subprojects of this type of project.
AttributesInspector - The name of the Objective-C class that implements the "Project Attributes" Inspector in PB. Built into PB are: SubprojectInspector, ApplicationInspector, FrameworkInspector, LegacyInspector, PaletteInspector
DefaultExtension - The name a project gets by default (e.g. .bproj, .woa).
GeneratedFiles - The list of files this project derives and maintains itself (e.g. Makefile, iconHeader).
MAKEFILE - The name of the makefile that should be used to build this project (e.g. aggregate.make).
MAKEFILEDIR - The directory containing MAKEFILE (e.g. "$(NEXT_ROOT)/NextDeveloper/Makefiles/project")
Other_Keys - List of other keys (briefcases) in project. These and the other keys below are simply conceptual groupings of briefcases. ProjectBuilder will always display the briefcases grouped in a particular order. Otherwise, all briefcases are basically equal.
Resource_Keys - List of resource keys (briefcases) in project.
Source_Keys - List of source keys (briefcases) in project
Subproj_Keys - List of subproject keys (briefcases) in project.
Targets - The set of build targets these projects support by default in MAKEFILE.
PBProjectTypeSubClass - The name of the Objective-C class in PB that implements the customization functionality for this project type. Built into PB are: PBApplicationProjectType, PBToolProjectType, PBPaletteProjectType
ProvidesIcons - If set to "Yes", hints to PB that icons should be emmited for inclusion in the built binary file.
Public_Keys - The list of keys (briefcases) in which the "Public" attribute can be set.
DisplayName - The actual name that should be used in the PopUpList in PB when creating a new project. If not present, the base name of the .projectType wrapper
AliasNames - Other names this project type was previously known as (e.g. Subproject).
KeyForType - The Makefile key in the parent project this project is recorded under.
Localizable_Keys = The list of keys (briefcases) in which the "Localizable" attribute can be set.
CanCreateInExistingDirectory - If set to"Yes", this project can be created inside an existing directory. Otherwise, PB requires that it create a new directory from scratch for the project.
You can use /NextDeveloper/ProjectTypes/EOF Application.projectType as an example.