2011年6月15日

[CMake] Add additional files to Code::Blocks project

我平常在設定 C source list 時, 不太會去加 header files 或者相關的參考檔,因為相關的相依性會交給 tool 去處理,好讓 CMakeLists.txt 比較簡潔點,可以把有限的專注力放在必要的地方。而 CMake 有個好處是可以產生 Code::Blocks, KDevelop, Eclipse 的 project file,這樣就可以省去 IDE 上的設定。相較於 K & E,Code::Blocks 除了比較小外,也足夠應付 UI 的開發(使用 wxWidgets)。

可是,要怎麼把這些額外的檔案加入 project file 呢?



add_custom_target() 裡面提供了 SOURCE 參數來使用,可以把相關的檔案綁在自訂的 target 上,這樣在產生 project file 時,就會一併把這些檔案納入,例如:
FILE(GLOB_RECURSE myLIST ${PROJECT_SOURCE_DIR}/A/*.h
                           ${PROJECT_SOURCE_DIR}/B/*.txt
                           ${PROJECT_SOURCE_DIR}/C/*.ini)
ADD_CUSTOM_TARGET(myTarget 
                  SOURCES ${myLIST}
                 )
不過要留意的是,CMake-2.8.4 還是有 bug [1],2.8.5-rc1 倒是已經修正。


  1. 0011736: SOURCES for add_custom_target() are not added to CodeBlocks, Eclipse and KDevelop projects

沒有留言: