Как объявить пользовательские переменные в рецептах bitbake, имеющих такую ​​же видимость, как, например, $ {bindir}? - PullRequest
0 голосов
/ 17 февраля 2019

Я использую yocto bitbake для создания собственного образа linux.

У меня есть 2 bitbake рецептов.recipe-1 и recipe-2.recipe-1 создает каталог в выходном изображении Linux.Имя каталога: mydir

recipe-1

SUMMARY="Creates direcory"
LICENSE = "CLOSED"

FILES_${PN} += "${sysconfdir} /mydir"

do_install_append () {
    install -d ${D}/mydir
}

Давайте перейдем к recipe-2.recipe-2 хочет поместить файл с именем myfile в mydir

recipe-2

SUMMARY="Wants to place a file in mydir created by recipe-1"
LICENSE = "CLOSED"
DEPENDS = "recipe-1"

SRC_URI = " file://myfile"

S = "${WORKDIR}"

do_install_append () {
    install -m 600 ${WORKDIR}/myfile ${D}/mydir  # bibake build complains that mydir is not found
}

Проблема:
В базовом рецепте, о котором я упоминал recipe-2 после recipe-1поскольку recipe-2 зависит от recipe-1.Это нормально, но bitbake build жалуется, что mydir не распознается.Я понимаю проблему.Мне нужно сделать mydir видимым для recipe-2.Как я могу это сделать?

Вопрос:
Могу ли я сделать mydir, который является выводом recipe-1, глобальной переменной в моей системе сборки рецептов?Глобальная переменная типа ${bindir}, ${datadir} и т. Д.?Если я могу сделать это как часть здания recipe-1, то это может быть элегантным решением?

Итак, я хочу использовать пользовательскую переменную, скажем, ${mydir} в do_install_append из recipe-2?И сделать что-то подобное в do_install_append из recipe-2.

install -m 600 ${WORKDIR}/myfile ${D}/${mydir}

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вы можете поместить некоторую переменную mydir в файл .inc и включить в оба рецепта с помощью require директива .

0 голосов
/ 18 февраля 2019

Места установки являются отдельными для каждого рецепта и всегда пустыми в начале установки, поэтому вам нужно создать там какие-либо каталоги.То, что делают другие рецепты, не имеет значения.

Если вы хотите установить $ {mydir} из одного места, поместите его в класс и заставьте каждый рецепт наследовать этот класс.

...