CMP0096¶
在 3.16 版本加入.
project() 命令保留版本组件中的前导零。
当 VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] 参数被提供给 project() 命令时,它将版本字符串存储在 ` PROJECT_VERSION` 变量并将各个整数版本组件存储在``PROJECT_VERSION_{MAJOR,MINOR,PATCH,TWEAK}`` 变量中(参见策略:policy:CMP0048)。 CMake 3.15 及更低版本从每个组件中删除了前导零。 CMake 3.16 及更高版本倾向于保留前导零。此策略为尚未更新以期待新行为的项目提供兼容性。
该策略的“旧”行为会在所有组件中删除前导零,例如这样版本 1.07.06 就变成了 1.7.6。此策略的“新”行为保留所有组件中的前导零,因此版本“1.07.06”保持不变。
此策略是在 CMake 版本 3.16 中引入的。与许多政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时*不*发出警告。使用 cmake_policy() 命令将其显式设置为 OLD 或 NEW。
备注
策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。