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 行为按定义是 deprecated by definition 的,并可能在未来的 CMake 版本中移除。