COMPILE_DEFINITIONS¶
用于编译目录源的前置处理器定义。
此属性指定到目前为止提供给 add_compile_definitions()
(或 add_definitions()
)命令的选项列表。
可以使用语法 VAR
或 VAR=value
将 COMPILE_DEFINITIONS
属性设置为用分号分隔的前置处理器定义列表。不支持函数式定义。CMake 将自动为本机构建系统正确地转义此值(请注意,CMake 语言语法可能需要转义才能指定某些值)。
此属性将在每个目录中初始化为该目录父目录中的值。
CMake 将自动删除本机构建工具不支持的某些定义。
在版本 3.26 中添加: 项目中任何前导 -D
都将被删除。
免责声明:大多数本机构建工具对某些值的转义支持都很差。在很多情况下,CMake 都可以解决,但有些值可能无法正确传递。如果某个值似乎没有正确转义,请不要尝试通过向值中添加转义序列来解决问题。将来改进转义支持的 CMake 版本中,您的解决方法可能会失效。相反,可以考虑在(已配置的)头文件中定义该宏。然后报告该限制。已知的限制包括
# - broken almost everywhere
; - broken in VS IDE 7.0 and Borland Makefiles
, - broken in VS IDE
% - broken in some cases in NMake
& | - broken in some cases on MinGW
^ < > \" - broken in most Make tools on Windows
CMake 不会直接拒绝这些值,因为它们在某些情况下有效。请谨慎使用。
可以使用语法 $<...>
在 COMPILE_DEFINITIONS
的内容中使用“生成器表达式”。有关可用的表达式,请参见手册 cmake-generator-expressions(7)
。有关定义构建系统属性的更多信息,请参见手册 cmake-buildsystem(7)
。
相应的 COMPILE_DEFINITIONS_<CONFIG>
属性可以设置为指定每个配置的定义。应首选生成器表达式,而不是设置替代属性。