# Class abstract-target

Base class for all abstract targets.

    class abstract-target {
        rule __init__ ( name : project )
        rule name ( )
        rule project ( )
        rule location ( )
        rule full-name ( )
        rule generate ( property-set )
    }

Classes derived from abstract-target:

- project-target
- main-target
- basic-target

1. `rule __init__ ( name : project )`

   `name`

     The name of the target in the Jamfile.

   `project`

     The project to which this target belongs.

2. `rule name ( )`

   Returns the name of this target.

3. `rule project ( )`

   Returns the project for this target.

4. `rule location ( )`

   Returns the location where the target was declared.

5. `rule full-name ( )`

   Returns a user-readable name for this target.

6. `rule generate ( property-set )`

   Generates virtual targets for this abstract target using the specified properties, unless a different value of some feature is required by the target. This is an abstract method which must be overriden by derived classes.

   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.
   If `property-set` is empty, performs the default build of this target, in a way specific to the derived class.