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