使用 qmake 時,Visual C++ 的方案會自動把產生的檔案(e.g.: ui_*.h, moc_*.cpp ... etc.)歸類到 Generated Files,讓原始碼樹看起來比較清爽。但是 CMake 不會幫你做這件事,專案一大就會讓這些不必修改的檔案佔滿整個專案。
但是 CMake 其實是可以做到的,使用 SOURCE_GROUP 巨集就可以建造一個群組,把原始碼組織起來。過濾的方式有二:使用 regular expression,或是直接指明檔案路徑。以下是範例。
# 明指 moc, rcc, uic, qm 檔案為 Generated Files source_group("Generated Files" FILES ${MOC_SOURCES} ${RCC_RESOURCES} ${UIC_HEADERS} ${QM_FILES}) # 使用 RE 把資源檔找出來 source_group("Resource Files" REGULAR_EXPRESSION .*\\.rc) # 使用 RE 把 Designer forms 歸類在 Form Files source_group("Form Files" REGULAR_EXPRESSION .*\\.ui)
注意 regular expression 要跳出 \。