CMP0056

在 3.2 版本中添加。

try_compile() 源文件签名中遵守链接标记。

try_compile() 命令的源文件签名生成一个 CMakeLists.txt 文件用于将源文件构建为一个可执行文件。为了以调用项目编译源文件的方式编译源文件,生成的项目将 CMAKE_<LANG>_FLAGS 变量的值设置为调用项目中的值。在某些情况下,可能还需要 CMAKE_EXE_LINKER_FLAGS 变量的值,但是 CMake 3.1 及更早版本并未在生成的项目中将其设置。CMake 3.2 及更高版本更愿意设置它,以便同时遵守链接器标记和编译器标记。此策略与 3.2 之前的行为兼容。

对此策略而言,OLD 行为是不设置 CMAKE_EXE_LINKER_FLAGS 变量的值在生成的测试项目中。对此策略而言,NEW 行为是将 CMAKE_EXE_LINKER_FLAGS 变量的值在测试项目中设置为与调用项目中相同的值。

如果项目代码未明确设置此策略,则用户可以通过在缓存中定义 CMAKE_POLICY_DEFAULT_CMP0056 变量在命令行中设置此策略。

此策略是从 CMake 版本 3.2 中引入的。可以通过以下方式设置该策略:cmake_policy()cmake_minimum_required()。如果未设置其值,则 CMake 默认情况下不会发出警告,并使用 OLD 行为。

参阅 CMAKE_POLICY_WARNING_CMP0056 变量的文档以控制警告。

注意

一项策略的 OLD 行为从定义上来讲就是 已弃用,并且可能会在 CMake 的未来版本中将其移除。