Variations that select versions of project libraries

The scheme that is described in View that uses results of a nightly build uses version labels to select particular versions of libraries. For more flexibility, other versions can be selected as shown by the following added rules:

element * CHECKEDOUT
element lib/libcmd.a LAST_NIGHT
element lib/libparse.a LAST_NIGHT
element lib/libcalc.a R2_BL2
element lib/*.a /main/LATEST
element * /main/LATEST

The LAST_NIGHT version of some libraries can be selected, the R2_BL2 version of others, and the most recent version of still others. (Rule 3b is not required here, because Rule 4 handles all other libraries. It is included for clarity only.)

Other kinds of metadata can also be used to select library versions. A config spec can mix and match library versions as the following added rules indicate:

element * CHECKEDOUT
element lib/libcmd.a {lib_selector=="experimental"}
element lib/libcalc.a {lib_selector=="experimental"}
element lib/libparse.a {lib_selector=="stable"}
element lib/*.a {lib_selector=="released"}
element * /main/LATEST

For example, lib_selector attributes can take values such as experimental, stable, and released.