Recipes often need to use files provided by other recipes on
the build host.
For example, an application linking to a common library needs
access to the library itself and its associated headers.
The way this access is accomplished is by populating a sysroot
with files.
Each recipe has two sysroots in its work directory, one for
target files
(recipe-sysroot
) and one for files that
are native to the build host
(recipe-sysroot-native
).
STAGING_DIR
variable).
Recipes should never populate the sysroot directly (i.e. write
files into sysroot).
Instead, files should be installed into standard locations
during the
do_install
task within the
${
D
}
directory.
The reason for this limitation is that almost all files that
populate the sysroot are cataloged in manifests in order to
ensure the files can be removed later when a recipe is either
modified or removed.
Thus, the sysroot is able to remain free from stale files.
A subset of the files installed by the
do_install
task are used by the
do_populate_sysroot
task as defined by the the
SYSROOT_DIRS
variable to automatically populate the sysroot.
It is possible to modify the list of directories that populate
the sysroot.
The following example shows how you could add the
/opt
directory to the list of
directories within a recipe:
SYSROOT_DIRS += "/opt"
For a more complete description of the
do_populate_sysroot
task and its associated functions, see the
staging
class.