I am proud to announce the first CMake 3.30 release candidate.
https://cmake.org/download/
Documentation is available at:
https://cmake.org/cmake/help/v3.30
Release notes appear below and are also published at
https://cmake.org/cmake/help/v3.30/release/3.30.html
Release milestone is available at:
https://gitlab.kitware.com/cmake/cmake/-/milestones/142
Some of the most significant changes in CMake 3.30 are:
* "cmake-presets(7)" files now support schema version "9". "include"
fields now expand all macros except "$env{}" and preset-specific
macros, i.e., those derived from the fields inside a preset's
definition.
* The "Compile Features" functionality now implements support for the
"cxx_std_26" and "cuda_std_26" meta-features to indicate that the
compiler mode must be at least C++26. These meta-features were first
documented by CMake 3.25, but were not fully implemented.
* The "CMAKE__STANDARD_LATEST" variable was added to describe
the latest "" language standard CMake supports for the
selected compiler.
* The "CMAKE_TLS_VERSION" variable and "CMAKE_TLS_VERSION" environment
variable were added to specify a default minimum TLS version for
connections to "https://"; URLs by the "file(DOWNLOAD)" and
"file(UPLOAD)" commands.
* The "GENERATED" source file property is now visible in all
directories. See policy "CMP0163". Policy "CMP0118"'s
documentation has been revised to describe its actual effects.
* The "FindPython", "FindPython2", and "FindPython3" modules, on
Windows, now offer better support for the Python debug variant.
* The "TARGET_PROPERTY" generator expression learned to evaluate
custom transitive properties defined by new
"TRANSITIVE_COMPILE_PROPERTIES" and "TRANSITIVE_LINK_PROPERTIES"
target properties.
* The "CPack WIX Generator" gained support for WiX Toolset v4. See the
"CPACK_WIX_VERSION" variable.
* The "FindBoost" module has been removed by policy "CMP0167". Port
projects to upstream Boost's "BoostConfig.cmake" package
configuration file, for which "find_package(Boost)" now searches.
* The precompiled Windows ".msi" installers provided on cmake.org,
when performing a fresh installation, now modify the system-wide
"PATH" by default.
CMake 3.30 Release Notes
Changes made since CMake 3.29 include the following.
New Features
Presets
---
* "cmake-presets(7)" files now support schema version "9". "include"
fields now expand all macros except "$env{}" and preset-specific
macros, i.e., those derived from the fields inside a preset's
definition.
File-Based API
--
* The "cmake-file-api(7)" "cmakeFiles" version 1 object's "version"
field has been updated to 1.1. It gained a "globsDependent" field
to report "file(GLOB)" calls using "CONFIGURE_DEPENDS".
Generators
--
* Visual Studio Generators now add "UseDebugLibraries" indicators to
".vcxproj" files to denote which configurations are debug
configurations. See policy "CMP0162".
Languages
-
* The "Compile Features" functionality now implements support for the
"cxx_std_26" and "cuda_std_26" meta-features to indicate that the
compiler mode must be at least C++26. These meta-features were first
documented by CMake 3.25, but were not fully implemented.
Commands
* The "add_library()" command, on platforms that do not support shared
libraries, now rejects creation of shared libraries instead of
automatically converting them to static libraries. See policy
"CMP0164".
* The "enable_language()" command now fails with an error if it is
called before the first "project()" call. See policy "CMP0165".
* The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained a
"TLS_VERSION " option to specify the minimum TLS version for
connections to "https://"; URLs.
Variables
-
* The "CMAKE__STANDARD_LATEST" variable was added to describe
the latest "" language standard CMake supports for the
selected compiler.
* The "CMAKE_TLS_VERIFY" environment variable was added as a fallback
to the existing "CMAKE_TLS_VERIFY" variable. It specifies whether
to verify the server certificate for "https://"; URLs by default.
* The "CMAKE_TLS_VERSION" variable and "CMAKE_TLS_VERSION" environment
variable were added to specify a default minimum TLS version for
connections to "https://"; URLs by the "file(DOWNLOAD)" and
"file(UPLOAD)" commands.
* The "CMAKE_VS_USE_DEBUG_LIBRARIES" variable and corresponding
"VS_USE_DEBUG_LIBRARIES" target property were added to explicitly
control "UseDebugLibraries" indicators in ".vcxproj" files.
Properties
--
* The "GENERATED" source file property is now visible in all
directories. See policy "CMP0163". Policy "CMP0118"'s
documentation has been revised to describe its actual effects.
* The "PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE" global property
can be used to propagate "CMAKE_PROJECT_TOP_LEVEL_INCLUDES" into