我正在尝试整合一些我们通过CMake制作的不同项目。一般而言,项目并非统一布局,但有一些相似之处。对于每个库,库通常都有我想要维护的测试代码/可执行文件......它们也可以有自己的相互依赖关系。此外,这些库已被保存在单独的存储库中(如果它有所不同,则为mercurial)。文件的相互依赖性如下:
所以每个库通常都是这样布局的
+ 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应该重建)?
答案 0 :(得分:0)
你正在尝试做什么是有道理的。你可以用CMake做到这一点,即使它可能不是很明显如何做得好。我不久前经历了同样的事情,并在这里写了一个问题,接着是一个回答,概述了我最终的解决方案: