Class project-target project-target class project-target : abstract-target { rule generate ( property-set ) rule build-dir ( ) rule main-target ( name ) rule has-main-target ( name ) rule find ( id : no-error ? ) # Methods inherited from abstract-target rule name ( ) rule project ( ) rule location ( ) rule full-name ( ) } This class has the following responsibilities: Maintaining a list of main targets in this project and building them. generate Project Target rule generate ( property-set ) Overrides abstract-target.generate. Generates virtual targets for all the targets contained in this project. On success, returns: a property-set with the usage requirements to be applied to dependents a list of produced virtual targets, which may be empty. build-dir Project Target Method rule build-dir ( ) Returns the root build directory of the project. main-target Project Target Method rule main-target ( name ) Returns a main-target class instance corresponding to name. Can only be called after the project has been fully loaded. has-main-target Project Target Method rule has-main-target ( name ) Returns whether a main-target with the specified name exists. Can only be called after the project has been fully loaded. find Project Target Method rule find ( id : no-error ? ) Find and return the target with the specified id, treated relative to self. Id may specify either a target or a file name with the target taking priority. May report an error or return nothing if the target is not found depending on the no-error parameter.