如何在qmake之后运行脚本?

时间:2015-10-26 17:53:24

标签: qt qmake

我希望qmake自动运行(python)脚本。这个脚本修改了makefile,因此必须在qmake生成makefile之后但在make之前执行。

到目前为止,我只找到了两种从qmake运行脚本的方法:

在我的.pro文件中使用system(),但这在qmake之前运行 - 太快了:

win32: PYTHON=python.exe
else:  PYTHON=python
system($$PYTHON ./test.py) 

或使用QMAKE_EXTRA_TARGETS通过自定义构建目标,但这是由make调用的(太晚了)。

有没有办法在生成makefile之后从qmake运行脚本?

3 个答案:

答案 0 :(得分:3)

由于我们在项目中使用TEMPLATE = subdirs,因此我通过创建新的子目录来解决这个问题,该子目录由qmake作为最后一个解析。在其专业文件中,我使用TEMPLATE = aux并通过system()调用运行脚本。

这不是最好的解决方案,但效果很好。

答案 1 :(得分:1)

以下几年对我来说效果很好。

  1. 创建一个调用qmake的.cmd或.sh脚本,然后创建脚本:
      

    %QTDIR%\ bin \ qmake%*   python.exe test.py

  2. 将脚本保存在可通过PATH环境
  3. 找到的位置
  4. 在.pro文件中添加以下内容:

      

    QMAKE_QMAKE = myqmake

  5. 然后只需调用myqmake而不是qmake

  6. 如果脚本将在Qt环境之外运行(例如从IDE运行),则可能需要定义QTDIR和QMAKESPEC环境。

答案 2 :(得分:-1)

CM的{p> Cotire (compile time reducer)可能是我的朋友。

它具有以下您正在寻找的加速构建的功能:

  

自动为CMake目标生成单个编译单元(也称为统一源文件)。

我没有使用它,但建议在C++ best practice list