Starting with abuild version 1.0.3, it is possible to list
other build items in the build-also key of
any named build item's Abuild.conf file.
When abuild adds any build item to the build set, if that build
item has a build-also key, then any build
items listed there are also added to the build set. The
operation of expanding initial build set membership using the
build-also key is applied iteratively until
no more build items are added. The principal intended use of
this feature is to aid with setting up virtual
“top-level” build items. For example, if your system
consisted of multiple, independent subsystems and you wanted to
build all of them, you could create a build item that lists the
main items for each subsystem in a
build-also key. In older versions of
abuild it was necessary to use dependencies for this purpose,
but this had several disadvantages, including the following:
Adding unnecessary dependencies puts needless constraints on build ordering and parallelism.
Using dependencies for this purpose is clumsy if there are multiple target types involved. It would require you to use a platform-specific dependency, which in turn could interfere with proper use of platform selectors.
Otherwise harmless interface variable name clashes or assignment issues could cause problems as a result of having two interfaces that were supposed to be independent being loaded together.
Whenever you want building of one build item to result in building of another build item and the first item doesn't need to use anything from the items it causes to be built, it is appropriate to use build-also instead of a dependency.