From ad33da76b172a593f938e52e6bbe6dfcb4ef8aee Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 4 Feb 2020 08:48:58 -0500 Subject: Help: Consolidate 3.17 release notes Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.17.rst`. --- Help/release/3.17.rst | 282 +++++++++++++++++++++ Help/release/dev/CMAKE_CURRENT_FUNCTION.rst | 9 - .../release/dev/ExternalProject-git-no-recurse.rst | 7 - Help/release/dev/FindCUDAToolkit-module.rst | 4 - Help/release/dev/FindCURL-cmake-package.rst | 7 - Help/release/dev/FindFLEX-work-dir.rst | 6 - Help/release/dev/FindLibArchive-target.rst | 5 - Help/release/dev/FindPython-SOABI.rst | 6 - Help/release/dev/FindPythonConda-module.rst | 5 - Help/release/dev/Link-properties-transitive.rst | 8 - .../dev/add_custom_command-depends-path.rst | 8 - Help/release/dev/add_target_deprecation.rst | 7 - Help/release/dev/aix-no-export-all.rst | 7 - Help/release/dev/autogen_hh_headers.rst | 6 - Help/release/dev/ccmake-colored-values.rst | 5 - .../dev/ccmake_progress_bar_and_log_display.rst | 6 - Help/release/dev/cmake-ctest-arguments.rst | 6 - Help/release/dev/command_debug_find.rst | 10 - Help/release/dev/command_rm.rst | 12 - Help/release/dev/compiler-launcher-env.rst | 5 - .../dev/cpack-deprecate-old-macos-generators.rst | 6 - Help/release/dev/cpack-dmg-rtf-for-sla.rst | 8 - Help/release/dev/cpack-nsis-headerimage_var.rst | 7 - Help/release/dev/cpack-nsis-uninstaller-name.rst | 6 - .../dev/cpack-nsis-welcome-finish-page-title.rst | 10 - Help/release/dev/cpack-pkg-background.rst | 8 - Help/release/dev/ctest-configuration-type.rst | 5 - Help/release/dev/ctest-drmemory-support.rst | 5 - Help/release/dev/ctest-no-tests.rst | 6 - Help/release/dev/ctest-repeat.rst | 10 - Help/release/dev/cuda-gains-meta-features.rst | 7 - Help/release/dev/cuda-runtime-library.rst | 7 - Help/release/dev/custom-dmg-names.rst | 7 - Help/release/dev/deprecate-policy-old.rst | 8 - ...xport-compile-commands-environment-variable.rst | 6 - Help/release/dev/feature-CMAKE_MESSAGE_CONTEXT.rst | 11 - Help/release/dev/fileapi-multi-config.rst | 6 - Help/release/dev/foreach-ZIP_LISTS.rst | 5 - Help/release/dev/fphsa-detect-name-mismatch.rst | 5 - Help/release/dev/install-name-dir-genex.rst | 7 - Help/release/dev/json_trace.rst | 7 - Help/release/dev/load_cache-script-mode.rst | 5 - Help/release/dev/mingw-find-no-dll.rst | 6 - Help/release/dev/mingw_no_sh.rst | 5 - Help/release/dev/multi-configuration-ninja.rst | 6 - Help/release/dev/new-message-types.rst | 5 - Help/release/dev/ninja-postgen-commands.rst | 5 - Help/release/dev/ninja-tool.rst | 7 - Help/release/dev/osx-version-flags.rst | 9 - Help/release/dev/sdcc-new-librarian.rst | 6 - Help/release/dev/sdcc-no-default-target.rst | 5 - .../dev/target_compile_options-BEFORE-keyword.rst | 5 - Help/release/dev/vs-dotnet-standard-core.rst | 7 - Help/release/dev/vs-per-config-sources.rst | 5 - Help/release/dev/vs-vctargetspath.rst | 10 - Help/release/dev/vs_dotnet_documentation_file.rst | 6 - Help/release/dev/xcode-default-warnings.rst | 5 - Help/release/dev/xcode-scheme-env.rst | 5 - Help/release/dev/xcode-scheme-workdir.rst | 7 - Help/release/dev/xlf-ninja.rst | 5 - Help/release/dev/xmllint-target.rst | 4 - Help/release/index.rst | 1 + 62 files changed, 283 insertions(+), 394 deletions(-) create mode 100644 Help/release/3.17.rst delete mode 100644 Help/release/dev/CMAKE_CURRENT_FUNCTION.rst delete mode 100644 Help/release/dev/ExternalProject-git-no-recurse.rst delete mode 100644 Help/release/dev/FindCUDAToolkit-module.rst delete mode 100644 Help/release/dev/FindCURL-cmake-package.rst delete mode 100644 Help/release/dev/FindFLEX-work-dir.rst delete mode 100644 Help/release/dev/FindLibArchive-target.rst delete mode 100644 Help/release/dev/FindPython-SOABI.rst delete mode 100644 Help/release/dev/FindPythonConda-module.rst delete mode 100644 Help/release/dev/Link-properties-transitive.rst delete mode 100644 Help/release/dev/add_custom_command-depends-path.rst delete mode 100644 Help/release/dev/add_target_deprecation.rst delete mode 100644 Help/release/dev/aix-no-export-all.rst delete mode 100644 Help/release/dev/autogen_hh_headers.rst delete mode 100644 Help/release/dev/ccmake-colored-values.rst delete mode 100644 Help/release/dev/ccmake_progress_bar_and_log_display.rst delete mode 100644 Help/release/dev/cmake-ctest-arguments.rst delete mode 100644 Help/release/dev/command_debug_find.rst delete mode 100644 Help/release/dev/command_rm.rst delete mode 100644 Help/release/dev/compiler-launcher-env.rst delete mode 100644 Help/release/dev/cpack-deprecate-old-macos-generators.rst delete mode 100644 Help/release/dev/cpack-dmg-rtf-for-sla.rst delete mode 100644 Help/release/dev/cpack-nsis-headerimage_var.rst delete mode 100644 Help/release/dev/cpack-nsis-uninstaller-name.rst delete mode 100644 Help/release/dev/cpack-nsis-welcome-finish-page-title.rst delete mode 100644 Help/release/dev/cpack-pkg-background.rst delete mode 100644 Help/release/dev/ctest-configuration-type.rst delete mode 100644 Help/release/dev/ctest-drmemory-support.rst delete mode 100644 Help/release/dev/ctest-no-tests.rst delete mode 100644 Help/release/dev/ctest-repeat.rst delete mode 100644 Help/release/dev/cuda-gains-meta-features.rst delete mode 100644 Help/release/dev/cuda-runtime-library.rst delete mode 100644 Help/release/dev/custom-dmg-names.rst delete mode 100644 Help/release/dev/deprecate-policy-old.rst delete mode 100644 Help/release/dev/export-compile-commands-environment-variable.rst delete mode 100644 Help/release/dev/feature-CMAKE_MESSAGE_CONTEXT.rst delete mode 100644 Help/release/dev/fileapi-multi-config.rst delete mode 100644 Help/release/dev/foreach-ZIP_LISTS.rst delete mode 100644 Help/release/dev/fphsa-detect-name-mismatch.rst delete mode 100644 Help/release/dev/install-name-dir-genex.rst delete mode 100644 Help/release/dev/json_trace.rst delete mode 100644 Help/release/dev/load_cache-script-mode.rst delete mode 100644 Help/release/dev/mingw-find-no-dll.rst delete mode 100644 Help/release/dev/mingw_no_sh.rst delete mode 100644 Help/release/dev/multi-configuration-ninja.rst delete mode 100644 Help/release/dev/new-message-types.rst delete mode 100644 Help/release/dev/ninja-postgen-commands.rst delete mode 100644 Help/release/dev/ninja-tool.rst delete mode 100644 Help/release/dev/osx-version-flags.rst delete mode 100644 Help/release/dev/sdcc-new-librarian.rst delete mode 100644 Help/release/dev/sdcc-no-default-target.rst delete mode 100644 Help/release/dev/target_compile_options-BEFORE-keyword.rst delete mode 100644 Help/release/dev/vs-dotnet-standard-core.rst delete mode 100644 Help/release/dev/vs-per-config-sources.rst delete mode 100644 Help/release/dev/vs-vctargetspath.rst delete mode 100644 Help/release/dev/vs_dotnet_documentation_file.rst delete mode 100644 Help/release/dev/xcode-default-warnings.rst delete mode 100644 Help/release/dev/xcode-scheme-env.rst delete mode 100644 Help/release/dev/xcode-scheme-workdir.rst delete mode 100644 Help/release/dev/xlf-ninja.rst delete mode 100644 Help/release/dev/xmllint-target.rst diff --git a/Help/release/3.17.rst b/Help/release/3.17.rst new file mode 100644 index 0000000..9176181 --- /dev/null +++ b/Help/release/3.17.rst @@ -0,0 +1,282 @@ +CMake 3.17 Release Notes +************************ + +.. only:: html + + .. contents:: + +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. + +* 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. + +* :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:`ccmake(1)` now displays cache values using colors + based on the entry type if the terminal supports color. + +* :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. + +* 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. + +* Define the following variables inside a function: + + - :variable:`CMAKE_CURRENT_FUNCTION` + - :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR` + - :variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE` + - :variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE` + +* :manual:`cmake(1)` gained a ``--debug-find`` command line + option that can be used to provide information on where find + commands searched. + +* 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. + +* :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``. + +* The :envvar:`CMAKE__COMPILER_LAUNCHER` environment variable may now be + used to initialize the :variable:`CMAKE__COMPILER_LAUNCHER` variable. + +* 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. + +* 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. + +* 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. + +* 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 :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 :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 :cpack_gen:`CPack productbuild Generator` and + :cpack_gen:`CPack PackageMaker Generator` gained options + :variable:`CPACK_PRODUCTBUILD_BACKGROUND` and + :variable:`CPACK_PACKAGEMAKER_BACKGROUND`, respectively, + to specify a background image for the macOS installer. + +* The :variable:`CTEST_CONFIGURATION_TYPE` variable is now set from the command + line when :manual:`ctest(1)` is invoked with ``-C ``. + +* The :manual:`ctest(1)` gained support for Dr. Memory to run + memcheck runs. + +* The :manual:`ctest(1)` tool gained a ``--no-tests=<[error|ignore]>`` option + to explicitly set and unify the behavior between direct invocation and + script mode if no tests were found. + +* The :manual:`ctest(1)` tool gained a ``--repeat :`` option + to specify conditions in which to repeat tests. This generalizes + the existing ``--repeat-until-fail `` option to add modes for + ``until-pass`` and ``after-timeout``. + +* The :command:`ctest_test` command gained a ``REPEAT :`` option + to specify conditions in which to repeat tests. + +* 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`. + +* The :variable:`CMAKE_CUDA_RUNTIME_LIBRARY` variable and + :prop_tgt:`CUDA_RUNTIME_LIBRARY` target property were introduced to + select the CUDA runtime library used when linking targets that + use CUDA. + +* The :cpack_gen:`CPack DragNDrop Generator` learned to use + the :variable:`CPACK_DMG__FILE_NAME` variable + to set a custom filename when packaging components into + their own DMGs. + +* An explicit deprecation diagnostic was added for policy ``CMP0068`` + and policy ``CMP0069`` (``CMP0067`` 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_EXPORT_COMPILE_COMMANDS` variable now takes its + initial value from the :envvar:`CMAKE_EXPORT_COMPILE_COMMANDS` environment + variable if no explicit configuration is given. + +* The :module:`ExternalProject` module :command:`ExternalProject_Add` + command gained a ``GIT_SUBMODULES_RECURSE`` option to specify whether + Git submodules should be updated recursively. The default is on to + preserve existing behavior. + +* The :variable:`CMAKE_MESSAGE_LOG_LEVEL` variable can now be used + to persist a log level between CMake runs, unlike the ``--log-level`` + command line option which only applies to that particular run. + +* The :command:`message` command learned to output context provided in + the :variable:`CMAKE_MESSAGE_CONTEXT` variable for log levels + ``NOTICE`` and below. Enable this output with the new ``--log-context`` + command-line option or :variable:`CMAKE_MESSAGE_CONTEXT_SHOW` variable. + +* The :manual:`file API ` index file now emits a + ``multiConfig`` flag specifying whether or not the generator supports + multiple output configurations. + +* The :module:`FindCUDAToolkit` module was added to find the CUDA Toolkit without enabling CUDA as a language. + +* The :module:`FindCURL` module learned to find CURL using + the ``CURLConfig.cmake`` package configuration file generated by + CURL's cmake buildsystem. It also gained a new ``CURL_NO_CURL_CMAKE`` + option to disable this behavior. + +* The :module:`FindFLEX` module's ``FLEX_TARGET`` command now runs ``flex`` + with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory. + See policy :policy:`CMP0098`. + +* The :module:`FindLibArchive` module now returns an ``IMPORTED`` target + for libarchive. + +* The :module:`FindPython` module has learned to find Python components in active + virtual environments managed by ``conda``. + +* The :module:`FindPython3` and :module:`FindPython` modules gained, + respectively, variable ``Python3_SOABI`` and ``Python_SOABI`` giving + the standard extension suffix for modules. + +* The :command:`foreach` learned a new option ``ZIP_LISTS`` to iterate + over multiple lists simultaneously. + +* The :module:`FindPackageHandleStandardArgs` module learned to check the + package name passed in for typo mistakes. + +* The :prop_tgt:`INSTALL_NAME_DIR` target property now supports + :manual:`generator expressions `. + In particular, the ``$`` generator expression can + be used to set the directory relative to the install-time prefix. + +* :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. + +* Target link properties :prop_tgt:`INTERFACE_LINK_OPTIONS`, + :prop_tgt:`INTERFACE_LINK_DIRECTORIES` and + :prop_tgt:`INTERFACE_LINK_DEPENDS` are now transitive over private + dependency on static libraries. + See policy :policy:`CMP0099`. + +* The :command:`load_cache(READ_WITH_PREFIX)` command mode is now allowed + when using ``cmake -P`` to :ref:`Run a Script