首页 > 解决方案 > CMake target_sources() 用于更大的库

问题描述

我正在开发一个更大的库,我们现在想用 cmake 构建它。

结构有点像这样:

foo/
- CMakeLists.txt
- include/
-- foo/
--- utils/
---- utils.hpp
--- foo.hpp
- src/
-- utils/
--- utils.cpp
-- foo.cpp

CMakeLists.txt看起来像这样:

cmake_minimum_required(VERSION 3.15)

project(foo CXX)

target_include_directories(
  foo
  PUBLIC
    include
  PRIVATE
    src
)

target_sources(
  foo
  PRIVATE
    src/foo.cpp
    src/utils/utils.cpp
)

我现在看到的问题是,target_sources()添加的源文件越多,调用将变得非常不可读且容易出错。

我读过GLOB但也读到现在这是不好的做法。

您通常对这样的库使用什么解决方案?

标签: c++cmake

解决方案


推荐阅读