Roadmap to CMake 4.0
This is a tracking issue for specific changes the CMake maintainers plan for version 4.0.
In CMake 4.x versions:
-
Renumber post-3.31 development from 3.32 to 4.0: !10183 (merged)
we can remove some compatibility with CMake 3.x versions and older:
-
Simplify representation of removed policies: !9993 (merged) -
Remove compatibility with CMake versions older than 2.8.0: !10188 (merged) -
Remove compatibility with CMake versions older than 2.8.12: !10195 (merged) -
Remove compatibility with CMake versions older than 3.0: !10198 (merged) -
Remove compatibility with CMake versions older than 3.1: !10205 (merged) -
Remove Visual Studio generator pre-3.1 arch-specific names: #26481 (closed) -
Remove compatibility with CMake versions older than 3.2: !10210 (merged) -
Remove compatibility with CMake versions older than 3.3: !10210 (merged) -
Remove compatibility with CMake versions older than 3.4: !10210 (merged) -
Remove compatibility with CMake versions older than 3.5: !10210 (merged) -
Option to configure projects written for outdated CMake versions: #26698 (closed)
With a major version bump we can make long-desired changes that may require usage updates by clients, e.g., to remove work arounds, as these could not be made with a policy:
-
Preserve symlinks in references to cmake itself: #19849 (closed), #21059 (closed) -
Remove path translation map: #16228 (closed) -
Windows: Avoid actual-case-on-disk lookup in low-level operations: #20214 (closed) -
Windows: Implement realpath (without resolving subst drives): #17206 (closed), #26750 (closed) -
macOS: Use system compilers without explicit SDK by default: #19180 (closed) -
Document policy removal schedule for the future: !10222 (merged) -
Modernize LICENSE file conventions: !10416 (merged) -
Cull list of supported systems to drop those that no longer work: #26496EDIT: This can be deferred.
We can also make some code style updates:
-
Update clang-format to version 18 and enforce "east const": #26123 (closed), !10225 (merged)
Edited by Brad King