CMP0096 — CMake 4.3.0 Documentation

# CMP0096

Added in version 3.16.

The `project()` command preserves leading zeros in version components.

When a `VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]` argument is given to the `project()` command, it stores the version string in the `PROJECT_VERSION` variable and stores individual integer version components in `PROJECT_VERSION_{MAJOR,MINOR,PATCH,TWEAK}` variables (see policy `CMP0048`). CMake 3.15 and below dropped leading zeros from each component. CMake 3.16 and higher prefer to preserve leading zeros. This policy provides compatibility for projects that have not been updated to expect the new behavior.

The `OLD` behavior of this policy drops leading zeros in all components, e.g. such that version `1.07.06` becomes `1.7.6`. The `NEW` behavior of this policy preserves the leading zeros in all components, such that version `1.07.06` remains unchanged.

This policy was introduced in CMake version 3.16. It may be set by `cmake_policy()` or `cmake_minimum_required()`. If it is not set, CMake does not warn, and uses `OLD` behavior.

Note

The `OLD` behavior of a policy is deprecated by definition and may be removed in a future version of CMake.