COMPILE_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>
属性可以用来指定每个配置的定义。生成器表达式要优于设置备选属性。