[[bbv2.reference.class.basic-target]] = Class basic-target [source] ---- class basic-target : abstract-target { rule __init__ ( name : project : sources * : requirements * : default-build * : usage-requirements * ) rule generate ( property-set ) rule construct ( name : source-targets * : property-set ) # Methods inherited from abstract-target rule name ( ) rule project ( ) rule location ( ) rule full-name ( ) } ---- Implements the most standard way of constructing main target alternative from sources. Allows sources to be either files or other main targets and handles generation of those dependency targets. -- 1. `rule __init__ ( name : project : sources * : requirements * : default-build * : usage-requirements * )` + `name`:: The name of the target `project`:: The link:#bbv2.reference.class.project-target[project] in which the target is declared. 2. [[bbv2.reference.class.basic-target.generate]] `rule generate ( property-set )` + Overrides link:#bbv2.reference.class.abstract-target.generate[abstract-target.generate]. Determines final build properties, generates sources, and calls link:#bbv2.reference.class.basic-target.construct[construct]. This method should not be overridden. + 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. 3. [[bbv2.reference.class.basic-target.construct]] `rule construct ( name : source-targets * : property-set )` + Constructs virtual targets for this abstract target. Returns a usage-requirements property-set and a list of virtual targets. Should be overridden in derived classes. --