STATIC_LIBRARY_OPTIONS¶
3.13 版本新增。
用于静态库目标的归档工具(或 MSVC 库管理器)标志。对于共享库、模块或可执行文件等目标,需要使用 LINK_OPTIONS 目标属性。
此属性保存一个由分号分隔的列表,其中包含目前为该目标指定的选项。请使用 set_target_properties() 或 set_property() 命令来设置其内容。
STATIC_LIBRARY_OPTIONS 的内容可以使用语法为 $<...> 的“生成器表达式”。有关可用表达式,请参阅 cmake-generator-expressions(7) 手册。有关定义构建系统属性的更多信息,请参阅 cmake-buildsystem(7) 手册。
注意
必须优先使用此属性,而不是 STATIC_LIBRARY_FLAGS 属性。
选项去重¶
用于目标的最终选项集通过累积当前目标及其依赖项的使用要求的选项来构建。选项集经过去重以避免重复。
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。
处理归档工具驱动程序的差异¶
4.0 版本新增。
为了向归档工具传递选项,每个编译器驱动程序都有其自己的语法。ARCHIVER: 前缀和 , 分隔符可以用来以可移植的方式指定传递给归档工具的选项。ARCHIVER: 将被替换为相应的驱动程序选项,, 将被替换为相应的驱动程序分隔符。驱动程序前缀和驱动程序分隔符由 CMAKE_<LANG>_ARCHIVER_WRAPPER_FLAG 和 CMAKE_<LANG>_ARCHIVER_WRAPPER_FLAG_SEP 变量的值给出。
ARCHIVER: 前缀可以作为 SHELL: 前缀表达式的一部分来指定。
ARCHIVER: 前缀支持一种替代语法,即使用 SHELL: 前缀和空格作为分隔符来指定参数。
注意
不支持在 ARCHIVER: 前缀的开头之外的任何位置指定 SHELL: 前缀。