Если еще заявление с использованием внешней переменной в файле битбейка - PullRequest
0 голосов
/ 25 сентября 2018

Привет, под моим файлом bitbake. Я хочу остановить выполнение определенных задач и хочу, чтобы функция компиляции выполнялась каждый раз.Для этого я сделал следующие изменения:

do_compile[nostamp] = "1" 
do_clean[noexec] = "1" 
do_cleanall[noexec] = "1" 
do_cleansstate[noexec] = "1" 
do_fetch[noexec] = "1" 
do_patch[noexec] = "1" 
do_unpack[noexec] = "1"

И он работал отлично.Я смог остановить выполнение таких задач, как очистка, очистка, выбор состояния, извлечение, исправление и распаковка.Кроме того, я смог убедиться, что задача компиляции запускается каждый раз.

Однако я хочу наложить некоторые ограничения на то же самое.Я хочу убедиться, что noexec и nostamp для соответствующей задачи применяются только в том случае, если для переменной DEVMODE установлено значение 1. Код Psuedo следующим образом.

if DEVMODE == 1 then
    do_compile[nostamp] = "1" 
    do_clean[noexec] = "1" 
    do_cleanall[noexec] = "1" 
    do_cleansstate[noexec] = "1" 
    do_fetch[noexec] = "1" 
    do_patch[noexec] = "1" 
    do_unpack[noexec] = "1"
endif

Какдобиться того же в файле bitbake?Я пробовал это и это ссылки, но я не могу создать рабочее условие, если.

ПРИМЕЧАНИЕ. Я в порядке, используя BB_ENV_EXTRAWHITE, но не могу кодироватьрабочее условие if для файла bitbake.

1 Ответ

0 голосов
/ 26 сентября 2018

Использование анонимная функция Python может работать для вас.

python () {
    #add "export DEVMODE=1" under conf/setenv
    #add DEVMODE under BB_ENV_EXTRAWHITE variable under conf/setenv

    if d.getVar("DEVMODE", True) == "1":
        d.setVarFlag("do_compile", 'nostamp', "1")
}

Или установить напрямую:

do_compile[nostamp] = "${@'1' if d.getVar('DEVMODE') == '1' else '0'}"
...