如何在 qmake 之后 运行 一个脚本?
How to run a script after qmake?
我希望 qmake 自动 运行 一个 (python) 脚本。此脚本修改makefile,因此必须在qmake生成makefile之后,make之前执行。
到目前为止,我只找到了 2 种方法来 运行 来自 qmake 的脚本:
在我的 .pro 文件中使用 system()
,但是在 qmake 之前 运行s - 太快了:
win32: PYTHON=python.exe
else: PYTHON=python
system($$PYTHON ./test.py)
或使用 QMAKE_EXTRA_TARGETS 通过自定义构建目标,但这由 make 调用(为时已晚)。
有什么方法可以在 qmake 生成 makefile 后 运行 脚本?
Cotire (compile time reducer) CMake 可能是你的朋友。
它具有以下您正在寻找的加速构建的功能:
Automatically generates a single compilation unit (aka unity source file) for a CMake target.
我没用过但是推荐在C++ best practice list.
由于我们的项目使用 TEMPLATE = subdirs
,我通过创建新的子目录解决了这个问题,该子目录由 qmake 作为最后一个解析。在其 pro 文件中,我通过 system()
调用使用 TEMPLATE = aux
和 运行 脚本。
这不是最好的解决方案,但效果很好。
以下内容多年来对我很有效。
- 创建调用
qmake
的 .cmd 或 .sh 脚本,然后创建您的脚本:
%QTDIR%\bin\qmake %*
python.exe test.py
- 将脚本保存在可以通过
PATH
环境找到的位置
在您的 .pro 文件中添加以下内容:
QMAKE_QMAKE = myqmake
然后简单地调用 myqmake 而不是 qmake
如果脚本 运行 在 Qt 环境之外(例如来自 IDE),那么它可能需要定义 QTDIR 和 QMAKESPEC 环境。
我希望 qmake 自动 运行 一个 (python) 脚本。此脚本修改makefile,因此必须在qmake生成makefile之后,make之前执行。
到目前为止,我只找到了 2 种方法来 运行 来自 qmake 的脚本:
在我的 .pro 文件中使用 system()
,但是在 qmake 之前 运行s - 太快了:
win32: PYTHON=python.exe
else: PYTHON=python
system($$PYTHON ./test.py)
或使用 QMAKE_EXTRA_TARGETS 通过自定义构建目标,但这由 make 调用(为时已晚)。
有什么方法可以在 qmake 生成 makefile 后 运行 脚本?
Cotire (compile time reducer) CMake 可能是你的朋友。
它具有以下您正在寻找的加速构建的功能:
Automatically generates a single compilation unit (aka unity source file) for a CMake target.
我没用过但是推荐在C++ best practice list.
由于我们的项目使用 TEMPLATE = subdirs
,我通过创建新的子目录解决了这个问题,该子目录由 qmake 作为最后一个解析。在其 pro 文件中,我通过 system()
调用使用 TEMPLATE = aux
和 运行 脚本。
这不是最好的解决方案,但效果很好。
以下内容多年来对我很有效。
- 创建调用
qmake
的 .cmd 或 .sh 脚本,然后创建您的脚本:%QTDIR%\bin\qmake %* python.exe test.py
- 将脚本保存在可以通过
PATH
环境找到的位置 在您的 .pro 文件中添加以下内容:
QMAKE_QMAKE = myqmake
然后简单地调用 myqmake 而不是 qmake
如果脚本 运行 在 Qt 环境之外(例如来自 IDE),那么它可能需要定义 QTDIR 和 QMAKESPEC 环境。