source_group¶
定义 IDE 项目生成中源文件的分组。有两种不同的签名来创建源文件组。
source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])
定义一个组,源文件将被放置在项目文件中。这旨在在 Visual Studio 中设置文件标签页。该组的作用域限定在调用命令的目录中,并应用于在该目录中创建的目标中的源文件。
选项包括
TREE
版本 3.8 新增。
CMake 将自动检测,从
<src>
文件路径中,它需要创建的源文件组,以保持源文件组的结构与项目中实际的文件和目录结构类似。<src>
文件的路径将被裁剪为相对于<root>
。如果src
中的路径不是以root
开头,则命令将失败。PREFIX
版本 3.8 新增。
源文件组和直接位于
<root>
路径中的文件,将被放置在<prefix>
源文件组中。FILES
任何显式指定的源文件都将放置在组
<name>
中。相对路径相对于当前源目录进行解释。REGULAR_EXPRESSION
任何名称与正则表达式匹配的源文件都将放置在组
<name>
中。
如果一个源文件匹配多个组,则*最后*一个使用 FILES
显式列出该文件的组将被优先选择(如果有的话)。如果没有组显式列出该文件,则*最后*一个正则表达式与该文件匹配的组将被优先选择。
组的 <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>)