Если бы вы передавали информацию о версии в виде включенного файла (скажем, "version.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», который генерирует «version.h».Это сделано путем выполнения команд "". Цель зависит от" .git "
." QMAKE_EXTRA_TARGETS "говорит, что существует новая цель, известная как" версия ".
" PRE_TARGETDEPS "указывает, что" version.h "должен существовать, прежде чем что-либо еще может быть сделано (что заставляет его делать, если это еще не сделано).