【发布时间】:2012-10-02 11:15:24
【问题描述】:
这是我的情况:
我有一个使用 qmake(.pro 文件)构建的典型 Qt C++ 项目。
我还有一个生成一些代码的 python 脚本。 python脚本(我们称之为update.py)生成三个文件,我们称之为gen.h、gen.cpp、gen.qml。
现在我正在做的是手动运行 update.py 以生成这些文件。然后我可以运行 make 并且一切正常。 gen.h 和 gen.cpp 只是我的 .pro 文件中的“常规”文件,它们被检入 SVN。
我想要的是让它在我运行 make 时运行,update.py 将运行并生成这些文件,然后它们将与项目一起构建。这样我可以将它们从 SVN 中删除,避免额外的手动步骤。
仅供参考:我已经将 update.py 设置为仅在需要时重新生成这些文件,因此如果您多次运行 update.py,它不会盲目地更改 gen.h、gen.cpp 等。
我花了很多时间试图完成这项工作(实际上有点尴尬)。我一直在搞乱 QMAKE_EXTRA_TARGETS、QMAKE_EXTRA_COMPILERS、PRE_TARGETDEPS 等,但似乎没有什么能像我想要的那样工作。
哦,还有更多信息:gen.cpp 和 gen.h 有基于 QObject 的类,所以我需要在 MOC 运行之前生成它们。
谢谢!
【问题讨论】:
标签: c++ qt code-generation qmake