qmake перед сборкой шаг перед ЛЮБОЙ компиляцией

На SO есть несколько вопросов относительно того, как создать шаг перед сборкой дляqmakeЯ могу сделать это с моим.pro файл:

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

Теперь проблема в том, что этот подход сам по себе является не шагом сборки, а просто еще одной целью сборки, поэтому, если у меня есть-j флаг настроен дляmake он запускает мой скрипт впараллельно с другими работами сборки. Это очень плохо, потому что мой скрипт создает / обновляет заголовочный файл - его изменение во время компиляции недопустимо.

Итак, могу ли я выполнить этот сценарий раньше?любой компиляция запущена? Я знаю, что могу создать еще один сценарий и вызватьversion_getter.py а такжеqmake по порядку, но это нежелательно, так как мне придется компилировать из командной строки, а не из Qt Creator.

Обновить

Полный.pri файл, который включен в каждый из моих подпроектов, находится ниже:

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
}

Но это все равно приводит к тому же параллельному поведению. Я думал, что это могло произойти из-за моего использованияccache, но отключение не имело никакого значения (кроме того, что, конечно, было намного медленнее).

Ответы на вопрос(2)

Ваш ответ на вопрос