CMP0158

在版本 3.29 中新增。

add_test() 僅在 cross-compiling(交叉編譯)時,才會遵循 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() 僅在 cross-compiling(交叉編譯)時,才使用 CROSSCOMPILING_EMULATOR 目標屬性。

此策略在 CMake 版本 3.29 中引入。它可以使用 cmake_policy()cmake_minimum_required() 進行設定。如果未設定,CMake 會發出警告,並使用 OLD 行為。

注意

策略的 OLD 行為依定義已棄用,並可能在未來版本的 CMake 中移除。