OBJC_标准¶
在 3.16 版本加入.
构建此目标需要其功能的 OBJC 标准。
此属性指定构建此目标时请求其功能的 OBJC 标准。对于某些编译器,这会导致在编译行中添加诸如“-std=gnu11”之类的标志。
支持的值为:
90目标 C89/C90
99目标C99
11目标C11
如果请求的值不会导致为正在使用的编译器添加编译标志,则会添加以前的标准标志。这意味着使用:
set_property(TARGET tgt PROPERTY OBJC_STANDARD 11)
使用不支持“-std=gnu11”或等效标志的编译器不会导致错误或警告,但会添加“-std=gnu99”或“-std=gnu90”如果支持则标记。这种“衰减”行为可以通过 OBJC_STANDARD_REQUIRED 目标属性进行控制。此外, OBJC_EXTENSIONS 目标属性可用于控制是否在每个目标的基础上启用特定于编译器的扩展。
如果未设置该属性,并且项目已设置 C_STANDARD,则 C_STANDARD 的值设置为 OBJC_STANDARD。
有关编译功能的信息和支持的编译器列表,请参阅 cmake-compile-features(7) 手册。
如果在创建目标时设置了此属性,则该属性由 CMAKE_OBJC_STANDARD 变量的值初始化。