CMake構建工程-cpp多目錄

最近接觸一個項目,只有一個源碼目錄,目錄裏面有好幾百的源碼文件。看到第一眼就有種想收拾收拾的感覺,把功能相似,業務相近的合到一個目錄中去。讓代碼目錄結構更清晰一些。
但我看是動手改的時候,複製源文件到新建目錄之後,include和被include頭文件的地方都要修改,非常麻煩。
百度查到的一些資料,上面寫的雖然是c/c++,但實際上還是c語言,對類文件的cpp並不適用。
下面是我亂搞出的一個cmake,其中func下是c風格的cpp文件,Calc下是一個Calc的cpp類。
目錄結構如下:

  CMakeLists.txt
│
├─build
├─calc
│      Calc.cpp
│      Calc.h
│      CMakeLists.txt
│
├─func
│      CMakeLists.txt
│      func1.cpp
│      func1.h
│      func2.cpp
│      func2.h
│
└─src
        CMakeLists.txt
        main.cpp

project/CMakeLists.txt

# 工程名字
PROJECT(demo)

cmake_minimum_required(VERSION  2.8)

add_subdirectory(func)
add_subdirectory(calc)
add_subdirectory(src)

\calc\CMakeLists.txt
STATIC 是表示靜態庫編譯的意思,動態庫比靜態庫稍複雜一些,頭文件源文件第三方庫關係決定是不是PUBLIC PRIVATE還是INTERFACE

add_library(calc STATIC Calc.cpp) 
target_include_directories(calc PUBLIC ./)

\src\CMakeLists.txt

add_executable(demo main.cpp)
target_link_libraries(demo calc func)

這個例子比較簡單,但大致框架就是這樣,用cmake比手動寫makefile要方便很多。

github地址
https://github.com/New91/cpp_cmake_build

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章