qhacer paso previo a la compilación antes de cualquier compilación

Hay varias preguntas sobre SO sobre cómo crear un paso previo a la compilación paraqmake, Puedo hacer eso con esto en mi.pro expediente:

versionTarget.target = ../VersionData/versioning.h
versionTarget.depends = FORCE
win32: versionTarget.commands = cd $PWD; python.exe ./version_getter.py -p $TARGET
else:  versionTarget.commands = cd $PWD; python ./version_getter.py -p $TARGET

PRE_TARGETDEPS += ../VersionData/versioning.h
QMAKE_EXTRA_TARGETS += versionTarget

Ahora, el problema es que este enfoque no es un paso de compilación per se, sino simplemente otro objetivo de compilación, así que si tengo la-j bandera configurada paramake ejecuta mi script enparalela con los otros trabajos de construcción. Esto es muy malo, porque mi secuencia de comandos crea / actualiza un archivo de encabezado, ya que cambiarlo en parte a través de la compilación no es aceptable.

Entonces, ¿existe de todos modos puedo tener este script ejecutado antes?alguna se ejecuta la compilacion? Sé que puedo crear otro script y llamar alversion_getter.py yqmake en secuencia de eso, pero esto no es deseable ya que tendría que compilar desde la línea de comandos en lugar de hacerlo desde dentro de Qt Creator.

Actualizar

El completo.pri El archivo que está incluido en cada uno de mis subproyectos está a continuación:

CONFIG += thread
QT += core \
      gui

versionTarget.target = ../VersionData/versioning.h
versionTarget.depends = FORCE
win32: versionTarget.commands = cd $PWD; python.exe ./version_getter.py -p $TARGET
else:  versionTarget.commands = cd $PWD; python ./version_getter.py -p $TARGET

PRE_TARGETDEPS += ../VersionData/versioning.h
QMAKE_EXTRA_TARGETS += versionTarget

DEPENDPATH += ../VersionData
INCLUDEPATH += ../VersionData
HEADERS += ../VersionData/versioning.h

UI_HEADERS_DIR = ${_PRO_FILE_PWD_}/include/Qui
DESTDIR = $(SYREN_PATH)

!win32-msvc {
    QMAKE_CXXFLAGS += -std=c++0x
}

Pero esto todavía resulta en el mismo comportamiento paralelo. Pensé que podría haber sido debido a mi uso deccache, pero apagarlo no hizo ninguna diferencia (aparte de ser mucho más lento, por supuesto).

Respuestas a la pregunta(2)

Su respuesta a la pregunta