CMake 3.17 Release Notes ************************ .. only:: html .. contents:: Changes made since CMake 3.16 include the following. New Features ============ Generators ---------- * :manual:`cmake(1)` gained a :generator:`Ninja Multi-Config` generator, which is similar to the :generator:`Ninja` generator but can be used to build multiple configurations at once. * :ref:`Visual Studio Generators` learned to support per-config sources. Previously only :ref:`Command-Line Build Tool Generators` supported them. * :ref:`Visual Studio Generators` for VS 2010 and above now support specifying the ``VCTargetsPath`` value for project files in :variable:`CMAKE_GENERATOR_TOOLSET` setting. * :ref:`Visual Studio Generators` for VS 2010 and above learned to support .NET Standard and .NET Core. See the :prop_tgt:`DOTNET_TARGET_FRAMEWORK` target property and associated :variable:`CMAKE_DOTNET_TARGET_FRAMEWORK` variable. Languages --------- * The :manual:`Compile Features ` functionality now offers meta-features for the CUDA language standard levels (e.g. ``cuda_std_03``, ``cuda_std_14``). See :prop_gbl:`CMAKE_CUDA_KNOWN_FEATURES`. Compilers --------- * The IBM XL Fortran compiler is now supported by the :generator:`Ninja` generator. Command-Line ------------ * :manual:`cmake(1)` gained a ``--debug-find`` command-line option to enable additional human-readable output on where ``find_*`` commands search. * :manual:`cmake(1)` gained a ``--trace-format`` command-line option that can be used to set the ``--trace`` output format. Currently, the old human readable and the new JSON format are supported. The new JSON format is easier to parse automatically than the existing format. * :manual:`cmake(1)` gained a ``-E rm`` command-line tool that can be used to remove directories and files. This supersedes the existing ``-E remove`` and ``-E remove_directory`` tools and has better semantics. Commands -------- * The :command:`add_custom_command` command learned to interpret paths in ``DEPENDS`` arguments that are specified relative to the current binary directory. * The :command:`foreach` command learned a new ``ZIP_LISTS`` option to iterate over multiple lists simultaneously. * The :command:`load_cache(READ_WITH_PREFIX)` command mode is now allowed when using ``cmake -P`` to :ref:`Run a Script