mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-16 23:41:15 -05:00
Help: Consolidate 3.15 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.15.rst`.
This commit is contained in:
325
Help/release/3.15.rst
Normal file
325
Help/release/3.15.rst
Normal file
@@ -0,0 +1,325 @@
|
||||
CMake 3.15 Release Notes
|
||||
************************
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. contents::
|
||||
|
||||
Changes made since CMake 3.14 include the following.
|
||||
|
||||
* The :command:`execute_process` command gained a `COMMAND_ECHO` option
|
||||
and supporting :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable
|
||||
to enable echoing of the command-line string before execution.
|
||||
|
||||
* New target property :prop_tgt:`ADDITIONAL_CLEAN_FILES` and directory property
|
||||
:prop_dir:`ADDITIONAL_CLEAN_FILES` were added. They allow to register
|
||||
additional files that should be removed during the clean stage.
|
||||
|
||||
* Directory property :prop_dir:`ADDITIONAL_MAKE_CLEAN_FILES` was marked
|
||||
deprecated. The new directory property :prop_dir:`ADDITIONAL_CLEAN_FILES`
|
||||
should be used instead.
|
||||
|
||||
* IBM Clang-based XL compilers that define ``__ibmxl__`` now use the
|
||||
compiler id ``XLClang`` instead of ``XL``. See policy :policy:`CMP0089`.
|
||||
|
||||
* :command:`add_library` command ``ALIAS`` option learned to support
|
||||
import libraries of the ``UNKNOWN`` type.
|
||||
|
||||
* AppleClang compiler have learned how to compile C++20.
|
||||
|
||||
* Support for the Clang-based ARM compiler was added with compiler id ``ARMClang``.
|
||||
|
||||
* The ``Clang`` compiler variant on Windows that targets the MSVC ABI
|
||||
but has a GNU-like command line is now supported.
|
||||
|
||||
* The variable :variable:`CMAKE_AUTOMOC_RELAXED_MODE` is considered
|
||||
deprecated. Support still exists but will be removed in future versions.
|
||||
|
||||
* The :manual:`cmake(1)` ``--build`` tool ``--target`` parameter gained support for
|
||||
multiple targets, e.g. ``cmake --build . --target Library1 Library2``.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now continues adding files to an
|
||||
archive, even if some of the files aren't readable. This behavior is more
|
||||
consistent with the classic ``tar`` tool.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now parses all flags, and if an
|
||||
invalid flag was provided, a warning is issued.
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now displays an error if no action
|
||||
flag was specified, along with a list of possible actions: ``t`` (list),
|
||||
``c`` (create) or ``x`` (extract).
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool allow for extract (``-x``) or list
|
||||
(``-t``) only specific files or directories. To select pathnames append
|
||||
a space-separated list of file names or directories.
|
||||
When extracting selected files or directories, you must provide their exact
|
||||
pathname, as printed by list (``-t``)
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now support Zstandard compression
|
||||
algorithm with ``--zstd`` option. Zstandard was designed to give
|
||||
a compression ratio comparable to that of the DEFLATE (zip) algorithm,
|
||||
but faster, especially for decompression.
|
||||
|
||||
* A :variable:`CMAKE_FRAMEWORK` variable was added to
|
||||
initialize the :prop_tgt:`FRAMEWORK` property on all
|
||||
targets.
|
||||
|
||||
* A new ``--install`` option was added to :manual:`cmake(1)`.
|
||||
This may be used after building a project to run installation without
|
||||
using the generated build system or the native build tool.
|
||||
|
||||
* The :command:`cmake_parse_arguments` command gained an additional
|
||||
``<prefix>_KEYWORDS_MISSING_VALUES`` output variable to report
|
||||
keyword arguments that were given by the caller with no values.
|
||||
|
||||
* The :manual:`cmake(1)` ``--target`` parameter gained shorter
|
||||
version ``-t``, e.g. ``cmake --build . -t Library1 Library2`` is
|
||||
equivalant to ``cmake --build . --target Library1 Library2``.
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained a new
|
||||
:variable:`CPACK_IFW_PACKAGE_STYLE_SHEET` variable to customize the
|
||||
installer stylesheet.
|
||||
|
||||
* The :command:`ctest_submit` command learned a new option: ``BUILD_ID``.
|
||||
This can be used to store the ID assigned to this build by CDash to a
|
||||
variable.
|
||||
|
||||
* The :command:`ctest_update` command learned to honor a new variable:
|
||||
:variable:`CTEST_UPDATE_VERSION_OVERRIDE`. This can be used to specify
|
||||
the current version of your source tree rather than using the update
|
||||
command to discover the current version that is checked out.
|
||||
|
||||
* The ``$<CUDA_COMPILER_ID:...>`` and ``$<CUDA_COMPILER_VERSION:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>` were added.
|
||||
|
||||
* The :envvar:`CMAKE_GENERATOR` environment variable was added
|
||||
to specify a default generator to use when :manual:`cmake(1)` is
|
||||
run without a ``-G`` option. Additionally, environment variables
|
||||
:envvar:`CMAKE_GENERATOR_PLATFORM`, :envvar:`CMAKE_GENERATOR_TOOLSET`,
|
||||
and :envvar:`CMAKE_GENERATOR_INSTANCE` were created to configure
|
||||
the generator.
|
||||
|
||||
* An explicit deprecation diagnostic was added for policy ``CMP0066``
|
||||
(``CMP0065`` and below were already deprecated).
|
||||
The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
|
||||
of all policies are deprecated and that projects should port to the
|
||||
NEW behaviors.
|
||||
|
||||
* The :variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable and corresponding
|
||||
:prop_tgt:`CROSSCOMPILING_EMULATOR` target property learned to support
|
||||
arguments to the emulator.
|
||||
|
||||
* The :module:`FindEnvModules` module was added to use Lua- and TCL-based
|
||||
environment modules in :ref:`CTest Scripts <CTest Script>`.
|
||||
|
||||
* The :command:`export(PACKAGE)` command now does nothing unless
|
||||
enabled via :variable:`CMAKE_EXPORT_PACKAGE_REGISTRY`.
|
||||
See policy :policy:`CMP0090`.
|
||||
|
||||
* The :command:`file(INSTALL)` command learned a new argument,
|
||||
``FOLLOW_SYMLINK_CHAIN``, which can be used to recursively resolve and
|
||||
install symlinks.
|
||||
|
||||
* The :command:`file(REMOVE)` and :command:`file(REMOVE_RECURSE)` commands
|
||||
were changed to ignore empty arguments with a warning instead of treating
|
||||
them as a relative path and removing the contents of the current directory.
|
||||
|
||||
* The :module:`FindBoost` module was reworked to expose a more
|
||||
consistent user experience between its config and module modes
|
||||
and with other find modules in general.
|
||||
|
||||
* A new imported target ``Boost::headers`` is now defined (same
|
||||
as ``Boost::boost``).
|
||||
|
||||
* New output variables ``Boost_VERSION_MACRO``,
|
||||
``Boost_VERSION_MAJOR``, ``Boost_VERSION_MINOR``,
|
||||
``Boost_VERSION_PATCH``, and ``Boost_VERSION_COUNT``
|
||||
were added.
|
||||
|
||||
* The internal logic for determining the value for
|
||||
``Boost_FOUND``, for version and component checks, and
|
||||
for reporting the result to the user was replaced with
|
||||
the :module:`FindPackageHandleStandardArgs` module. (This
|
||||
fixed a bug that sometimes printed wrong status
|
||||
messages in config mode.)
|
||||
|
||||
* The ``QUIET`` argument passed to :command:`find_package` is no
|
||||
longer ignored in config mode.
|
||||
|
||||
* *Known issue*: The CMake package shipped with Boost ``1.70.0``
|
||||
ignores the ``QUIET`` argument passed to :command:`find_package`.
|
||||
This is fixed in the next Boost release.
|
||||
|
||||
* The input switch ``Boost_DETAILED_FAILURE_MSG`` was
|
||||
removed.
|
||||
|
||||
* ``Boost_VERSION`` now reports the version in ``x.y.z``
|
||||
format in module mode. See policy :policy:`CMP0093`.
|
||||
|
||||
* The :module:`FindCups` module now provides imported targets.
|
||||
|
||||
* The :module:`FindGLEW` module now provides an interface more consistent
|
||||
with what upstream GLEW provides in its own CMake package files.
|
||||
|
||||
* Variable :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` was added to tell
|
||||
:command:`find_package` calls to look for a package configuration
|
||||
file first even if a find module is available.
|
||||
|
||||
* The :module:`FindPostgreSQL` module learned to find debug and release
|
||||
variants separately.
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
have changed default strategy for lookup. See policy :policy:`CMP0094`.
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain a new variable to control frameworks lookup on macOS.
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain a new way to control lookup strategy.
|
||||
|
||||
* Modules :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3`
|
||||
gain a new target (respectively ``Python::Module``, ``Python2::Module``
|
||||
and ``Python3::Module``) which can be used to develop Python modules.
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain capability to control how virtual environments are handled.
|
||||
|
||||
* The :manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
``C_COMPILER_ID``, ``CXX_COMPILER_ID``, ``CUDA_COMPILER_ID``,
|
||||
``Fortran_COMPILER_ID``, ``COMPILE_LANGUAGE``, ``COMPILE_LANG_AND_ID``, and
|
||||
``PLATFORM_ID`` learned to support matching one value from a comma-separated
|
||||
list.
|
||||
|
||||
* A new ``COMPILE_LANG_AND_ID`` generator expression was introduced to
|
||||
allow specification of compile options for target files based on the
|
||||
:variable:`CMAKE_<LANG>_COMPILER_ID` and :prop_sf:`LANGUAGE` of
|
||||
each source file.
|
||||
|
||||
* A new ``$<FILTER:list,INCLUDE|EXCLUDE,regex>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
|
||||
* New ``$<TARGET_FILE_BASE_NAME:...>``, ``$<TARGET_LINKER_FILE_BASE_NAME:...>``
|
||||
and ``$<TARGET_PDB_FILE_BASE_NAME:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>` have been
|
||||
added to retrieve the base name of various artifacts.
|
||||
|
||||
* New ``$<TARGET_FILE_PREFIX:...>``, ``$<TARGET_LINKER_FILE_PREFIX:...>``,
|
||||
``$<TARGET_FILE_SUFFIX:...>`` and ``$<TARGET_LINKER_FILE_SUFFIX:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>` have been
|
||||
added to retrieve the prefix and suffix of various artifacts.
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator now supports
|
||||
:command:`add_custom_command` and :command:`add_custom_target`
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator is now available on Linux.
|
||||
|
||||
* Support was added for the IAR compiler architectures Renesas RX,
|
||||
RL78, RH850 and Texas Instruments MSP430.
|
||||
* The IAR compilers built for Linux (IAR BuildLx) now work as well.
|
||||
|
||||
* ``INTERFACE`` library can now have :prop_tgt:`PUBLIC_HEADER` and
|
||||
:prop_tgt:`PRIVATE_HEADER` properties set. The headers specified by those
|
||||
properties can be installed using the :command:`install(TARGETS)` command by
|
||||
passing the ``PUBLIC_HEADER`` and ``PRIVATE_HEADER`` arguments respectively.
|
||||
|
||||
* :command:`list` learned new sub-commands ``PREPEND``, ``POP_FRONT`` and ``POP_BACK``.
|
||||
|
||||
* The :variable:`CMAKE_MSVC_RUNTIME_LIBRARY` variable and
|
||||
:prop_tgt:`MSVC_RUNTIME_LIBRARY` target property were introduced to
|
||||
select the runtime library used by compilers targeting the MSVC ABI.
|
||||
See policy :policy:`CMP0091`.
|
||||
|
||||
* With MSVC-like compilers the value of :variable:`CMAKE_<LANG>_FLAGS`
|
||||
no longer contains warning flags like ``/W3`` by default.
|
||||
See policy :policy:`CMP0092`.
|
||||
|
||||
* The :command:`message` command learned new types: ``NOTICE``, ``VERBOSE``,
|
||||
``DEBUG`` and ``TRACE``.
|
||||
|
||||
* The :manual:`cmake(1)` command learned a new CLI option ``--loglevel``.
|
||||
|
||||
* The commands :command:`add_custom_command` and :command:`add_custom_target`
|
||||
gained a new ``JOB_POOL`` option that works with the :generator:`Ninja`
|
||||
generator to set the pool variable on the build statement.
|
||||
|
||||
* The :module:`FindPkgConfig` now populates :prop_tgt:`INTERFACE_LINK_OPTIONS`
|
||||
property of imported targets with other (non-library) linker flags.
|
||||
|
||||
* A variable :variable:`CMAKE_PROJECT_INCLUDE_BEFORE` was added to allow
|
||||
injection of custom code before the :command:`project` call.
|
||||
|
||||
* A variable :variable:`CMAKE_PROJECT_INCLUDE` was added to allow injection
|
||||
of custom code into the project without knowing the project name a priori.
|
||||
|
||||
* The ``TARGET_OBJECTS`` :manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
is now supported on ``SHARED``, ``STATIC``, ``MODULE`` libraries and executables.
|
||||
|
||||
* The :manual:`cmake(1)` ``-E remove_directory`` command learned to support
|
||||
removing multiple directories.
|
||||
|
||||
* A new ``$<REMOVE_DUPLICATES:list>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
|
||||
* The :generator:`Xcode` generator now requires at least Xcode 5.
|
||||
|
||||
* The :manual:`cmake-server(7)` mode has been deprecated and will be
|
||||
removed from a future version of CMake. Please port clients to use
|
||||
the :manual:`cmake-file-api(7)` instead.
|
||||
|
||||
* The ``$<SHELL_PATH:...>`` :manual:`generator expression
|
||||
<cmake-generator-expressions(7)>` gained support for a list of paths.
|
||||
|
||||
* The :command:`string` learned a new sub-command ``REPEAT``.
|
||||
|
||||
* SunPro compiler have learned how to compile C++14.
|
||||
|
||||
* Preliminary support for the Swift language with the :generator:`Ninja`
|
||||
generator was added. Use the :envvar:`SWIFTC` environment variable to
|
||||
specify a compiler.
|
||||
|
||||
* Support to emit an output file map was added to enable Swift compilation.
|
||||
|
||||
* A target property :prop_tgt:`Swift_DEPENDENCIES_FILE` was added to targets to
|
||||
indicate where to save the target swift dependencies file. If one is not
|
||||
specified, it will default to `<TARGET>.swiftdeps`.
|
||||
|
||||
* A target property :prop_tgt:`Swift_MODULE_NAME` was added to targets to
|
||||
indicate the Swift module name. If it is not specified, it will default to
|
||||
the name of the target.
|
||||
|
||||
* A source property :prop_sf:`Swift_DEPENDENCIES_FILE` was added to sources to
|
||||
indicate where to save the target swift dependencies file. If one is not
|
||||
specified, it will default to `<OBJECT>.swiftdeps`.
|
||||
|
||||
* A source property :prop_sf:`Swift_DIAGNOSTICS_FILE` was added to sources to
|
||||
indicate where to write the serialised Swift diagnostics.
|
||||
|
||||
* The :module:`UseSWIG` module learned to manage alternate library names by
|
||||
passing ``-interface <library_name>`` for ``python`` language or
|
||||
``-dllimport <library_name>`` for ``CSharp`` language to the ``SWIG``
|
||||
compiler.
|
||||
|
||||
* A :prop_tgt:`VS_PACKAGE_REFERENCES` target property was added to
|
||||
tell :ref:`Visual Studio Generators` to add references to nuget
|
||||
packages.
|
||||
|
||||
* For the :ref:`Visual Studio Generators`,
|
||||
:ref:`Makefile Generators`, and the :generator:`Ninja` generators
|
||||
the Just My Code feature of the Visual Studio Debugger can be
|
||||
leveraged by turning on the :prop_tgt:`VS_JUST_MY_CODE_DEBUGGING` target
|
||||
property. Its default value is provided by the variable
|
||||
:variable:`CMAKE_VS_JUST_MY_CODE_DEBUGGING`.
|
||||
|
||||
* The :prop_tgt:`VS_PROJECT_IMPORT` target property was added which allows
|
||||
to import external .props files in managed Visual Studio targets.
|
||||
|
||||
* A :prop_tgt:`VS_NO_SOLUTION_DEPLOY` target property was added to
|
||||
tell :ref:`Visual Studio Generators` whether to deploy an artifact
|
||||
to the WinCE or Windows Phone target device.
|
||||
|
||||
* The :generator:`Xcode` generator now supports per-target schemes.
|
||||
See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable and
|
||||
:prop_tgt:`XCODE_GENERATE_SCHEME` target property.
|
||||
|
||||
* IBM AIX XL compiler have learned how to compile C++14.
|
||||
@@ -1,6 +0,0 @@
|
||||
CMAKE_FRAMEWORK
|
||||
---------------
|
||||
|
||||
* A :variable:`CMAKE_FRAMEWORK` variable was added to
|
||||
initialize the :prop_tgt:`FRAMEWORK` property on all
|
||||
targets.
|
||||
@@ -1,34 +0,0 @@
|
||||
FindBoost-fphsa
|
||||
---------------
|
||||
|
||||
* The :module:`FindBoost` module was reworked to expose a more
|
||||
consistent user experience between its config and module modes
|
||||
and with other find modules in general.
|
||||
|
||||
* A new imported target ``Boost::headers`` is now defined (same
|
||||
as ``Boost::boost``).
|
||||
|
||||
* New output variables ``Boost_VERSION_MACRO``,
|
||||
``Boost_VERSION_MAJOR``, ``Boost_VERSION_MINOR``,
|
||||
``Boost_VERSION_PATCH``, and ``Boost_VERSION_COUNT``
|
||||
were added.
|
||||
|
||||
* The internal logic for determining the value for
|
||||
``Boost_FOUND``, for version and component checks, and
|
||||
for reporting the result to the user was replaced with
|
||||
the :module:`FindPackageHandleStandardArgs` module. (This
|
||||
fixed a bug that sometimes printed wrong status
|
||||
messages in config mode.)
|
||||
|
||||
* The ``QUIET`` argument passed to :command:`find_package` is no
|
||||
longer ignored in config mode.
|
||||
|
||||
* *Known issue*: The CMake package shipped with Boost ``1.70.0``
|
||||
ignores the ``QUIET`` argument passed to :command:`find_package`.
|
||||
This is fixed in the next Boost release.
|
||||
|
||||
* The input switch ``Boost_DETAILED_FAILURE_MSG`` was
|
||||
removed.
|
||||
|
||||
* ``Boost_VERSION`` now reports the version in ``x.y.z``
|
||||
format in module mode. See policy :policy:`CMP0093`.
|
||||
@@ -1,4 +0,0 @@
|
||||
FindCups-imported-target
|
||||
------------------------
|
||||
|
||||
* The :module:`FindCups` module now provides imported targets.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindGLEW-updates
|
||||
----------------
|
||||
|
||||
* The :module:`FindGLEW` module now provides an interface more consistent
|
||||
with what upstream GLEW provides in its own CMake package files.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindPostgreSQL-config-support
|
||||
-----------------------------
|
||||
|
||||
* The :module:`FindPostgreSQL` module learned to find debug and release
|
||||
variants separately.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindPython-CMP0094
|
||||
------------------
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
have changed default strategy for lookup. See policy :policy:`CMP0094`.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindPython-FIND_FRAMEWORK
|
||||
-------------------------
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain a new variable to control frameworks lookup on macOS.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindPython-FIND_STRATEGY
|
||||
------------------------
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain a new way to control lookup strategy.
|
||||
@@ -1,6 +0,0 @@
|
||||
FindPython-module
|
||||
-----------------
|
||||
|
||||
* Modules :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3`
|
||||
gain a new target (respectively ``Python::Module``, ``Python2::Module``
|
||||
and ``Python3::Module``) which can be used to develop Python modules.
|
||||
@@ -1,5 +0,0 @@
|
||||
FindPython-virtual-env
|
||||
----------------------
|
||||
|
||||
* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
|
||||
gain capability to control how virtual environments are handled.
|
||||
@@ -1,7 +0,0 @@
|
||||
UseSWIG-alternate-library-name
|
||||
------------------------------
|
||||
|
||||
* The :module:`UseSWIG` module learned to manage alternate library names by
|
||||
passing ``-interface <library_name>`` for ``python`` language or
|
||||
``-dllimport <library_name>`` for ``CSharp`` language to the ``SWIG``
|
||||
compiler.
|
||||
@@ -1,6 +0,0 @@
|
||||
add-execute_process-command-echo
|
||||
--------------------------------
|
||||
|
||||
* The :command:`execute_process` command gained a `COMMAND_ECHO` option
|
||||
and supporting :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable
|
||||
to enable echoing of the command-line string before execution.
|
||||
@@ -1,5 +0,0 @@
|
||||
add-xlclang
|
||||
-----------
|
||||
|
||||
* IBM Clang-based XL compilers that define ``__ibmxl__`` now use the
|
||||
compiler id ``XLClang`` instead of ``XL``. See policy :policy:`CMP0089`.
|
||||
@@ -1,10 +0,0 @@
|
||||
additional_clean_files
|
||||
----------------------
|
||||
|
||||
* New target property :prop_tgt:`ADDITIONAL_CLEAN_FILES` and directory property
|
||||
:prop_dir:`ADDITIONAL_CLEAN_FILES` were added. They allow to register
|
||||
additional files that should be removed during the clean stage.
|
||||
|
||||
* Directory property :prop_dir:`ADDITIONAL_MAKE_CLEAN_FILES` was marked
|
||||
deprecated. The new directory property :prop_dir:`ADDITIONAL_CLEAN_FILES`
|
||||
should be used instead.
|
||||
@@ -1,5 +0,0 @@
|
||||
allow-aliasing-unkown-import-targets
|
||||
------------------------------------
|
||||
|
||||
* :command:`add_library` command ``ALIAS`` option learned to support
|
||||
import libraries of the ``UNKNOWN`` type.
|
||||
@@ -1,4 +0,0 @@
|
||||
apple-clang-supports-cxx20
|
||||
--------------------------
|
||||
|
||||
* AppleClang compiler have learned how to compile C++20.
|
||||
@@ -1,4 +0,0 @@
|
||||
armclang
|
||||
--------
|
||||
|
||||
* Support for the Clang-based ARM compiler was added with compiler id ``ARMClang``.
|
||||
@@ -1,5 +0,0 @@
|
||||
clang-gnulike-support
|
||||
---------------------
|
||||
|
||||
* The ``Clang`` compiler variant on Windows that targets the MSVC ABI
|
||||
but has a GNU-like command line is now supported.
|
||||
@@ -1,6 +0,0 @@
|
||||
cmake--install-option
|
||||
---------------------
|
||||
|
||||
* A new ``--install`` option was added to :manual:`cmake(1)`.
|
||||
This may be used after building a project to run installation without
|
||||
using the generated build system or the native build tool.
|
||||
@@ -1,5 +0,0 @@
|
||||
cmake-build-multiply-targets
|
||||
----------------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``--build`` tool ``--target`` parameter gained support for
|
||||
multiple targets, e.g. ``cmake --build . --target Library1 Library2``.
|
||||
@@ -1,6 +0,0 @@
|
||||
cmake-e-tar-creating-archive
|
||||
----------------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now continues adding files to an
|
||||
archive, even if some of the files aren't readable. This behavior is more
|
||||
consistent with the classic ``tar`` tool.
|
||||
@@ -1,8 +0,0 @@
|
||||
cmake-e-tar-error-handling
|
||||
--------------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now parses all flags, and if an
|
||||
invalid flag was provided, a warning is issued.
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now displays an error if no action
|
||||
flag was specified, along with a list of possible actions: ``t`` (list),
|
||||
``c`` (create) or ``x`` (extract).
|
||||
@@ -1,8 +0,0 @@
|
||||
cmake-e-tar-extract-specific-files
|
||||
----------------------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool allow for extract (``-x``) or list
|
||||
(``-t``) only specific files or directories. To select pathnames append
|
||||
a space-separated list of file names or directories.
|
||||
When extracting selected files or directories, you must provide their exact
|
||||
pathname, as printed by list (``-t``)
|
||||
@@ -1,7 +0,0 @@
|
||||
Help/release/dev/cmake-e-tar-zstd-support
|
||||
-----------------------------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``-E tar`` tool now support Zstandard compression
|
||||
algorithm with ``--zstd`` option. Zstandard was designed to give
|
||||
a compression ratio comparable to that of the DEFLATE (zip) algorithm,
|
||||
but faster, especially for decompression.
|
||||
@@ -1,6 +0,0 @@
|
||||
cmake-short-target-option
|
||||
----------------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``--target`` parameter gained shorter
|
||||
version ``-t``, e.g. ``cmake --build . -t Library1 Library2`` is
|
||||
equivalant to ``cmake --build . --target Library1 Library2``.
|
||||
@@ -1,5 +0,0 @@
|
||||
cmake_automoc_relaxed_mode
|
||||
--------------------------
|
||||
|
||||
* The variable :variable:`CMAKE_AUTOMOC_RELAXED_MODE` is considered
|
||||
deprecated. Support still exists but will be removed in future versions.
|
||||
@@ -1,6 +0,0 @@
|
||||
cmake_parse_arguments-keywords_missing_values
|
||||
---------------------------------------------
|
||||
|
||||
* The :command:`cmake_parse_arguments` command gained an additional
|
||||
``<prefix>_KEYWORDS_MISSING_VALUES`` output variable to report
|
||||
keyword arguments that were given by the caller with no values.
|
||||
@@ -1,6 +0,0 @@
|
||||
cpackifw-package-style-sheet
|
||||
----------------------------
|
||||
|
||||
* The :cpack_gen:`CPack IFW Generator` gained a new
|
||||
:variable:`CPACK_IFW_PACKAGE_STYLE_SHEET` variable to customize the
|
||||
installer stylesheet.
|
||||
@@ -1,6 +0,0 @@
|
||||
ctest_submit_get_buildid
|
||||
--------------------------
|
||||
|
||||
* The :command:`ctest_submit` command learned a new option: ``BUILD_ID``.
|
||||
This can be used to store the ID assigned to this build by CDash to a
|
||||
variable.
|
||||
@@ -1,7 +0,0 @@
|
||||
CTEST_UPDATE_VERSION_OVERRIDE
|
||||
-----------------------------
|
||||
|
||||
* The :command:`ctest_update` command learned to honor a new variable:
|
||||
:variable:`CTEST_UPDATE_VERSION_OVERRIDE`. This can be used to specify
|
||||
the current version of your source tree rather than using the update
|
||||
command to discover the current version that is checked out.
|
||||
@@ -1,5 +0,0 @@
|
||||
cuda-compiler-generator-expressions
|
||||
-----------------------------------
|
||||
|
||||
* The ``$<CUDA_COMPILER_ID:...>`` and ``$<CUDA_COMPILER_VERSION:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>` were added.
|
||||
@@ -1,9 +0,0 @@
|
||||
default-generator-env
|
||||
---------------------
|
||||
|
||||
* The :envvar:`CMAKE_GENERATOR` environment variable was added
|
||||
to specify a default generator to use when :manual:`cmake(1)` is
|
||||
run without a ``-G`` option. Additionally, environment variables
|
||||
:envvar:`CMAKE_GENERATOR_PLATFORM`, :envvar:`CMAKE_GENERATOR_TOOLSET`,
|
||||
and :envvar:`CMAKE_GENERATOR_INSTANCE` were created to configure
|
||||
the generator.
|
||||
@@ -1,8 +0,0 @@
|
||||
deprecate-policy-old
|
||||
--------------------
|
||||
|
||||
* An explicit deprecation diagnostic was added for policy ``CMP0066``
|
||||
(``CMP0065`` and below were already deprecated).
|
||||
The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
|
||||
of all policies are deprecated and that projects should port to the
|
||||
NEW behaviors.
|
||||
@@ -1,6 +0,0 @@
|
||||
emulator-arguments
|
||||
------------------
|
||||
|
||||
* The :variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable and corresponding
|
||||
:prop_tgt:`CROSSCOMPILING_EMULATOR` target property learned to support
|
||||
arguments to the emulator.
|
||||
@@ -1,5 +0,0 @@
|
||||
environment-modules
|
||||
-------------------
|
||||
|
||||
* The :module:`FindEnvModules` module was added to use Lua- and TCL-based
|
||||
environment modules in :ref:`CTest Scripts <CTest Script>`.
|
||||
@@ -1,6 +0,0 @@
|
||||
export-package-default-off
|
||||
--------------------------
|
||||
|
||||
* The :command:`export(PACKAGE)` command now does nothing unless
|
||||
enabled via :variable:`CMAKE_EXPORT_PACKAGE_REGISTRY`.
|
||||
See policy :policy:`CMP0090`.
|
||||
@@ -1,6 +0,0 @@
|
||||
file-install-follow-symlink-chain
|
||||
---------------------------------
|
||||
|
||||
* The :command:`file(INSTALL)` command learned a new argument,
|
||||
``FOLLOW_SYMLINK_CHAIN``, which can be used to recursively resolve and
|
||||
install symlinks.
|
||||
@@ -1,6 +0,0 @@
|
||||
file-remove-no-empty
|
||||
--------------------
|
||||
|
||||
* The :command:`file(REMOVE)` and :command:`file(REMOVE_RECURSE)` commands
|
||||
were changed to ignore empty arguments with a warning instead of treating
|
||||
them as a relative path and removing the contents of the current directory.
|
||||
@@ -1,6 +0,0 @@
|
||||
find-package-prefer-config
|
||||
--------------------------
|
||||
|
||||
* Variable :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` was added to tell
|
||||
:command:`find_package` calls to look for a package configuration
|
||||
file first even if a find module is available.
|
||||
@@ -1,7 +0,0 @@
|
||||
genex-COMPILE_LANG_AND_ID
|
||||
--------------------------
|
||||
|
||||
* A new ``COMPILE_LANG_AND_ID`` generator expression was introduced to
|
||||
allow specification of compile options for target files based on the
|
||||
:variable:`CMAKE_<LANG>_COMPILER_ID` and :prop_sf:`LANGUAGE` of
|
||||
each source file.
|
||||
@@ -1,7 +0,0 @@
|
||||
genex-TARGET_FILE_BASE_NAME
|
||||
---------------------------
|
||||
|
||||
* New ``$<TARGET_FILE_BASE_NAME:...>``, ``$<TARGET_LINKER_FILE_BASE_NAME:...>``
|
||||
and ``$<TARGET_PDB_FILE_BASE_NAME:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>` have been
|
||||
added to retrieve the base name of various artifacts.
|
||||
@@ -1,7 +0,0 @@
|
||||
genex-TARGET_FILE_PREFIX
|
||||
------------------------
|
||||
|
||||
* New ``$<TARGET_FILE_PREFIX:...>``, ``$<TARGET_LINKER_FILE_PREFIX:...>``,
|
||||
``$<TARGET_FILE_SUFFIX:...>`` and ``$<TARGET_LINKER_FILE_SUFFIX:...>``
|
||||
:manual:`generator expressions <cmake-generator-expressions(7)>` have been
|
||||
added to retrieve the prefix and suffix of various artifacts.
|
||||
@@ -1,8 +0,0 @@
|
||||
genex-comma-separated
|
||||
---------------------
|
||||
|
||||
* The :manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
``C_COMPILER_ID``, ``CXX_COMPILER_ID``, ``CUDA_COMPILER_ID``,
|
||||
``Fortran_COMPILER_ID``, ``COMPILE_LANGUAGE``, ``COMPILE_LANG_AND_ID``, and
|
||||
``PLATFORM_ID`` learned to support matching one value from a comma-separated
|
||||
list.
|
||||
@@ -1,6 +0,0 @@
|
||||
genex_filter
|
||||
------------
|
||||
|
||||
* A new ``$<FILTER:list,INCLUDE|EXCLUDE,regex>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
@@ -1,5 +0,0 @@
|
||||
ghs_custom_commands
|
||||
-------------------
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator now supports
|
||||
:command:`add_custom_command` and :command:`add_custom_target`
|
||||
@@ -1,4 +0,0 @@
|
||||
ghs-linux
|
||||
---------
|
||||
|
||||
* The :generator:`Green Hills MULTI` generator is now available on Linux.
|
||||
@@ -1,6 +0,0 @@
|
||||
iar-new_architectures
|
||||
---------------------
|
||||
|
||||
* Support was added for the IAR compiler architectures Renesas RX,
|
||||
RL78, RH850 and Texas Instruments MSP430.
|
||||
* The IAR compilers built for Linux (IAR BuildLx) now work as well.
|
||||
@@ -1,7 +0,0 @@
|
||||
iface-headers
|
||||
-------------
|
||||
|
||||
* ``INTERFACE`` library can now have :prop_tgt:`PUBLIC_HEADER` and
|
||||
:prop_tgt:`PRIVATE_HEADER` properties set. The headers specified by those
|
||||
properties can be installed using the :command:`install(TARGETS)` command by
|
||||
passing the ``PUBLIC_HEADER`` and ``PRIVATE_HEADER`` arguments respectively.
|
||||
@@ -1,4 +0,0 @@
|
||||
list-prepend-and-pop-subcommands
|
||||
--------------------------------
|
||||
|
||||
* :command:`list` learned new sub-commands ``PREPEND``, ``POP_FRONT`` and ``POP_BACK``.
|
||||
@@ -1,7 +0,0 @@
|
||||
msvc-runtime-library
|
||||
--------------------
|
||||
|
||||
* The :variable:`CMAKE_MSVC_RUNTIME_LIBRARY` variable and
|
||||
:prop_tgt:`MSVC_RUNTIME_LIBRARY` target property were introduced to
|
||||
select the runtime library used by compilers targeting the MSVC ABI.
|
||||
See policy :policy:`CMP0091`.
|
||||
@@ -1,6 +0,0 @@
|
||||
msvc-warning-flags
|
||||
------------------
|
||||
|
||||
* With MSVC-like compilers the value of :variable:`CMAKE_<LANG>_FLAGS`
|
||||
no longer contains warning flags like ``/W3`` by default.
|
||||
See policy :policy:`CMP0092`.
|
||||
@@ -1,7 +0,0 @@
|
||||
new-message-types-and-logging
|
||||
-----------------------------
|
||||
|
||||
* The :command:`message` command learned new types: ``NOTICE``, ``VERBOSE``,
|
||||
``DEBUG`` and ``TRACE``.
|
||||
|
||||
* The :manual:`cmake(1)` command learned a new CLI option ``--loglevel``.
|
||||
@@ -1,6 +0,0 @@
|
||||
ninja-add_custom_command-pool
|
||||
--------------------------------
|
||||
|
||||
* The commands :command:`add_custom_command` and :command:`add_custom_target`
|
||||
gained a new ``JOB_POOL`` option that works with the :generator:`Ninja`
|
||||
generator to set the pool variable on the build statement.
|
||||
@@ -1,5 +0,0 @@
|
||||
pkg-config-linker-flags
|
||||
-----------------------
|
||||
|
||||
* The :module:`FindPkgConfig` now populates :prop_tgt:`INTERFACE_LINK_OPTIONS`
|
||||
property of imported targets with other (non-library) linker flags.
|
||||
@@ -1,5 +0,0 @@
|
||||
cmake_project_include_before
|
||||
----------------------------
|
||||
|
||||
* A variable :variable:`CMAKE_PROJECT_INCLUDE_BEFORE` was added to allow
|
||||
injection of custom code before the :command:`project` call.
|
||||
@@ -1,5 +0,0 @@
|
||||
cmake_project_include
|
||||
---------------------
|
||||
|
||||
* A variable :variable:`CMAKE_PROJECT_INCLUDE` was added to allow injection
|
||||
of custom code into the project without knowing the project name a priori.
|
||||
@@ -1,5 +0,0 @@
|
||||
relax-TARGET_OBJECTS-generator-expression
|
||||
-----------------------------------------
|
||||
|
||||
* The ``TARGET_OBJECTS`` :manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
is now supported on ``SHARED``, ``STATIC``, ``MODULE`` libraries and executables.
|
||||
@@ -1,5 +0,0 @@
|
||||
remove_directories
|
||||
------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``-E remove_directory`` command learned to support
|
||||
removing multiple directories.
|
||||
@@ -1,6 +0,0 @@
|
||||
remove_duplicates
|
||||
-----------------
|
||||
|
||||
* A new ``$<REMOVE_DUPLICATES:list>``
|
||||
:manual:`generator expression <cmake-generator-expressions(7)>`
|
||||
has been added.
|
||||
@@ -1,4 +0,0 @@
|
||||
require-xcode-5
|
||||
---------------
|
||||
|
||||
* The :generator:`Xcode` generator now requires at least Xcode 5.
|
||||
@@ -1,6 +0,0 @@
|
||||
server-deprecate
|
||||
----------------
|
||||
|
||||
* The :manual:`cmake-server(7)` mode has been deprecated and will be
|
||||
removed from a future version of CMake. Please port clients to use
|
||||
the :manual:`cmake-file-api(7)` instead.
|
||||
@@ -1,5 +0,0 @@
|
||||
shell_path
|
||||
----------
|
||||
|
||||
* The ``$<SHELL_PATH:...>`` :manual:`generator expression
|
||||
<cmake-generator-expressions(7)>` gained support for a list of paths.
|
||||
@@ -1,4 +0,0 @@
|
||||
string-repeat
|
||||
--------------
|
||||
|
||||
* The :command:`string` learned a new sub-command ``REPEAT``.
|
||||
@@ -1,4 +0,0 @@
|
||||
sunpro-supports-cxx14
|
||||
---------------------
|
||||
|
||||
* SunPro compiler have learned how to compile C++14.
|
||||
@@ -1,23 +0,0 @@
|
||||
Swift Language Support
|
||||
----------------------
|
||||
|
||||
* Preliminary support for the Swift language with the :generator:`Ninja`
|
||||
generator was added. Use the :envvar:`SWIFTC` environment variable to
|
||||
specify a compiler.
|
||||
|
||||
* Support to emit an output file map was added to enable Swift compilation.
|
||||
|
||||
* A target property :prop_tgt:`Swift_DEPENDENCIES_FILE` was added to targets to
|
||||
indicate where to save the target swift dependencies file. If one is not
|
||||
specified, it will default to `<TARGET>.swiftdeps`.
|
||||
|
||||
* A target property :prop_tgt:`Swift_MODULE_NAME` was added to targets to
|
||||
indicate the Swift module name. If it is not specified, it will default to
|
||||
the name of the target.
|
||||
|
||||
* A source property :prop_sf:`Swift_DEPENDENCIES_FILE` was added to sources to
|
||||
indicate where to save the target swift dependencies file. If one is not
|
||||
specified, it will default to `<OBJECT>.swiftdeps`.
|
||||
|
||||
* A source property :prop_sf:`Swift_DIAGNOSTICS_FILE` was added to sources to
|
||||
indicate where to write the serialised Swift diagnostics.
|
||||
@@ -1,6 +0,0 @@
|
||||
vs-add-package-references
|
||||
-------------------------
|
||||
|
||||
* A :prop_tgt:`VS_PACKAGE_REFERENCES` target property was added to
|
||||
tell :ref:`Visual Studio Generators` to add references to nuget
|
||||
packages.
|
||||
@@ -1,9 +0,0 @@
|
||||
vs-just-my-code-debugging
|
||||
-------------------------
|
||||
|
||||
* For the :ref:`Visual Studio Generators`,
|
||||
:ref:`Makefile Generators`, and the :generator:`Ninja` generators
|
||||
the Just My Code feature of the Visual Studio Debugger can be
|
||||
leveraged by turning on the :prop_tgt:`VS_JUST_MY_CODE_DEBUGGING` target
|
||||
property. Its default value is provided by the variable
|
||||
:variable:`CMAKE_VS_JUST_MY_CODE_DEBUGGING`.
|
||||
@@ -1,5 +0,0 @@
|
||||
vs-project-import
|
||||
-----------------
|
||||
|
||||
* The :prop_tgt:`VS_PROJECT_IMPORT` target property was added which allows
|
||||
to import external .props files in managed Visual Studio targets.
|
||||
@@ -1,6 +0,0 @@
|
||||
vs_wince_no_deploy
|
||||
------------------
|
||||
|
||||
* A :prop_tgt:`VS_NO_SOLUTION_DEPLOY` target property was added to
|
||||
tell :ref:`Visual Studio Generators` whether to deploy an artifact
|
||||
to the WinCE or Windows Phone target device.
|
||||
@@ -1,6 +0,0 @@
|
||||
xcode-scheme-per-target
|
||||
-----------------------
|
||||
|
||||
* The :generator:`Xcode` generator now supports per-target schemes.
|
||||
See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable and
|
||||
:prop_tgt:`XCODE_GENERATE_SCHEME` target property.
|
||||
@@ -1,4 +0,0 @@
|
||||
xlc-supports-cxx14
|
||||
----------------------
|
||||
|
||||
* IBM AIX XL compiler have learned how to compile C++14.
|
||||
@@ -15,6 +15,7 @@ Releases
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
3.15 <3.15>
|
||||
3.14 <3.14>
|
||||
3.13 <3.13>
|
||||
3.12 <3.12>
|
||||
|
||||
Reference in New Issue
Block a user