CMP0051

在 3.1 版本加入.

在 SOURCES 目标属性中列出 TARGET_OBJECTS

CMake 3.0 及更低版本在返回 SOURCES 目标属性时不包含 TARGET_OBJECTS generator expression

配置时 CMake 代码无法处理生成器表达式。如果在配置时使用 SOURCES 目标属性,可能需要先使用 string(GENEX_STRIP) 命令删除生成器表达式。生成时的 CMake 代码,如 file(GENERATE) 可以处理内容而无需剥离。

此策略的“旧”行为是从 SOURCES 目标属性中省略 TARGET_OBJECTS 表达式。此策略的“新”行为是在输出中包含“TARGET_OBJECTS”表达式。

此策略是在 CMake 版本 3.1 中引入的。 CMake 版本 |发布|当未设置策略并使用“旧”行为时发出警告。使用 cmake_policy() 命令将其显式设置为 OLDNEW

备注

策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。