cmake官方文档同样没有涉及,在邮件列表中讯问后,查看相应文件找到了解决方案。
针对QT4_WRAP_CPP和QT4_WRAP_UI还有资源文件:
cmake下的Modules/FindQt4.cmake文件中如下三行在起作用:
1 |
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/moc_${outfile}.cxx) |
1 |
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) |
1 |
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) |
针对QT4_AUTOMOC方式,需要修改这两行:
1 |
STRING(REGEX MATCHALL "#include +[^ ]+\.moc[">]" _match "${_contents}") |
1 |
STRING(REGEX MATCH "[^ <"]+\.moc" _current_MOC "${_current_MOC_INC}") |
需要把其中的.moc换成.myown什么的。当然QT4_AUTOMOC的方式就是需要在你的源代码最后加入一行include的,还要做一个修改:
1 |
#include "yourclass.moc" |
要改为:
1 |
#include "yourclass.myown" |
不过这一次看来cmake要强大好多呀,完全可以自定制。