CMP0056¶
在 3.2 版本加入.
尊重 try_compile() 源文件签名中的链接标志。
try_compile() 命令源文件签名生成一个 CMakeLists.txt 文件以将源文件构建为可执行文件。为了以与调用项目可能编译的方式相同的方式编译源代码,生成的项目将 CMAKE_<LANG>_FLAGS 变量的值设置为调用项目中的值。 CMAKE_EXE_LINKER_FLAGS 变量的值在某些情况下可能也需要,但 CMake 3.1 及更低版本未在生成的项目中设置它。 CMake 3.2 及更高版本更喜欢设置它,以便链接器标志和编译器标志都得到尊重。此策略提供与 3.2 之前的行为的兼容性。
此策略的“旧”行为是不在生成的测试项目中设置 CMAKE_EXE_LINKER_FLAGS 变量的值。此策略的“新”行为是将测试项目中的 CMAKE_EXE_LINKER_FLAGS 变量的值设置为与调用项目中的值相同。
如果项目代码没有明确设置策略,用户可以通过在缓存中定义 CMAKE_POLICY_DEFAULT_CMP0056 变量在命令行上进行设置。
此策略是在 CMake 版本 3.2 中引入的。与大多数政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时,默认情况下*不*发出警告。请参阅 CMAKE_POLICY_WARNING_CMP0056 变量的文档以控制警告。
备注
策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。