我正在尝试整合我们通过 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 应该重建)?