编译选项

传递给编译器的选项列表。

此属性包含到目前为止为其目标指定的选项的 分号分隔列表。使用 target_compile_options() 命令附加更多选项。这些选项将添加在 CMAKE_<LANG>_FLAGS 和 CMAKE_<LANG>_FLAGS_<CONFIG> 变量中的标志之后,但在 INTERFACE_COMPILE_OPTIONS 属性从依赖项传播的那些之前.

此属性在创建目标时由 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