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:
- (1)
element * CHECKEDOUT
- (2a)
element lib/libcmd.a LAST_NIGHT
- (2b)
element lib/libparse.a LAST_NIGHT
- (3a)
element lib/libcalc.a R2_BL2
- (3b)
element lib/*.a /main/LATEST
- (4)
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:
- (1)
element * CHECKEDOUT
- (2)
element lib/libcmd.a {lib_selector=="experimental"}
- (3)
element lib/libcalc.a {lib_selector=="experimental"}
- (4)
element lib/libparse.a {lib_selector=="stable"}
- (5)
element lib/*.a {lib_selector=="released"}
- (6)
element * /main/LATEST
For example, lib_selector attributes can take values such as experimental, stable, and released.