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”关键字来指定功能的范围。 PRIVATEPUBLIC 项将填充 <target>COMPILE_FEATURES 属性。 PUBLICINTERFACE 项将填充 <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) 手册了解可用的表达式。 |更多_另见|

也可以看看