组件
组件封装了与特定目标相关的所有代码。组件充当单独的编译目标。这使得 CMake 能够高效地并行化编译和链接阶段。组件应包含最少的依赖项。应避免循环依赖。
核心组件
通用接口可以在项目和多个组件中使用。这些接口在 components/core
中定义。核心是唯一不完全遵循组件模式的组件。核心与其他组件之间的唯一主要区别在于使用的头文件前缀是 core/<子目录>
而不是 components/core/<子目录>
。
有关详细信息,请参阅核心文档。
创建新组件
要创建新组件,请在 components/
下添加新文件夹。文件夹名称应与组件的实现相关 - 请参阅当前的组件以获取灵感。接下来的说明将在 components/<组件名称>
文件夹内执行。
-
创建一个名为
include/components/<组件名称>
的目录。这将包含其他组件可以访问的所有公共头文件 -
创建一个名为
src
的目录。这将包含所有私有头文件和源文件。组件将无法包含这些。 -
创建一个名为
tests
的目录。这将包含此组件的所有测试文件 -
创建一个
CMakeLists.txt
添加组件编译目标
注册组件会添加 vkb__<组件名称>
编译目标。此目标也作为依赖项链接到 vkb__components
。
vkb__register_component(
NAME <component_name>
SRC
src/<some_private_header>.hpp
src/<some_source>.cpp
LINK_LIBS
<some_link_lib>
)