有关如何创建预构建步骤的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
Run Code Online (Sandbox Code Playgroud)
现在,问题是这种方法本身不是构建步骤,而只是另一个构建目标,所以如果我-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 …Run Code Online (Sandbox Code Playgroud)