[ANNOUNCE] CMake 3.27.0-rc2 is ready for testing
John Parent
john.parent at kitware.com
Mon Jun 12 20:00:00 BST 2023
I am proud to announce the second* CMake 3.27 release candidate.
https://cmake.org/download/
Documentation is available at:
https://cmake.org/cmake/help/v3.27
Release notes appear below and are also published at
https://cmake.org/cmake/help/v3.27/release/3.27.html
*Note: The first release candidate, 3.27.0-rc1, was released but not
announced
due to regressions discovered prior to the announcement process.
Some of the more significant changes in CMake 3.27 are:
* "cmake(1)" now supports interactive debugging of the CMake language.
See the "--debugger" option.
* The Visual Studio Generators for VS 2015 and above learned to select
the Windows SDK version explicitly using a "version=" field in the
"CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
Selection.
* Apple text-based stubs (i.e. ".tbd" files) may now be created for
shared libraries on macOS. See the "ENABLE_EXPORTS" property.
* The "SKIP_LINTING" source file property was added to suppress
target-wide code checks on specific sources.
* The "COMPILE_ONLY" generator expression was added to specify
compilation usage requirements without any linking requirements.
* Compatibility with versions of CMake older than 3.5 is now
deprecated and will be removed from a future version. Calls to
"cmake_minimum_required()" or "cmake_policy()" that set the policy
version to an older value now issue a deprecation diagnostic.
* The "FindCUDA" module, which has been deprecated since CMake 3.10,
has been removed by policy "CMP0146". Port projects to CMake's
first-class "CUDA" language support.
* The "FindPythonInterp" and "FindPythonLibs" modules, which have been
deprecated since CMake 3.12, have been removed by policy "CMP0148".
Port projects to "FindPython3", "FindPython2", or "FindPython".
* "cmake --build $dir --verbose" will now print the working directory
and command line used to perform the build.
CMake 3.27 Release Notes
************************
Changes made since CMake 3.26 include the following.
New Features
============
Debugger
--------
* "cmake(1)" now supports interactive debugging of the CMake language.
See the "--debugger" option.
Presets
-------
* "cmake-presets(7)" files now support schema version "7".
* "cmake-presets(7)" now supports "$penv{}" macro expansion in
"include" fields.
Generators
----------
* The Makefile and Ninja generators now support using the "--
dependency-file" linker flag, added by GNU Binutils 2.35 and LLVM's
LLD 12.0.0, so that files read by the linker will cause a relink if
they change (typically modified timestamps). See the
"CMAKE_LINK_DEPENDS_USE_LINKER" variable.
* The Visual Studio Generators for VS 2015 and above learned to select
the Windows SDK version explicitly using a "version=" field in the
"CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
Selection.
Languages
---------
* The "CXX" language now treats source file extensions ".ccm",
".cxxm", and ".c++m" as C++.
File-Based API
--------------
* The "cmake-file-api(7)" "codemodel" version 2 "version" field has
been updated to 2.6.
* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
a new "frameworks" field in the "compileGroups" objects.
Platforms
---------
* Apple text-based stubs (i.e. ".tbd" files) may now be created for
shared libraries on macOS. See the "ENABLE_EXPORTS" property.
Commands
--------
* The "add_custom_command()" command gained a new
"DEPENDS_EXPLICIT_ONLY" option to tell the Ninja Generators not to
add any dependencies implied by the target to which it is attached.
The "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY" variable was
added to enable "DEPENDS_EXPLICIT_ONLY" on all calls to
"add_custom_command()" command.
* The "cmake_file_api()" command was added for projects to add "CMake
file API" queries for the current CMake run.
* The "find_package()" command now searches prefixes specified by
upper-case "<PACKAGENAME>_ROOT" CMake variables and upper-case
"<PACKAGENAME>_ROOT" environment variables. See policy "CMP0144".
* The "install(CODE)" and "install(SCRIPT)" commands now support the
"$<INSTALL_PREFIX>" generator expression.
Variables
---------
* The "CMAKE_DLL_NAME_WITH_SOVERSION" variable and associated
"DLL_NAME_WITH_SOVERSION" target property were added to optionally
append the "SOVERSION" to the filename of the ".dll" part of a
shared library on Windows.
* Variables "CMAKE_VS_DEBUGGER_COMMAND",
"CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS",
"CMAKE_VS_DEBUGGER_ENVIRONMENT", and
"CMAKE_VS_DEBUGGER_WORKING_DIRECTORY" were added to initialize
corresponding target properties.
* The "CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION" variable was
added to initialize the "VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
target property on all targets when they are created.
Properties
----------
* A "CUDA_CUBIN_COMPILATION" target property was added to Object
Libraries to support compiling to ".cubin" files instead of host
object files. Currently only supported with NVIDIA.
* A "CUDA_FATBIN_COMPILATION" target property was added to Object
Libraries to support compiling to ".fatbin" files instead of host
object files. Currently only supported with NVIDIA.
* A "CUDA_OPTIX_COMPILATION" target property was added to Object
Libraries to support compiling to ".optixir" files instead of host
object files. Currently only supported with NVIDIA.
* The "<LANG>_CLANG_TIDY", "<LANG>_CPPCHECK", "<LANG>_CPPLINT", and
"<LANG>_INCLUDE_WHAT_YOU_USE", target properties now support
"generator expressions".
* The "<LANG>_LINKER_LAUNCHER" target property now supports "generator
expressions".
* The "SKIP_LINTING" source file property was added to suppress
target-wide code checks on specific sources.
Modules
-------
* The "FindCUDAToolkit" module now provides an imported target for
"cudla", and imported targets for CUPTI's "nvperf" and "pcsampling"
components.
* The "FindDoxygen" module's "doxygen_add_docs()" command gained a
"CONFIG_FILE" option to specify a custom doxygen configuration file.
* The "FindOpenGL" module gained support for components "GLES2" and
"GLES3".
* The "FindwxWidgets" module now provides an imported target.
Generator Expressions
---------------------
* The "COMPILE_ONLY" generator expression was added to specify
compilation usage requirements without any linking requirements.
* "$<LIST:...>" generator expressions were added for query,
transformation, and ordering operations on lists.
* "$<PATH:...>" generator expressions for decomposition and
transformation operations learned to process lists of paths element-
wise.
Autogen
-------
* The "CMAKE_AUTOMOC_EXECUTABLE", "CMAKE_AUTORCC_EXECUTABLE", and
"CMAKE_AUTOUIC_EXECUTABLE" variables were added to initialize the
corresponding target properties as targets are created.
* The "AUTOGEN_USE_SYSTEM_INCLUDE" target property and corresponding
"CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE" variable were added to explicitly
control whether autogen headers are considered system headers.
* The "INTERFACE_AUTOMOC_MACRO_NAMES" target property was added to
specify macro names for "moc" as a transitive usage requirement.
CTest
-----
* The "TIMEOUT_SIGNAL_NAME" and "TIMEOUT_SIGNAL_GRACE_PERIOD" test
properties were added to specify a POSIX signal to send to a test
process when its timeout is reached.
CPack
-----
* The "CPack Inno Setup Generator" was added to package using Inno
Setup.
Deprecated and Removed Features
===============================
* Compatibility with versions of CMake older than 3.5 is now
deprecated and will be removed from a future version. Calls to
"cmake_minimum_required()" or "cmake_policy()" that set the policy
version to an older value now issue a deprecation diagnostic.
* The Extra Generators have been deprecated. IDEs may use the "cmake-
file-api(7)" to view CMake-generated project build trees.
* The "FindCUDA" module, which has been deprecated since CMake 3.10,
has been removed by policy "CMP0146". Port projects to CMake's
first-class "CUDA" language support.
* The "FindPythonInterp" and "FindPythonLibs" modules, which have been
deprecated since CMake 3.12, have been removed by policy "CMP0148".
Port projects to "FindPython3", "FindPython2", or "FindPython".
* The "Dart" and "FindDart" modules have been deprecated via policy
"CMP0145". Port projects to the "CTest" module.
* The "Visual Studio 9 2008" generator is now deprecated and will be
removed in a future version of CMake.
Other Changes
=============
* "cmake --build $dir --verbose" will now print the working directory
and command line used to perform the build.
* The "ExternalProject" and "FetchContent" modules now resolve
relative "GIT_REPOSITORY" paths as relative to the parent project's
remote, not as a relative local file system path. See "CMP0150".
* The "ExternalProject" "configure" step no longer re-runs on every
build when the "UPDATE_DISCONNECTED" option is enabled. It will only
re-run if details of the "download", "update", or "patch" step
change.
* The "ExternalProject" "update" and "patch" steps now always re-run
if any of their details change, even if the "UPDATE_DISCONNECTED"
option is enabled. If using the "GIT" download method, and the
"GIT_TAG" is changed to a commit that is not already known locally,
an error is now issued instead of silently using the previous
"GIT_TAG".
* The "FindPython", "FindPython2" and "FindPython3" modules now
support the Windows ARM64 platform.
* The "file(GET_RUNTIME_DEPENDENCIES)" command now case-preserves DLL
names reported on Windows. They are still converted to lowercase
for filter matching.
* The "SYSTEM" target property is now honored for Apple Frameworks.
* Visual Studio Generators, for VS 15.8 (2017) and newer, now build
custom commands in parallel. See policy "CMP0147".
----------------------------------------------------------------------------
Changes made since CMake 3.27.0-rc1:
Ben Boeckel (1):
Makefiles: quote `$(COLOR)` expansions
Björn Esser (1):
bootstrap: Add --(no-)system-cppdap configuration switch
Brad King (2):
Modules: Restore unnecessary inclusions for compatibility
CMake 3.27.0-rc2
Marc Chevrier (1):
add_test: Restore support for empty test arguments
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-devel/attachments/20230612/f520fbc8/attachment.htm>
More information about the kde-devel
mailing list