Поддержка зависимостей

Начиная с версии 1.7.x Bitbake работает с метаданными на уровне задач, что позволяет использовать множество потоков для их выполнения. Из-за этого требуется надежный метод разрешения зависимостей задачи перед ее выполнением.

Зависимости внутри .bb файла

Когда зависимости задаются внутри .bb файла, то обработка осуществляется описаной выше дерективой addtask.

DEPENDS

DEPENDS описывает зависимости необходимые на стадии сборки. Флаг 'deptask' у задач может быть использован для указания, какая задача у каждой зависимости из DEPENDS должна быть завершена до того как задача может быть запущена.

do_configure[deptask] = "do_populate_staging"

это указывает, что задача do_populate_staging у каждой зависимости в списке DEPENDS должна быть завершена до того как задача do_configure будет запущена.

RDEPENDS

RDEPENDS описывает зависимсти необходимые на стадии выполнения. Флаг 'reptask' у задач может быть использован для указания, какая задача у каждой зависимости из RDEPENDS должна быть завершена до того как задача может быть запущена.

do_package_write[rdeptask] = "do_package"

это указывает, что задача do_package у каждой зависимости в RDEPENDS должна быть завершена, до того как задача do_package будет запущена.

Рекурсивный DEPENDS

Флаг 'recdeptask' у задач может быть использован для указания, какая задача у каждой зависимости из DEPENDS должна быть завершена до того как задача может быть запущена. Этот флаг добавляет рекурсию, так что задачи зависимости из DEPENDS каждой зависимости из DEPENDS должен так же удволетворять условию.

Рекурсивный RDEPENDS

Флаг 'recrdeptask' у задач может быть использован для указания, какая задача у каждой зависимости из RDEPENDS должна быть завершена до того как задача может быть запущена. Этот флаг добавляет рекурсию, так что задачи зависимости из RDEPENDS каждой зависимости из RDEPENDS должен так же удволетворять условию.

Зависимости между задачами

Флаг 'depends' для задач является более простой формой задать зависимости между задачами, чем использование DEPENDS или RDEPENDS.

do_patch[depends] = "quilt-native:do_populate_staging"

это указываеть что задача do_populate_staging пакета quilt-native должна завершиться до того как будет запущена задача do_patch.