Ответ 1
Если вы можете получить версию из командной строки, вы можете назначить ее переменной с помощью функции $$system
qmake.
Итак, для mercurial вы можете попробовать:
# if the version tag is <major version>.<minor version>
VERSION = $$system(hg parents --template '{latesttag}.{latesttagdistance}')
# or if you fill all 3 positions manually: <major>.<minor>.<patchset>
VERSION = $$system(hg parents --template '{latesttag}')
Или, если вы используете номер локальной версии в качестве версии:
VERSION = $$system(hg parents --template '{rev}')
который будет печатать только это число без индикатора незафиксированных изменений ( "+" ).