COMPILE_DEFINITIONS¶
用于编译源文件的预处理器定义。
可以使用语法 VAR
或 VAR=value
将 COMPILE_DEFINITIONS
属性设置为用分号分隔的预处理器定义列表。不支持函数式定义。CMake 会自动针对本机构建系统正确地转义该值(注意,CMake 语言语法可能需要转义符才能指定某些值)。此属性可以使用名称 COMPILE_DEFINITIONS_<CONFIG>
在每个配置上进行设置,其中 <CONFIG>
是一个大写名称(例如 COMPILE_DEFINITIONS_DEBUG
)。
CMake 会自动删除本机构建工具不支持的一些定义。Xcode 不支持源文件上的每个配置定义。
版本 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-generator-expressions(7)
手册以了解可用的表达式。但是,Xcode
不支持每个配置、每个源设置,因此对于该生成器,不允许依赖于构建配置的表达式。
应优先使用生成器表达式,而不是设置备用每个配置属性。