From 730a53ef1d11b2f61d13e4755d84afde4adfd1af Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 4 Feb 2020 08:51:18 -0500 Subject: Help: Organize and revise 3.17 release notes Add section headers similar to the 3.16 release notes and move each individual bullet into an appropriate section. Revise a few bullets. --- Help/release/3.17.rst | 402 +++++++++++++++++++++++++++----------------------- 1 file changed, 218 insertions(+), 184 deletions(-) diff --git a/Help/release/3.17.rst b/Help/release/3.17.rst index 9176181..30e6cc3 100644 --- a/Help/release/3.17.rst +++ b/Help/release/3.17.rst @@ -7,160 +7,160 @@ CMake 3.17 Release Notes Changes made since CMake 3.16 include the following. -* The :command:`add_custom_command` command learned to detect paths in - ``DEPENDS`` arguments and convert them to paths relative to the current - binary directory. This only applies to paths which contain a ``/`` or ``\\`` - in them because names like ``filename.txt`` could also be target names and - cannot be coverted into absolute paths blindly. - -* A :prop_tgt:`DEPRECATION` target property was added to mark - a target as deprecated. If a linked target is marked as - deprecated, a warning with the deprecation message is issued - at generate time. +New Features +============ -* The :prop_tgt:`AIX_EXPORT_ALL_SYMBOLS` target property and associated - :variable:`CMAKE_AIX_EXPORT_ALL_SYMBOLS` variable were created to - optionally explicitly disbale automatic export of symbols from shared - libraries on AIX. +Generators +---------- -* :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` learned to process headers with - a ``.hh`` extension. The new behavior is enabled by policy - :policy:`CMP0100`. +* :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. -* :manual:`ccmake(1)` now displays cache values using colors - based on the entry type if the terminal supports color. +* :ref:`Visual Studio Generators` learned to support per-config sources. + Previously only :ref:`Command-Line Build Tool Generators` supported them. -* :manual:`ccmake(1)` now displays messages and a progress bar during - configure and generate. It will keep the output displayed if any - errors or warnings occurred. +* :ref:`Visual Studio Generators` for VS 2010 and above now support + specifying the ``VCTargetsPath`` value for project files in + :variable:`CMAKE_GENERATOR_TOOLSET` setting. -* A :variable:`CMAKE_CTEST_ARGUMENTS` variable was added to specify a list - of command-line arguments passed to CTest when running through the - ``test`` (or ``RUN_TESTS``) target of the generated build system. +* :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. -* Define the following variables inside a function: +Languages +--------- - - :variable:`CMAKE_CURRENT_FUNCTION` - - :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR` - - :variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE` - - :variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE` +* 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`. -* :manual:`cmake(1)` gained a ``--debug-find`` command line - option that can be used to provide information on where find - commands searched. +Compilers +--------- -* Variable :variable:`CMAKE_FIND_DEBUG_MODE` was introduced to - print extra find call information during the cmake run to standard - error. Output is designed for human consumption and not for parsing. +* The IBM XL Fortran compiler is now supported by the :generator:`Ninja` + generator. -* :manual:`cmake(1)` gained a ``rm`` command line - option that can be used to remove directories (with ``-r`` or ``-R`` flag) - and files. - If the ``-f`` flag is not specified, attempting to remove a file that - doesn't exist returns an non-zero error code. - This command deprecates ``remove`` and ``remove_directory``. - The ``remove`` implementation was buggy and always returned 0 when ``force`` - flag was not present and a file didn't exist. It cannot be fixed without - breaking backwards compatibility so we introduced ``rm``. +Command-Line +------------ -* The :envvar:`CMAKE__COMPILER_LAUNCHER` environment variable may now be - used to initialize the :variable:`CMAKE__COMPILER_LAUNCHER` variable. +* :manual:`cmake(1)` gained a ``--debug-find`` command-line option to + enable additional human-readable output on where find commands search. -* The :cpack_gen:`CPack PackageMaker Generator` generator has been - deprecated because Xcode no longer distributes the PackageMaker tools. - The undocumented ``OSXX11`` generator has also been deprecated. +* :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. -* The :cpack_gen:`CPack DragNDrop Generator` learned to handle - RTF formatted license files. When :variable:`CPACK_DMG_SLA_DIR` - variable is set, .license.rtf is considered, but - only as a fallback when the plaintext (.txt) file is not found - in order to maintain backwards compatibility. +* :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. -* The :cpack_gen:`CPack NSIS Generator` gained a new variable - :variable:`CPACK_NSIS_MUI_HEADERIMAGE` to set the header image. - To not break existing setups, it still defaults to - :variable:`CPACK_PACKAGE_ICON` if the new variable is not set. +Commands +-------- -* The :cpack_gen:`CPack NSIS Generator` now supports - :variable:`CPACK_NSIS_UNINSTALL_NAME`. - This can be used to specify the name of the Uninstall program. +* The :command:`add_custom_command` command learned to interpret paths in + ``DEPENDS`` arguments that are specified relative to the current + binary directory. -* The :cpack_gen:`CPack NSIS Generator` now supports - :variable:`CPACK_NSIS_WELCOME_TITLE` and :variable:`CPACK_NSIS_WELCOME_TITLE_3LINES`. - These can be used to specify the welcome page title and display it in 3 lines. +* The :command:`foreach` learned a new option ``ZIP_LISTS`` to iterate + over multiple lists simultaneously. -* The :cpack_gen:`CPack NSIS Generator` now supports - :variable:`CPACK_NSIS_FINISH_TITLE` and :variable:`CPACK_NSIS_FINISH_TITLE_3LINES`. - These can be used to specify the finish page title and display it in 3 lines. +* The :command:`load_cache(READ_WITH_PREFIX)` command mode is now allowed + when using ``cmake -P`` to :ref:`Run a Script