Ответ 1
Если вы должны передать информацию о версии в виде включенного файла (скажем, "версия .h" ) вместо #define, вы можете добавить следующее в свой файл qmake
# Define how to create version.h
version.target = version.h
version.commands = <PUT_YOUR_COMMANDS_HERE>
version.depends = .git
QMAKE_EXTRA_TARGETS += version
PRE_TARGETDEPS += version.h
Первые 3 строки рассказывают, как создать новый целевой объект под названием "версия", который генерирует "version.h". Это делается путем выполнения команд "<PUT_YOUR_COMMANDS_HERE > ". Цель зависит от ".git"
"QMAKE_EXTRA_TARGETS" говорит, что есть новая цель, известная как "версия".
"PRE_TARGETDEPS" указывает, что "version.h" должен существовать прежде, чем что-либо еще будет сделано (что заставляет его делать, если оно еще не сделано).