COMPILE_OPTIONS

发送至编译器的选项列表。

此属性包含一个分号分隔的列表,内容是迄今为止对其目标指定的选项。使用target_compile_options() 命令以追加更多选项。这些选项将被添加到CMAKE_<LANG>_FLAGSCMAKE_<LANG>_FLAGS_<CONFIG> 变量中的标志后,但在通过INTERFACE_COMPILE_OPTIONS 属性从依赖项传播的标志之前添加。

此属性添加目标中所有语言的编译选项。使用COMPILE_LANGUAGE 生成器表达式来指定每种语言的编译选项。

在创建目标时此属性由COMPILE_OPTIONS 目录属性初始化,并由生成器用于为编译器设置选项。

COMPILE_OPTIONS 的内容可以使用带有语法$<...> 的“生成器表达式”。有关可用表达式,请参见cmake-generator-expressions(7) 手册。有关定义构建系统属性的更多信息,请参阅cmake-buildsystem(7) 手册。

选项重复数据删除

用于目标的选项的最终集合是通过累积来自当前目标及其依赖项使用要求的选项来构建的。选项集是重复数据删除的,以避免重复。

在 3.12 版中新增虽然对单个选项有好处,但去重步骤可能会破坏选项组。例如,-option A -option B 变为 -option A B。你可以使用类似 shell 的引用,加上 SHELL: 前缀来指定一个选项组。去掉 SHELL: 前缀,并使用 separate_arguments() UNIX_COMMAND 模式来解析选项字符串的其余部分。例如,"SHELL:-option A" "SHELL:-option B" 变为 -option A -option B