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

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