Si puede obtener la versión de un comando de shell, puede asignarla a la variable con la función qmake $$system
.
Así, por mercurial, usted podría intentar:
# 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}')
O si está utilizando el número de revisión local, como la versión:
VERSION = $$system(hg parents --template '{rev}')
que sólo se imprimirá ese número sin el cambio no comprometida indicador ('+').
Gracias. Pero existe una solución más fácil. Puede usar el sistema $$ ($$ (PWD)/hg id -n). En este caso, devolverá el número de versión del repositorio. Pero el problema es que el mercurial puede devolver el número con el símbolo "+". Este es un caracter no válido en el numero de version. – Milovidov
@Milovidov Puede deshacerse de '+' con la ayuda de 'replace()': 'VERSION = $$ replace (VERSION," + "," ")' – Bill
@Bill, dont'work. El símbolo "+" no se reemplazará. – Milovidov