我正在构建一个C项目,目前我对如何进行CMAKE有点迷茫。
总结:我将有3个项目,这些项目将具有多个可执行文件。这些项目将使用来自具有多个目录(子库)的库中的代码。我在include目录中包含了该项目的所有include。我还将为src和lib提供一个测试目录。
我需要多少个cmakelists.txt?每个子目录一个?如何处理源文件和头文件位于单独的目录中?我了解add_directory,add_subdirectory等的基础知识,但是我对将其与这么多组件拼接在一起感到困惑。
结构如下:
项目:
|-- bin
|-- build
|-- src
| |-- Project 1
| | |-- Project1a.c
| | |-- Project1b.c
| |-- Project 2
| | |--Project2.c
| |-- Project 3
| | |--Project3.c
| |-- cmakelists.txt
|
|-- lib
| |--Hash
| | |-- Sha256.c
| | |-- MD5.c
| | |-- Blake2.c
| |--Communications
| | |-- Communications.c
| |--ErrorHandling
| | |-- ErrorHandling.c
| |--cmakelists.txt
|
|-- include
| |--src
| | |-- Project 1
| | | |-- Project1a.h
| | | |-- Project1b.h
| | |-- Project 2
| | | |-- Project2.h
| | |-- Project 3
| | |-- Project3.h
| |--lib
| | |--Hash
| | | |-- Sha256.h
| | | |-- MD5.h
| | | |-- Blake2.h
| | |--Communications
| | | |-- Communications.h
| | |--ErrorHandling
| | | |-- ErrorHandling.h
| |--cmakelists.txt
|
|-- test
| |--src (etc...)
| |--lib (etc...)
| |--cmakelists.txt
|
|--cmakelists.txt
我已经在cmakelists.txt主目录中添加了子目录,但是我试图找出从那里开始的方法。
感谢您的帮助!