Quiero que la aplicación comstackda tenga el número de confirmación, las sums de comprobación de los files de origen y otras cosas disponibles durante la compilation.
En Makefiles simples me gusta esto:
prog: VERSION source.c gcc -DVERSION=\"$(shell cat VERSION)\" source.c -o prog VERSION: .git git describe > VERSION
¿Cómo usar algo similar con qmake?
Si fuera a pasar la información de la versión como un file incluido (digamos "version.h") en lugar de un #define, podría agregar lo siguiente a su file 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
Las primeras 3 líneas indican cómo crear un nuevo object objective llamado "versión" que genera "versión.h". Se realiza ejecutando los commands "<PUT_YOUR_COMMANDS_HERE>". El objective depende de ".git"
El "QMAKE_EXTRA_TARGETS" dice que hay un nuevo objective conocido como "versión".
El "PRE_TARGETDEPS" indica que "version.h" necesita existir antes de que se pueda hacer cualquier otra cosa (lo que obliga a que se realice si no está ya hecho).
Una solución más simple incluso si @jwernemy es una buena manera de resolverlo:
VERSION = $$system(-git-dir=$PWD/.git <PUT_YOUR_GIT_COMMANDS_HERE>)