The first kind of metadata in BitBake is configuration metadata. This metadata is global, and therefore affects all packages and tasks which are executed.
BitBake will first search the current working directory for an optional "conf/bblayers.conf" configuration file. This file is expected to contain a BBLAYERS variable which is a space delimited list of 'layer' directories. For each directory in this list, a "conf/layer.conf" file will be searched for and parsed with the LAYERDIR variable being set to the directory where the layer was found. The idea is these files will setup BBPATH and other variables correctly for a given build directory automatically for the user.
BitBake will then expect to find 'conf/bitbake.conf' somewhere in the user specified BBPATH
. That configuration file generally has include directives to pull in any other metadata (generally files specific to architecture, machine, local and so on).
Only variable definitions and include directives are allowed in .conf files.
BitBake classes are our rudimentary inheritance mechanism. As briefly mentioned in the metadata introduction, they're parsed when an inherit
directive is encountered, and they are located in classes/ relative to the directories in BBPATH
.