target_compile_features¶
在 3.1 版本加入.
将预期的编译器功能添加到目标。
target_compile_features(<target> <PRIVATE|PUBLIC|INTERFACE> <feature> [...])
指定编译给定目标时所需的编译器功能。如果该功能未在 CMAKE_C_COMPILE_FEATURES、CMAKE_CUDA_COMPILE_FEATURES 或 CMAKE_CXX_COMPILE_FEATURES 变量中列出,则 CMake 将报告错误。如果使用该功能需要额外的编译器标志,例如“-std=gnu++11”,该标志将自动添加。
需要“INTERFACE”、“PUBLIC”和“PRIVATE”关键字来指定功能的范围。 PRIVATE 和 PUBLIC 项将填充 <target> 的 COMPILE_FEATURES 属性。 PUBLIC 和 INTERFACE 项将填充 <target> 的 INTERFACE_COMPILE_FEATURES 属性。重复调用相同的 <target> 附加项。
在 3.11 版本加入: 允许在 IMPORTED 目标 <Imported Targets> 上设置 ``INTERFACE` 项目。
命名的 <target> 必须由命令创建,例如 add_executable() 或 add_library() 并且不能是 ALIAS target。
有关定义构建系统属性的更多信息。
target_compile_features 的参数可以使用语法为“$<...>”的生成器表达式。请参阅 cmake-generator-expressions(7) 手册了解可用的表达式。 |更多_另见|