На электрониксе эффективного совета не дали, попытаю счастья здесь.
Скрипт сборки проекта написан на Python, сам Питоном не владею, был
взят из демо проекта. Требуется передать компилятору GCC строку -
короткий хэш git версии проекта. Саму строку в скрипте получаю так. def get_git_revision_short_hash() -> str:
return subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip()
GIT_REV = get_git_revision_short_hash()
print(GIT_REV)
контрольный print выводит именно то , что нужно. Пытаюсь передать строку компилятору так:
CFLAGS += ' -DGIT_REV=' + GIT_REV
В проекте использую так:
LOG_I("Git Revision:%s", GIT_REV);
где LOG_I - макрос rt-thread, выводящий сообщения в UART.
Компилятор на вышеприведенную строку дает ошибку:
<command-line>: error: 'fa23128' undeclared (first use in this function)
fa23128 - короткий hash git-версии проекта. Питон версия 3, система сборки Scons.
если первый символ хэша - цифра, то ошибка такая:
<command-line>: error: invalid suffix "fdade6" on integer constant
Похоже компилятор воспринимает строку как идентификатор, или как константу, то есть думается что требуются кавычки. С кавычками игрался, с двойными и одинарными, в том числе пробовал вариант предложенный на электрониксе уважаемым MrYuran. Результата не получил.. Специалисты - питонисты, помогите пжлст...