0

我正在尝试整合我们通过 CMake 制作的几个不同的项目。总的来说,项目的布局并不统一,但有一些相似之处。对于每个库,该库通常都有我想要维护的测试代码/可执行文件……而且它们也可以有自己的相互依赖关系。此外,这些库一直在单独的存储库中维护(如果有所作为,则为善变)。文件的相互依赖是这样的:

  • 库 A 是独立的
  • 图书馆 B 是独立的
  • 库 C 是独立的
  • 库 E 依赖于 A、B、C
  • 可执行文件 1 取决于 C
  • 可执行文件 2 取决于 E
  • 可执行文件 3 取决于 E

所以每个库一般都是这样布局的

+ LibraryA\
| + CMakeLists.txt
| + LibraryA
| | + CMakeLists.txt
| | + Include\
| | | header.h
| | + Source\
| | | lib.cpp
| + Test\
| | + CMakeLists.txt
| | main.cpp

而且总体结构是

+ Root\
| + CMakeLists.txt
| + LibraryA\
| + LibraryB\
| + LibraryC\
| + LibraryE\
| + Executable1\
| + Executable2\
| + Executable3\

每个文件夹都是它自己的子目录项目。这种结构对 cmake 有意义吗?你如何维护这些项目之间的依赖关系?(如果我更改 A,可执行文件 3 应该重建)?

4

1 回答 1

0

你正在尝试做的事情是有道理的。你可以用 CMake 来做,即使如何做好它可能不是很明显。不久前我经历了同样的事情,并在这里写了一个关于它的问题,然后是一个概述我最终解决方案的答案:

CMake:如何最好地构建多个(可选)子项目?

于 2013-05-08T14:22:30.903 回答