как регенерировать мезон для вновь добавленных файлов yaml
Я добавил файлы yaml, чтобы добавить новые объекты dbus, и добавил PHOSPHOR_MAPPER_SERVICE_append = " com/newCoName" (newCoName - это название моей компании)
Но когда я запускаю bitbake, do_configure для phosphor_mapper срабатывает, когда он передает параметр -Ddata_com_newCoName в meson. В следующем файле readme говорится, что мне нужно запустить./regenerate_meson из каталога gen, когда я добавляю новые файлы YAML. Но как мне это сделать из файла рецепта?https://github.com/openbmc/phosphor-dbus-interfaces
1 ответ
Один из вариантов - сгенерировать эти файлы вне среды yocto (то есть без использования bitbake). Таким образом
- клонировать это репозиторий git
- поместите свой yaml-файл туда, где вы клонировали репо
- сделать то, что говорит readme, т.е. перейти в каталог gen и выполнить скрипт регенерации мезона
- собрать изменения, сделанные скриптом, и создать патч
- добавьте патч на свой слой и укажите его в файле.bbappend (meta-/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bbappend)
Другой вариант - добавить в файл.bbappend дополнительную задачу, которая запускается перед do_configure, и вызвать этот скрипт оттуда:
do_configure_prepend() {
cd ${S}/gen && ./meson-regenerate
}
Вдоль этого.bbappend вы должны добавить свой yaml, чтобы он попадал в папку gen в патче или прямо на ваш слой (отметьте FILESEXTRAPATHS).
В обоих случаях вам нужно исправить опцию meson_options.txt: add
option('data_com_newCoName', type: 'boolean', value: true)