推 angleevil:我好愛教學文,昨天再研究cmake.結果無法下載投影片 06/03 08:31
※ 引述《dos792 (下來一個正妹)》之銘言:
: → dos792:我的proj檔引了數百個 .hpp / .cpp 手動會死人 06/02 19:25
單純想回這句, CMake 當然不用真的手動加 source
既然你原本是在 VC 的 solution 上, 就用 VC 的角度思考
首先你要決定這個專案是 1.執行檔 2.靜態連結(*.lib,*.a) 3.動態連結(*.dll,*.so)
1. add_executable(name_of_exe ${SOURCES});
2. add_library(name_of_lib ${SOURCES});
3. add_library(name_of_dll SHARED ${SOURCES});
上述的 SOURCES 就是你的 *.cpp ... 這怎麼來的?
最簡單的方法是用 file 去抓, 假設你的資料夾內容如下:
project/
CMakeLists.txt
src/*.cpp
file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp)
這樣這個 SOURCES 變數裡就會抓到所有(含子資料夾)的 *.cpp
其他像 *.h 或 *.ui 就如法炮製
如果希望生出來的 VC proj 有檔案分類, 可用 source_group (只對VC有影響):
source_group("Resource Files" REGULAR_EXPRESSION .*\\.rc)
這樣就是把 *.rc 集中到 Resource Files 裡
需要 link 其他 lib 就用 target_link_libraries()
要增加安裝功能就用 install(), make install 或 nmake install 就可以安裝
其他還有很多 ... 自己去翻文件
基本上只要 file() 那個 command 設好, 日後加什麼檔案幾乎都不用改
CMakeLists.txt ...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.96.113.98