CMP0096

版本 3.16 中新增。

project() 命令保留版本组件中的前导零。

VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] 参数传递给 project() 命令时,它将版本字符串存储在 PROJECT_VERSION 变量中,并将各个整数版本组件存储在 PROJECT_VERSION_{MAJOR,MINOR,PATCH,TWEAK} 变量中(参见策略 CMP0048)。CMake 3.15 及更低版本删除了每个组件的前导零。CMake 3.16 及更高版本倾向于保留前导零。此策略为尚未更新为预期新行为的项目提供了兼容性。

此策略的 OLD 行为删除所有组件中的前导零,例如版本 1.07.06 变为 1.7.6。此策略的 NEW 行为保留所有组件中的前导零,例如版本 1.07.06 保持不变。

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

注意

deprecated by definition,此策略的 OLD 行为已弃用,并且将来版本的 CMake 可能会将其移除。