来源组

在 IDE 项目生成中为源文件定义一个分组。有两种不同的签名来创建源组。

source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])

定义一个组,源将被放置在项目文件中。这是为了在 Visual Studio 中设置文件选项卡。该组的范围在调用命令的目录中,并适用于在该目录中创建的目标中的源。

选项是:

在 3.8 版本加入.

CMake 会自动从 <src> 文件路径中检测它需要创建的源组,以保持源组的结构类似于项目中的实际文件和目录结构。 <src> 文件的路径将被剪切为相对于 <root>。如果 src 中的路径不以 root 开头,则命令失败。

前缀

在 3.8 版本加入.

直接位于``<root>`` 路径中的源组和文件将放置在``<prefix>`` 源组中。

文件

任何明确指定的源文件都将放在组“<名称>”中。相对路径根据当前源目录进行解释。

REGULAR_EXPRESSION

名称与正则表达式匹配的任何源文件都将放置在组“<名称>”中。

如果一个源文件匹配多个组,则将优先使用明确列出带有“文件”的文件的*最后一个*组(如果有的话)。如果没有组明确列出该文件,则将优先使用其正则表达式与该文件匹配的 last 组。

组的 <name><prefix> 参数可以包含正斜杠或反斜杠来指定子组。反斜杠需要适当转义:

source_group(base/subdir ...)
source_group(outer\\inner ...)
source_group(TREE <root> PREFIX sources\\inc ...)

在 3.18 版本加入: 允许使用正斜杠 (/) 来指定子组。

为了向后兼容,简写签名

source_group(<name> <regex>)

相当于

source_group(<name> REGULAR_EXPRESSION <regex>)