容易包含cmake中库依赖的头文件

Pau*_* D. 5 c++ cmake include-path

我正在尝试使用CMake进行C++存储库,但是我遇到了一些麻烦,试图在没有大量额外CMake代码的情况下轻松地在同一源代码树中构建针对库的应用程序.

源树的布局基本如下:

ROOT
    libs/
         lib1/
         lib2/
         lib3/
    apps/
         app1/
         app2/
         app3/
Run Code Online (Sandbox Code Playgroud)

这些库彼此独立,并且应用程序可以链接到一个或多个库.

目前我有一个根CMakeLists.txt,它将每个应用程序和库列为子目录,这样如果更改了库并重建了应用程序,那么库也是如此.这工作正常,CMake链接它,而我不必指定库的位置,但我没有看到为包含目录做类似的事情的方法.

有没有一种常见的方法来处理这个问题?我不希望每个应用程序的CMakeLists.txt都必须手动列出它需要的库的路径.

lan*_*tar 1

如果您不担心为每个应用程序提供的可用标头数量多于实际需要的数量,则可以在 INCLUDE_DIRECTORIES 语句中列出所有 lib 目录,例如在 CMakeListst.txt 中添加所有应用程序子列表。但不存在管理“所属”的概念,包括每个内置目标的文件夹。