2012-05-11 9 views

Respuesta

7

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 ('+').

+0

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

+0

@Milovidov Puede deshacerse de '+' con la ayuda de 'replace()': 'VERSION = $$ replace (VERSION," + "," ")' – Bill

+0

@Bill, dont'work. El símbolo "+" no se reemplazará. – Milovidov

Cuestiones relacionadas