CMP0137

在 3.24 版本加入.

try_compile() 在项目模式下传递平台变量。

try_compile() 命令 source file 签名将包含平台设置的 CMake 变量以及由 CMAKE_TRY_COMPILE_PLATFORM_VARIABLES 变量指定的变量传播到生成的测试项目中。这有助于测试项目以与调用项目相同的方式驱动工具链。在 CMake 3.23 及以下版本中, whole-project 签名不会自动传播平台变量。 CMake 3.24 及更高版本更喜欢在 whole-project 签名中传播平台变量。此策略提供与尚未更新以预期行为的项目的兼容性。

此策略的“旧”行为是不将任何其他变量传递给 whole-project 签名。此策略的“新”行为是传递与 source file 签名相同的变量。

无论策略设置如何,CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES 变量都可以设置为禁止通过任一签名传递平台变量。

此策略是在 CMake 版本 3.24 中引入的。使用 cmake_policy() 命令将此策略显式设置为 OLDNEW。与许多政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时,默认情况下*不*发出警告。

备注

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