2017-01-18 3 views
2

У меня есть среда сборки bitbake с несколькими рецептами, которые зависят от цепочки.Как использовать DEPENDS в битбаке

На данный момент я должен сделать: bitbake recipe1 && bitbake recipe2

Я добавил: DEPENDS = "recipe1" к мета-recipe2/recipe2.bb

bitbake-layers show-cross-depends показывает эту зависимость.

Там я ожидаю, что бежит bitbake recipe2, чтобы построить рецепт1 сначала, но это не так.

Что мне нужно сделать, чтобы построить список зависимостей в переменной DEPENDS?

+0

Как вы подтвердили, что он не работает? Добавление 'DEPENDS =" recipe1 "' в 'recipe2.bb' должно работать (и всегда делалось). Попробуйте запустить 'bitbake recipe1 recipe2 -c cleansstate && bitbake recipe2'. Теперь вы должны увидеть, что 'recipe1' строится. Я думаю, что в ваших тестах 'recipe1' уже был построен ... – Anders

+0

Это было бы неплохо, но ваши предположения, к сожалению, неверны. Я определенно очистил рецепт1, прежде чем пытаться это сделать. Стоит отметить, что эти рецепты в различных слоях так: мета-recipe1/recipe1.bb и мета-recipe2/recipe2.bb Я не понимаю, почему это было бы никакой разницы, хотя. –

+0

Пожалуйста, повторите попытку с прикованной командой, которую я вам дал. Это работало над всеми версиями, которые я пробовал, и это в основном все, так как на Laest 2010 ... Если он все еще не работает, покажите нам свои рецепты. Еще одна вещь, которую нужно сделать, - запустить 'bitbake -e recipe2 | less' и найдите окончательное значение 'DEPENDS'. – Anders

ответ

2

Добавление recipe1 к recipe2 по

DEPENDS += "recipe1" 

должно работать нормально для вас. Вышеуказанная линия означает, что перед выполнением задачиможно выполнить recipe2, задача do_populate_sysroot от m recipe1 будет завершена. Это должно работать для всех версий bitbake и OpenEmbedded.

Вы можете достичь что-то похожее на DEPENDS += "recipe1" по

do_configure[depends] += "recipe1:do_populate_sysroot" 

При необходимости, вы можете вручную настроить ваши собственные зависит, как это.

+0

Есть моя проблема ... у моего рецепта1 нет do_populate_sysroot –

+0

Попробуйте запустить 'bitbake recipe1 -c listtasks' и проверьте.Если ему не хватает 'do_populate_sysroot', вам нужно добавить его. В противном случае, как ваш 'recipe2' должен использовать что-то из' recipe1'? – Anders

+0

Это действительно 'do_configure [зависит] + =" recipe1: do_populate_sysroot ", но это привело меня в правильном направлении. –

Смежные вопросы