CMP0158

在版本 3.29 中添加。

add_test() 仅在 交叉编译 时才遵循 CMAKE_CROSSCOMPILING_EMULATOR

在 CMake 3.28 及更低版本中,add_test() 会无条件地使用 CROSSCOMPILING_EMULATOR 目标属性(由 CMAKE_CROSSCOMPILING_EMULATOR 变量初始化)来运行命名可执行目标的测试命令。CMake 3.29 及更高版本倾向于仅在启用了 CMAKE_CROSSCOMPILING 变量时才使用模拟器。在不进行交叉编译时,可以使用 CMAKE_TEST_LAUNCHER 变量代替。此策略提供了对未更新项目的兼容性。

此策略的 OLD 行为是 add_test() 无条件使用 CROSSCOMPILING_EMULATOR 目标属性。此策略的 NEW 行为是 add_test() 仅在 交叉编译 时使用 CROSSCOMPILING_EMULATOR 目标属性。

此策略在 CMake 版本 3.29 中引入。它可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake **不会** 警告,并使用 OLD 行为。

注意

策略的 OLD 行为是 根据定义已弃用,并可能在未来的 CMake 版本中移除。