CMP0159

在 3.29 版本中新增。

file(STRINGS) 使用 REGEX 更新 CMAKE_MATCH_<n>

在 CMake 3.28 及以下版本中,file(STRINGS) 命令的 REGEX 选项不影响 CMAKE_MATCH_<n> 变量。CMake 3.29 及以上版本更倾向于使用文件中上次匹配中的捕获结果来更新 CMAKE_MATCH_<n> 变量,类似于 string(REGEX MATCHALL) 命令。对于尚未更新为符合此行为的项目,此策略提供了兼容性。

此策略的 OLD 行为是:具有 REGEXfile(STRINGS) 不会在 CMAKE_MATCH_<n> 变量中存储捕获组。 NEW 行为是:存储捕获组。

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

注意

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