A build tree, as defined before, is a collection of build items
arranged hierarchically in the file system. Like build items,
build trees have names, and are only referred to from other build
trees by name. The root of a build tree is a build item whose
Abuild.conf
contains the
tree-name key. We refer to this item as the
tree's root build item.
A build tree is formed as a result of the items it contains
holding references to the locations of their children within the
file system hierarchy. These locations are named as relative
paths in the child-dirs keys of the items'
Abuild.conf
files. It is customary to have
the value of child-dirs contain single path
elements (i.e.just a directory without any
subdirectories), but this is also not a requirement:
child-dirs entries may contain multiple path
elements as long as there are no Abuild.conf
files in any of the intermediate directories. If a build item's
child contains its own tree-name key, that
child build item is the root of a separate build tree that is
part of the same forest, defined below. Otherwise, the child
build item is part of the same tree as its parent.
In addition to containing build items, build trees can contain
other attributes. Among these are references to other build
trees, a list of supported traits, and a
list of plugins. We will discuss these
topics later in the document. These attributes are defined using
keys in the root build item's Abuild.conf
file.