From 0d1a9282c42cd278f99b09bb16cace47be421717 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 6 Feb 2019 09:16:59 -0500 Subject: Help: Consolidate 3.14 release notes Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.14.rst`. --- Help/release/3.14.rst | 295 +++++++++++++++++++++ Help/release/dev/CUDA_RESOLVE_DEVICE_SYMBOLS.rst | 6 - Help/release/dev/EXCLUDE_FROM_ALL.rst | 7 - Help/release/dev/ExternalProject-log-options.rst | 8 - .../ExternalProject-non-cmake-source-subdir.rst | 7 - Help/release/dev/FindCURL-components.rst | 5 - Help/release/dev/FindGDAL-target.rst | 4 - Help/release/dev/FindGIF-modernize.rst | 4 - Help/release/dev/FindICE-more-exe.rst | 5 - Help/release/dev/FindLibLZMA-target.rst | 4 - Help/release/dev/FindMatlab-2018a-API.rst | 7 - Help/release/dev/FindOctave.rst | 4 - Help/release/dev/FindPostgreSQL-target.rst | 4 - Help/release/dev/FindPython-NumPy-component.rst | 5 - Help/release/dev/FindSQLite3-module.rst | 4 - Help/release/dev/FindX11-imported-targets.rst | 32 --- .../dev/INTERFACE_POSITION_INDEPENDENT_CODE.rst | 5 - Help/release/dev/UseSWIG-CMP0086.rst | 6 - Help/release/dev/UseSWIG-source-file-ext.rst | 5 - Help/release/dev/autogen-origin-depends.rst | 7 - Help/release/dev/autogen_executables.rst | 9 - Help/release/dev/autogen_global_target.rst | 8 - Help/release/dev/better-empty-list-behavior.rst | 9 - Help/release/dev/bison_target_policy.rst | 6 - Help/release/dev/check-fortran-run.rst | 6 - Help/release/dev/check-functions-LINK_OPTIONS.rst | 5 - Help/release/dev/cmake-build-verbose.rst | 6 - Help/release/dev/cmake-gui-s-b.rst | 5 - Help/release/dev/cmake_role-global-property.rst | 6 - Help/release/dev/compare_files-ignore-eol.rst | 6 - Help/release/dev/cpack-deb-tar-format.rst | 7 - Help/release/dev/cppcheck-exit-code.rst | 6 - Help/release/dev/ctest-done.rst | 5 - Help/release/dev/ctest-show-only-json-v1.rst | 6 - Help/release/dev/ctest-submit-url.rst | 7 - Help/release/dev/deprecate-findqt.rst | 8 - Help/release/dev/deprecate-policy-old.rst | 8 - Help/release/dev/deprecate-xcode-4.rst | 6 - .../dev/fetchcontent-reduce-boilerplate.rst | 8 - Help/release/dev/file-read_symlink.rst | 5 - Help/release/dev/file-size.rst | 5 - Help/release/dev/fileapi.rst | 5 - Help/release/dev/find-package-resolve-symlinks.rst | 6 - Help/release/dev/find_fontconfig.rst | 6 - Help/release/dev/find_libinput.rst | 6 - Help/release/dev/findgit-imported-target.rst | 5 - Help/release/dev/findpython-script.rst | 6 - Help/release/dev/fortran-compiler-id.rst | 5 - Help/release/dev/genex-in_list-empty-args.rst | 5 - .../dev/get_filename_component_last_ext.rst | 6 - Help/release/dev/if-supports-cache-defined.rst | 5 - Help/release/dev/install-code-script-genex.rst | 5 - Help/release/dev/install-defaults.rst | 12 - Help/release/dev/install-subdirectory-order.rst | 5 - Help/release/dev/iphone-friendly-cmake.rst | 5 - Help/release/dev/link-option-PIE.rst | 9 - Help/release/dev/max-recursion-depth.rst | 6 - Help/release/dev/object-library-link.rst | 5 - Help/release/dev/rel-win7.rst | 6 - Help/release/dev/relative-rpath.rst | 8 - Help/release/dev/submit-method.rst | 6 - Help/release/dev/try_compile-LINK_OPTIONS.rst | 5 - Help/release/dev/vs-debug-utility-targets.rst | 6 - Help/release/dev/vs2019.rst | 14 - Help/release/index.rst | 1 + 65 files changed, 296 insertions(+), 413 deletions(-) create mode 100644 Help/release/3.14.rst delete mode 100644 Help/release/dev/CUDA_RESOLVE_DEVICE_SYMBOLS.rst delete mode 100644 Help/release/dev/EXCLUDE_FROM_ALL.rst delete mode 100644 Help/release/dev/ExternalProject-log-options.rst delete mode 100644 Help/release/dev/ExternalProject-non-cmake-source-subdir.rst delete mode 100644 Help/release/dev/FindCURL-components.rst delete mode 100644 Help/release/dev/FindGDAL-target.rst delete mode 100644 Help/release/dev/FindGIF-modernize.rst delete mode 100644 Help/release/dev/FindICE-more-exe.rst delete mode 100644 Help/release/dev/FindLibLZMA-target.rst delete mode 100644 Help/release/dev/FindMatlab-2018a-API.rst delete mode 100644 Help/release/dev/FindOctave.rst delete mode 100644 Help/release/dev/FindPostgreSQL-target.rst delete mode 100644 Help/release/dev/FindPython-NumPy-component.rst delete mode 100644 Help/release/dev/FindSQLite3-module.rst delete mode 100644 Help/release/dev/FindX11-imported-targets.rst delete mode 100644 Help/release/dev/INTERFACE_POSITION_INDEPENDENT_CODE.rst delete mode 100644 Help/release/dev/UseSWIG-CMP0086.rst delete mode 100644 Help/release/dev/UseSWIG-source-file-ext.rst delete mode 100644 Help/release/dev/autogen-origin-depends.rst delete mode 100644 Help/release/dev/autogen_executables.rst delete mode 100644 Help/release/dev/autogen_global_target.rst delete mode 100644 Help/release/dev/better-empty-list-behavior.rst delete mode 100644 Help/release/dev/bison_target_policy.rst delete mode 100644 Help/release/dev/check-fortran-run.rst delete mode 100644 Help/release/dev/check-functions-LINK_OPTIONS.rst delete mode 100644 Help/release/dev/cmake-build-verbose.rst delete mode 100644 Help/release/dev/cmake-gui-s-b.rst delete mode 100644 Help/release/dev/cmake_role-global-property.rst delete mode 100644 Help/release/dev/compare_files-ignore-eol.rst delete mode 100644 Help/release/dev/cpack-deb-tar-format.rst delete mode 100644 Help/release/dev/cppcheck-exit-code.rst delete mode 100644 Help/release/dev/ctest-done.rst delete mode 100644 Help/release/dev/ctest-show-only-json-v1.rst delete mode 100644 Help/release/dev/ctest-submit-url.rst delete mode 100644 Help/release/dev/deprecate-findqt.rst delete mode 100644 Help/release/dev/deprecate-policy-old.rst delete mode 100644 Help/release/dev/deprecate-xcode-4.rst delete mode 100644 Help/release/dev/fetchcontent-reduce-boilerplate.rst delete mode 100644 Help/release/dev/file-read_symlink.rst delete mode 100644 Help/release/dev/file-size.rst delete mode 100644 Help/release/dev/fileapi.rst delete mode 100644 Help/release/dev/find-package-resolve-symlinks.rst delete mode 100644 Help/release/dev/find_fontconfig.rst delete mode 100644 Help/release/dev/find_libinput.rst delete mode 100644 Help/release/dev/findgit-imported-target.rst delete mode 100644 Help/release/dev/findpython-script.rst delete mode 100644 Help/release/dev/fortran-compiler-id.rst delete mode 100644 Help/release/dev/genex-in_list-empty-args.rst delete mode 100644 Help/release/dev/get_filename_component_last_ext.rst delete mode 100644 Help/release/dev/if-supports-cache-defined.rst delete mode 100644 Help/release/dev/install-code-script-genex.rst delete mode 100644 Help/release/dev/install-defaults.rst delete mode 100644 Help/release/dev/install-subdirectory-order.rst delete mode 100644 Help/release/dev/iphone-friendly-cmake.rst delete mode 100644 Help/release/dev/link-option-PIE.rst delete mode 100644 Help/release/dev/max-recursion-depth.rst delete mode 100644 Help/release/dev/object-library-link.rst delete mode 100644 Help/release/dev/rel-win7.rst delete mode 100644 Help/release/dev/relative-rpath.rst delete mode 100644 Help/release/dev/submit-method.rst delete mode 100644 Help/release/dev/try_compile-LINK_OPTIONS.rst delete mode 100644 Help/release/dev/vs-debug-utility-targets.rst delete mode 100644 Help/release/dev/vs2019.rst diff --git a/Help/release/3.14.rst b/Help/release/3.14.rst new file mode 100644 index 0000000..a1c6e24 --- /dev/null +++ b/Help/release/3.14.rst @@ -0,0 +1,295 @@ +CMake 3.14 Release Notes +************************ + +.. only:: html + + .. contents:: + +Changes made since CMake 3.13 include the following. + +* The :prop_tgt:`AUTOMOC_EXECUTABLE`, :prop_tgt:`AUTORCC_EXECUTABLE` and + :prop_tgt:`AUTOUIC_EXECUTABLE` target properties all take a path to an + executable and force automoc/autorcc/autouic to use this executable. + + Setting these will also prevent the configure time testing for these + executables. This is mainly useful when you build these tools yourself. + +* The new variables :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`, + :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET_NAME`, + :variable:`CMAKE_GLOBAL_AUTORCC_TARGET` and + :variable:`CMAKE_GLOBAL_AUTORCC_TARGET_NAME` control the generation + of global ``autogen`` and ``autorcc`` targets. + +* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and + :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or + disable forwarding of the origin target dependencies to the corresponding + ``_autogen`` target. + +* The :command:`list` operations ``REMOVE_ITEM``, ``REMOVE_DUPLICATES``, + ``SORT``, ``REVERSE``, and ``FILTER`` all now accept a non-existent variable + as the list since these operations on empty lists is also the empty list. + +* The :command:`list` operation ``REMOVE_AT`` now indicates that the given + indices are invalid for a non-existent variable or empty list. + +* The :module:`FindBISON` module's ``BISON_TARGET`` command now runs ``bison`` + with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory. + See policy :policy:`CMP0088`. + +* A :module:`CheckFortranSourceRuns` module was added to provide a + :command:`check_fortran_source_runs` command to check if a Fortran + source snippet compiles and runs. + +* The family of modules to check capabilities (like + :module:`CheckCSourceCompiles`) gain capability to manage ``LINK_OPTIONS``. + +* The :manual:`cmake(1)` :ref:`Build Tool Mode` (``cmake --build``) gained + ``--verbose`` and ``-v`` options to specify verbose build output. Some + generators such as Xcode don't support this option currently. + +* The :manual:`cmake-gui(1)` dialog gained new ``-S`` and ``-B`` arguments to + explicitly specify source and build directories. + +* A new global property, :prop_gbl:`CMAKE_ROLE`, was added to allow scripts to + determine whether they're running in project mode, script mode, find-package + mode, CTest, or CPack. + +* The :manual:`cmake(1)` ``-E compare_files`` command learned a new + ``--ignore-eol`` option to specify that end-of-line differences (e.g. LF vs + CRLF) should be ignored when comparing files. + +* The :module:`CPack` module no longer defaults to the ``paxr`` value in the + :variable:`CPACK_DEBIAN_ARCHIVE_TYPE` variable, because ``dpkg`` has + never supported the PAX tar format. The ``paxr`` value will be mapped + to ``gnutar`` and a deprecation message emitted. + +* When using cppcheck via the :variable:`CMAKE__CPPCHECK` variable + or :prop_tgt:`_CPPCHECK` property, the build will now fail if + ``cppcheck`` returns non-zero as configured by its command-line options. + +* The :command:`ctest_submit` command learned a new ``Done`` part that can be used + to inform CDash that a build is complete and that no more parts will be uploaded. + +* :manual:`ctest(1)` gained a ``--show-only=json-v1`` option to show the + list of tests in a machine-readable JSON format. + See the :ref:`Show as JSON Object Model` section of the manual. + +* CTest learned to accept the dashboard server submission URL from a single + variable. See the ``SubmitURL`` setting in :manual:`ctest(1)`, + the :variable:`CTEST_SUBMIT_URL` variable, and the ``SUBMIT_URL`` + argument of the :command:`ctest_submit` command. + +* The :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property is now supported + on shared library, module library, and executable targets. Previously it was + only honored on static libraries. + +* The :module:`FindQt` module is no longer used by the :command:`find_package` + command as a find module. This allows the Qt Project upstream to optionally + provide its own ``QtConfig.cmake`` package configuration file and have + applications use it via ``find_package(Qt)`` rather than + ``find_package(Qt CONFIG)``. See policy :policy:`CMP0084`. + +* An explicit deprecation diagnostic was added for policies ``CMP0064`` + and ``CMP0065`` (``CMP0063`` 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 :generator:`Xcode` generator deprecated support for Xcode + versions prior to Xcode 5. Support for those will be dropped in a + future version of CMake. + +* A target's :prop_tgt:`EXCLUDE_FROM_ALL` property can now override the + setting of its directory. A target will now be built as part of "all" + if its :prop_tgt:`EXCLUDE_FROM_ALL` property is set to ``OFF``, even if its + containing directory is marked as :prop_dir:`EXCLUDE_FROM_ALL`. + +* The :module:`ExternalProject` module :command:`ExternalProject_Add` command + gained ``LOG_DIR`` and ``LOG_MERGED_STDOUTERR`` options to control logging. + +* The :module:`ExternalProject` module :command:`ExternalProject_Add` command + gained ``LOG_PATCH`` to optionally log the patch step. + +* The :module:`ExternalProject` module's ``ExternalProject_Add`` command + learned to apply ``SOURCE_SUBDIR`` when ``BUILD_IN_SOURCE`` is also used. + The ``BUILD_COMMAND`` is run in the given ``SOURCE_SUBDIR`` of the + ``SOURCE_DIR``. + +* The FetchContent module gained a new :command:`FetchContent_MakeAvailable` + command. This new command accepts a list of dependency names, which it then + iterates over, populating and adding each one to the main build using the + canonical pattern. This significantly reduces the amount of boilerplate + needed in the project. + +* A file-based api for clients to get semantic buildsystem information + has been added. See the :manual:`cmake-file-api(7)` manual. + +* The :command:`file` command learned a new sub-command, ``READ_SYMLINK``, + which can be used to determine the path that a symlink points to. + +* The :command:`file` command gained a ``SIZE`` mode to get the size + of a file on disk. + +* The :module:`FindCURL` module gained support for requesting + protocols as package components. + +* The :module:`FindFontconfig` module was added to find `fontconfig`_. + +.. _`fontconfig`: https://www.freedesktop.org/wiki/Software/fontconfig/ + +* The :module:`FindGDAL` module now provides an imported target. + +* The :module:`FindGIF` module now provides imported targets. + +* The :module:`FindGit` module now provides an ``IMPORTED`` target for the Git + executable. + +* The :module:`FindIce` module learned to find + ``slice2confluence`` and ``slice2matlab``. + +* The :module:`FindLibinput` module was added to find `libinput`_. + +.. _`libinput`: https://www.freedesktop.org/wiki/Software/libinput/ + +* The :module:`FindLibLZMA` module now provides an imported target. + +* The :module:`FindMatlab` module gained new options ``R2017b`` and + ``R2018a`` to specify the MEX API version to use; these options + mirror the new options to the ``mex`` command in MATLAB R2018a. + The option ``MX_LIBRARY`` is no longer needed. + +* A :module:`FindOctave` module was added to find GNU octave. + +* The :command:`find_package` command learned to optionally resolve + symbolic links in the paths to package configuration files. + See the :variable:`CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS` variable. + +* The :module:`FindPostgreSQL` module now provides an imported target. + +* The :module:`FindPython`, :module:`FindPython2`, and :module:`FindPython3` + modules gained support for ``NumPy`` component. + +* The :module:`FindPython2`, :module:`FindPython3`, and :module:`FindPython` + modules now support running in script mode by skipping the creation of + imported targets and helper functions. + +* The :module:`FindSQLite3` module was added to find the SQLite v3.x library. + +* The :module:`FindX11` had the following variables renamed in order to match + their library names rather than header names. The old variables are provided + for compatibility: + + - ``X11_Xxf86misc_INCLUDE_PATH`` instead of ``X11_xf86misc_INCLUDE_PATH`` + - ``X11_Xxf86misc_LIB`` instead of ``X11_xf86misc_LIB`` + - ``X11_Xxf86misc_FOUND`` instead of ``X11_xf86misc_FOUND`` + - ``X11_Xxf86vm_INCLUDE_PATH`` instead of ``X11_xf86vmode_INCLUDE_PATH`` + - ``X11_Xxf86vm_LIB`` instead of ``X11_xf86vmode_LIB`` + - ``X11_Xxf86vm_FOUND`` instead of ``X11_xf86vmode_FOUND`` + - ``X11_xkbfile_INCLUDE_PATH`` instead of ``X11_Xkbfile_INCLUDE_PATH`` + - ``X11_xkbfile_LIB`` instead of ``X11_Xkbfile_LIB`` + - ``X11_xkbfile_FOUND`` instead of ``X11_Xkbfile_FOUND`` + - ``X11_Xtst_INCLUDE_PATH`` instead of ``X11_XTest_INCLUDE_PATH`` + - ``X11_Xtst_LIB`` instead of ``X11_XTest_LIB`` + - ``X11_Xtst_FOUND`` instead of ``X11_XTest_FOUND`` + - ``X11_Xss_INCLUDE_PATH`` instead of ``X11_Xscreensaver_INCLUDE_PATH`` + - ``X11_Xss_LIB`` instead of ``X11_Xscreensaver_LIB`` + - ``X11_Xss_FOUND`` instead of ``X11_Xscreensaver_FOUND`` + + The following variables are deprecated completely since they were + essentially duplicates: + + - ``X11_Xinput_INCLUDE_PATH`` (use ``X11_Xi_INCLUDE_PATH``) + - ``X11_Xinput_LIB`` (use ``X11_Xi_LIB``) + - ``X11_Xinput_FOUND`` (use ``X11_Xi_FOUND``) + +* The :module:`FindX11` now provides ``X11_Xext_INCLUDE_PATH``. +* The :module:`FindX11` now provides imported targets. + +* The ``$`` and ``$`` + :manual:`generator expressions ` were added. + +* The $ generator expression now correctly handles an empty + argument. See :policy:`CMP0085` for details. + +* The :command:`get_filename_component` command gained new + ``LAST_EXT`` and ``NAME_WLE`` variants to work with the + extension after the last ``.`` in the name. + +* The :command:`if` command gained support for checking if cache variables + are defined with the ``DEFINED CACHE{VAR}`` syntax. + +* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands + learned to support generator expressions. See policy :policy:`CMP0087`. + +* The ``TARGETS`` variant of the :command:`install` command learned how to + install to an appropriate default directory for a given target type, based + on variables from the :module:`GNUInstallDirs` module and built-in defaults, + in lieu of a ``DESTINATION`` argument. +* The ``FILES`` and ``DIRECTORY`` variants of the :command:`install` command + learned a new set of parameters for installing files as a file type, setting + the destination based on the appropriate variables from + :module:`GNUInstallDirs` and built-in defaults, in lieu of a ``DESTINATION`` + argument. + +* Install rules under :command:`add_subdirectory` now interleave with those in + the calling directory. See policy :policy:`CMP0082` for details. + +* :prop_tgt:`INTERFACE_POSITION_INDEPENDENT_CODE` target property gains the + support of :manual:`generator expressions `. + +* CMake now supports :ref:`Cross Compiling for iOS, tvOS, or watchOS` + using simple toolchain files. + +* Required link options to manage Position Independent Executable are now + added when :prop_tgt:`POSITION_INDEPENDENT_CODE` is set. The project is + responsible for using the :module:`CheckPIESupported` module to check for + ``PIE`` support to ensure that the :prop_tgt:`POSITION_INDEPENDENT_CODE` + target property will be honored at link time for executables. This behavior + is controlled by policy :policy:`CMP0083`. + +* CMake now imposes a maximum recursion limit to prevent a stack overflow on + scripts that recurse infinitely. The limit can be adjusted at runtime with + :variable:`CMAKE_MAXIMUM_RECURSION_DEPTH`. + +* Object library linking has been fixed to propagate transitive link + dependencies of object libraries to consuming targets. + +* A :variable:`CMAKE_BUILD_RPATH_USE_ORIGIN` variable and corresponding + :prop_tgt:`BUILD_RPATH_USE_ORIGIN` target property were added to + enable use of relative runtime paths (RPATHs). This helps achieving + relocatable and reproducible builds that are invariant of the build + directory. + +* Support for running CMake on Windows XP and Windows Vista has been dropped. + The precompiled Windows binaries provided on ``cmake.org`` now require + Windows 7 or higher. + +* CTest no longer supports submissions via ``ftp``, ``scp``, ``cp``, and + ``xmlrpc``. CDash is the only maintained testing dashboard for CTest, + and it only supports submissions over ``http`` and ``https``. + +* The commands :command:`try_compile` and :command:`try_run` gain new + option ``LINK_OPTIONS``. + +* The :module:`UseSWIG` module passes option ``-module `` to + ``SWIG`` compiler if the file property ``SWIG_MODULE_NAME`` is defined. + See policy :policy:`CMP0086`. + +* The :module:`UseSWIG` module gains capability to specify + ``SWIG`` source file extensions. + +* The :generator:`Visual Studio 16 2019` generator was added. This is + experimental and based on "Visual Studio 2019 Preview 2" because this + version of VS has not been released. + + The VS 2019 generator differs from generators for earlier versions + in that it does not provide variants that specify the target platform + in the generator name. Instead :variable:`CMAKE_GENERATOR_PLATFORM` + must be used, e.g. through the ``-A`` command-line option. Furthermore, + the default target platform (architecture) is now based on the *host* + platform. The VS host toolset selection is now based on the host + architecture as well. + +* :ref:`Visual Studio Generators` for VS 2010 and above learned + to support the ``VS_DEBUGGER_*`` properties on targets created + via :command:`add_custom_target`. diff --git a/Help/release/dev/CUDA_RESOLVE_DEVICE_SYMBOLS.rst b/Help/release/dev/CUDA_RESOLVE_DEVICE_SYMBOLS.rst deleted file mode 100644 index 32db233..0000000 --- a/Help/release/dev/CUDA_RESOLVE_DEVICE_SYMBOLS.rst +++ /dev/null @@ -1,6 +0,0 @@ -CUDA_RESOLVE_DEVICE_SYMBOLS ---------------------------- - -* The :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property is now supported - on shared library, module library, and executable targets. Previously it was - only honored on static libraries. diff --git a/Help/release/dev/EXCLUDE_FROM_ALL.rst b/Help/release/dev/EXCLUDE_FROM_ALL.rst deleted file mode 100644 index 519ac42..0000000 --- a/Help/release/dev/EXCLUDE_FROM_ALL.rst +++ /dev/null @@ -1,7 +0,0 @@ -EXCLUDE_FROM_ALL ----------------- - -* A target's :prop_tgt:`EXCLUDE_FROM_ALL` property can now override the - setting of its directory. A target will now be built as part of "all" - if its :prop_tgt:`EXCLUDE_FROM_ALL` property is set to ``OFF``, even if its - containing directory is marked as :prop_dir:`EXCLUDE_FROM_ALL`. diff --git a/Help/release/dev/ExternalProject-log-options.rst b/Help/release/dev/ExternalProject-log-options.rst deleted file mode 100644 index 88bc799..0000000 --- a/Help/release/dev/ExternalProject-log-options.rst +++ /dev/null @@ -1,8 +0,0 @@ -ExternalProject-log-options ---------------------------- - -* The :module:`ExternalProject` module :command:`ExternalProject_Add` command - gained ``LOG_DIR`` and ``LOG_MERGED_STDOUTERR`` options to control logging. - -* The :module:`ExternalProject` module :command:`ExternalProject_Add` command - gained ``LOG_PATCH`` to optionally log the patch step. diff --git a/Help/release/dev/ExternalProject-non-cmake-source-subdir.rst b/Help/release/dev/ExternalProject-non-cmake-source-subdir.rst deleted file mode 100644 index 29fe2ad..0000000 --- a/Help/release/dev/ExternalProject-non-cmake-source-subdir.rst +++ /dev/null @@ -1,7 +0,0 @@ -ExternalProject-non-cmake-source-subdir ---------------------------------------- - -* The :module:`ExternalProject` module's ``ExternalProject_Add`` command - learned to apply ``SOURCE_SUBDIR`` when ``BUILD_IN_SOURCE`` is also used. - The ``BUILD_COMMAND`` is run in the given ``SOURCE_SUBDIR`` of the - ``SOURCE_DIR``. diff --git a/Help/release/dev/FindCURL-components.rst b/Help/release/dev/FindCURL-components.rst deleted file mode 100644 index 9c50ede..0000000 --- a/Help/release/dev/FindCURL-components.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindCURL-components -------------------- - -* The :module:`FindCURL` module gained support for requesting - protocols as package components. diff --git a/Help/release/dev/FindGDAL-target.rst b/Help/release/dev/FindGDAL-target.rst deleted file mode 100644 index b121a72..0000000 --- a/Help/release/dev/FindGDAL-target.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindGDAL-target ---------------- - -* The :module:`FindGDAL` module now provides an imported target. diff --git a/Help/release/dev/FindGIF-modernize.rst b/Help/release/dev/FindGIF-modernize.rst deleted file mode 100644 index 3bb4821..0000000 --- a/Help/release/dev/FindGIF-modernize.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindGIF-modernize ------------------ - -* The :module:`FindGIF` module now provides imported targets. diff --git a/Help/release/dev/FindICE-more-exe.rst b/Help/release/dev/FindICE-more-exe.rst deleted file mode 100644 index fa18a88..0000000 --- a/Help/release/dev/FindICE-more-exe.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindICE-more-exe ----------------- - -* The :module:`FindIce` module learned to find - ``slice2confluence`` and ``slice2matlab``. diff --git a/Help/release/dev/FindLibLZMA-target.rst b/Help/release/dev/FindLibLZMA-target.rst deleted file mode 100644 index a13c45f..0000000 --- a/Help/release/dev/FindLibLZMA-target.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindLibLZMA-target ------------------- - -* The :module:`FindLibLZMA` module now provides an imported target. diff --git a/Help/release/dev/FindMatlab-2018a-API.rst b/Help/release/dev/FindMatlab-2018a-API.rst deleted file mode 100644 index 1063411..0000000 --- a/Help/release/dev/FindMatlab-2018a-API.rst +++ /dev/null @@ -1,7 +0,0 @@ -FindMatlab-2018a-API --------------------- - -* The :module:`FindMatlab` module gained new options ``R2017b`` and - ``R2018a`` to specify the MEX API version to use; these options - mirror the new options to the ``mex`` command in MATLAB R2018a. - The option ``MX_LIBRARY`` is no longer needed. diff --git a/Help/release/dev/FindOctave.rst b/Help/release/dev/FindOctave.rst deleted file mode 100644 index fe3b242..0000000 --- a/Help/release/dev/FindOctave.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindOctave ----------- - -* A :module:`FindOctave` module was added to find GNU octave. diff --git a/Help/release/dev/FindPostgreSQL-target.rst b/Help/release/dev/FindPostgreSQL-target.rst deleted file mode 100644 index 84f8d1a..0000000 --- a/Help/release/dev/FindPostgreSQL-target.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindPostgreSQL-target ---------------------- - -* The :module:`FindPostgreSQL` module now provides an imported target. diff --git a/Help/release/dev/FindPython-NumPy-component.rst b/Help/release/dev/FindPython-NumPy-component.rst deleted file mode 100644 index 5ea6cfb..0000000 --- a/Help/release/dev/FindPython-NumPy-component.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindPython-NumPy-component --------------------------- - -* The :module:`FindPython`, :module:`FindPython2`, and :module:`FindPython3` - modules gained support for ``NumPy`` component. diff --git a/Help/release/dev/FindSQLite3-module.rst b/Help/release/dev/FindSQLite3-module.rst deleted file mode 100644 index 733a4d3..0000000 --- a/Help/release/dev/FindSQLite3-module.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindSQLite3-module ------------------- - -* The :module:`FindSQLite3` module was added to find the SQLite v3.x library. diff --git a/Help/release/dev/FindX11-imported-targets.rst b/Help/release/dev/FindX11-imported-targets.rst deleted file mode 100644 index 4df753d..0000000 --- a/Help/release/dev/FindX11-imported-targets.rst +++ /dev/null @@ -1,32 +0,0 @@ -FindX11-imported-targets ------------------------- - -* The :module:`FindX11` had the following variables renamed in order to match - their library names rather than header names. The old variables are provided - for compatibility: - - - ``X11_Xxf86misc_INCLUDE_PATH`` instead of ``X11_xf86misc_INCLUDE_PATH`` - - ``X11_Xxf86misc_LIB`` instead of ``X11_xf86misc_LIB`` - - ``X11_Xxf86misc_FOUND`` instead of ``X11_xf86misc_FOUND`` - - ``X11_Xxf86vm_INCLUDE_PATH`` instead of ``X11_xf86vmode_INCLUDE_PATH`` - - ``X11_Xxf86vm_LIB`` instead of ``X11_xf86vmode_LIB`` - - ``X11_Xxf86vm_FOUND`` instead of ``X11_xf86vmode_FOUND`` - - ``X11_xkbfile_INCLUDE_PATH`` instead of ``X11_Xkbfile_INCLUDE_PATH`` - - ``X11_xkbfile_LIB`` instead of ``X11_Xkbfile_LIB`` - - ``X11_xkbfile_FOUND`` instead of ``X11_Xkbfile_FOUND`` - - ``X11_Xtst_INCLUDE_PATH`` instead of ``X11_XTest_INCLUDE_PATH`` - - ``X11_Xtst_LIB`` instead of ``X11_XTest_LIB`` - - ``X11_Xtst_FOUND`` instead of ``X11_XTest_FOUND`` - - ``X11_Xss_INCLUDE_PATH`` instead of ``X11_Xscreensaver_INCLUDE_PATH`` - - ``X11_Xss_LIB`` instead of ``X11_Xscreensaver_LIB`` - - ``X11_Xss_FOUND`` instead of ``X11_Xscreensaver_FOUND`` - - The following variables are deprecated completely since they were - essentially duplicates: - - - ``X11_Xinput_INCLUDE_PATH`` (use ``X11_Xi_INCLUDE_PATH``) - - ``X11_Xinput_LIB`` (use ``X11_Xi_LIB``) - - ``X11_Xinput_FOUND`` (use ``X11_Xi_FOUND``) - -* The :module:`FindX11` now provides ``X11_Xext_INCLUDE_PATH``. -* The :module:`FindX11` now provides imported targets. diff --git a/Help/release/dev/INTERFACE_POSITION_INDEPENDENT_CODE.rst b/Help/release/dev/INTERFACE_POSITION_INDEPENDENT_CODE.rst deleted file mode 100644 index 7732ff6..0000000 --- a/Help/release/dev/INTERFACE_POSITION_INDEPENDENT_CODE.rst +++ /dev/null @@ -1,5 +0,0 @@ -INTERFACE_POSITION_INDEPENDENT_CODE ------------------------------------ - -* :prop_tgt:`INTERFACE_POSITION_INDEPENDENT_CODE` target property gains the - support of :manual:`generator expressions `. diff --git a/Help/release/dev/UseSWIG-CMP0086.rst b/Help/release/dev/UseSWIG-CMP0086.rst deleted file mode 100644 index d6fd0d1..0000000 --- a/Help/release/dev/UseSWIG-CMP0086.rst +++ /dev/null @@ -1,6 +0,0 @@ -UseSWIG-CMP0086 ---------------- - -* The :module:`UseSWIG` module passes option ``-module `` to - ``SWIG`` compiler if the file property ``SWIG_MODULE_NAME`` is defined. - See policy :policy:`CMP0086`. diff --git a/Help/release/dev/UseSWIG-source-file-ext.rst b/Help/release/dev/UseSWIG-source-file-ext.rst deleted file mode 100644 index 5d11dc6..0000000 --- a/Help/release/dev/UseSWIG-source-file-ext.rst +++ /dev/null @@ -1,5 +0,0 @@ -UseSWIG-source-file-ext ------------------------ - -* The :module:`UseSWIG` module gains capability to specify - ``SWIG`` source file extensions. diff --git a/Help/release/dev/autogen-origin-depends.rst b/Help/release/dev/autogen-origin-depends.rst deleted file mode 100644 index 7310487..0000000 --- a/Help/release/dev/autogen-origin-depends.rst +++ /dev/null @@ -1,7 +0,0 @@ -autogen-origin-depends ----------------------- - -* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and - :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or - disable forwarding of the origin target dependencies to the corresponding - ``_autogen`` target. diff --git a/Help/release/dev/autogen_executables.rst b/Help/release/dev/autogen_executables.rst deleted file mode 100644 index 5e967ea..0000000 --- a/Help/release/dev/autogen_executables.rst +++ /dev/null @@ -1,9 +0,0 @@ -AUTO*_EXECUTABLE ----------------- - -* The :prop_tgt:`AUTOMOC_EXECUTABLE`, :prop_tgt:`AUTORCC_EXECUTABLE` and - :prop_tgt:`AUTOUIC_EXECUTABLE` target properties all take a path to an - executable and force automoc/autorcc/autouic to use this executable. - - Setting these will also prevent the configure time testing for these - executables. This is mainly useful when you build these tools yourself. diff --git a/Help/release/dev/autogen_global_target.rst b/Help/release/dev/autogen_global_target.rst deleted file mode 100644 index d555395..0000000 --- a/Help/release/dev/autogen_global_target.rst +++ /dev/null @@ -1,8 +0,0 @@ -autogen_global_target ---------------------- - -* The new variables :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`, - :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET_NAME`, - :variable:`CMAKE_GLOBAL_AUTORCC_TARGET` and - :variable:`CMAKE_GLOBAL_AUTORCC_TARGET_NAME` control the generation - of global ``autogen`` and ``autorcc`` targets. diff --git a/Help/release/dev/better-empty-list-behavior.rst b/Help/release/dev/better-empty-list-behavior.rst deleted file mode 100644 index cd864f4..0000000 --- a/Help/release/dev/better-empty-list-behavior.rst +++ /dev/null @@ -1,9 +0,0 @@ -better-empty-list-behavior --------------------------- - -* The :command:`list` operations ``REMOVE_ITEM``, ``REMOVE_DUPLICATES``, - ``SORT``, ``REVERSE``, and ``FILTER`` all now accept a non-existent variable - as the list since these operations on empty lists is also the empty list. - -* The :command:`list` operation ``REMOVE_AT`` now indicates that the given - indices are invalid for a non-existent variable or empty list. diff --git a/Help/release/dev/bison_target_policy.rst b/Help/release/dev/bison_target_policy.rst deleted file mode 100644 index 3240318..0000000 --- a/Help/release/dev/bison_target_policy.rst +++ /dev/null @@ -1,6 +0,0 @@ -bison_target_policy -------------------- - -* The :module:`FindBISON` module's ``BISON_TARGET`` command now runs ``bison`` - with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory. - See policy :policy:`CMP0088`. diff --git a/Help/release/dev/check-fortran-run.rst b/Help/release/dev/check-fortran-run.rst deleted file mode 100644 index b5f6558..0000000 --- a/Help/release/dev/check-fortran-run.rst +++ /dev/null @@ -1,6 +0,0 @@ -check-fortran-run ------------------ - -* A :module:`CheckFortranSourceRuns` module was added to provide a - :command:`check_fortran_source_runs` command to check if a Fortran - source snippet compiles and runs. diff --git a/Help/release/dev/check-functions-LINK_OPTIONS.rst b/Help/release/dev/check-functions-LINK_OPTIONS.rst deleted file mode 100644 index a6bfed2..0000000 --- a/Help/release/dev/check-functions-LINK_OPTIONS.rst +++ /dev/null @@ -1,5 +0,0 @@ -check-functions-LINK_OPTIONS ----------------------------- - -* The family of modules to check capabilities (like - :module:`CheckCSourceCompiles`) gain capability to manage ``LINK_OPTIONS``. diff --git a/Help/release/dev/cmake-build-verbose.rst b/Help/release/dev/cmake-build-verbose.rst deleted file mode 100644 index dee212e..0000000 --- a/Help/release/dev/cmake-build-verbose.rst +++ /dev/null @@ -1,6 +0,0 @@ -cmake-build-verbose -------------------- - -* The :manual:`cmake(1)` :ref:`Build Tool Mode` (``cmake --build``) gained - ``--verbose`` and ``-v`` options to specify verbose build output. Some - generators such as Xcode don't support this option currently. diff --git a/Help/release/dev/cmake-gui-s-b.rst b/Help/release/dev/cmake-gui-s-b.rst deleted file mode 100644 index 9447eb3..0000000 --- a/Help/release/dev/cmake-gui-s-b.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake-gui-s-b -------------- - -* The :manual:`cmake-gui(1)` dialog gained new ``-S`` and ``-B`` arguments to - explicitly specify source and build directories. diff --git a/Help/release/dev/cmake_role-global-property.rst b/Help/release/dev/cmake_role-global-property.rst deleted file mode 100644 index 7b1fa0b..0000000 --- a/Help/release/dev/cmake_role-global-property.rst +++ /dev/null @@ -1,6 +0,0 @@ -cmake_role-global-property --------------------------- - -* A new global property, :prop_gbl:`CMAKE_ROLE`, was added to allow scripts to - determine whether they're running in project mode, script mode, find-package - mode, CTest, or CPack. diff --git a/Help/release/dev/compare_files-ignore-eol.rst b/Help/release/dev/compare_files-ignore-eol.rst deleted file mode 100644 index bc32921..0000000 --- a/Help/release/dev/compare_files-ignore-eol.rst +++ /dev/null @@ -1,6 +0,0 @@ -compare_files-ignore-eol ------------------------- - -* The :manual:`cmake(1)` ``-E compare_files`` command learned a new - ``--ignore-eol`` option to specify that end-of-line differences (e.g. LF vs - CRLF) should be ignored when comparing files. diff --git a/Help/release/dev/cpack-deb-tar-format.rst b/Help/release/dev/cpack-deb-tar-format.rst deleted file mode 100644 index 9296ec6..0000000 --- a/Help/release/dev/cpack-deb-tar-format.rst +++ /dev/null @@ -1,7 +0,0 @@ -cpack-deb-tar-format --------------------- - -* The :module:`CPack` module no longer defaults to the ``paxr`` value in the - :variable:`CPACK_DEBIAN_ARCHIVE_TYPE` variable, because ``dpkg`` has - never supported the PAX tar format. The ``paxr`` value will be mapped - to ``gnutar`` and a deprecation message emitted. diff --git a/Help/release/dev/cppcheck-exit-code.rst b/Help/release/dev/cppcheck-exit-code.rst deleted file mode 100644 index d66c762..0000000 --- a/Help/release/dev/cppcheck-exit-code.rst +++ /dev/null @@ -1,6 +0,0 @@ -cppcheck-exit-code ------------------- - -* When using cppcheck via the :variable:`CMAKE__CPPCHECK` variable - or :prop_tgt:`_CPPCHECK` property, the build will now fail if - ``cppcheck`` returns non-zero as configured by its command-line options. diff --git a/Help/release/dev/ctest-done.rst b/Help/release/dev/ctest-done.rst deleted file mode 100644 index 9ec0e24..0000000 --- a/Help/release/dev/ctest-done.rst +++ /dev/null @@ -1,5 +0,0 @@ -ctest-done ----------- - -* The :command:`ctest_submit` command learned a new ``Done`` part that can be used - to inform CDash that a build is complete and that no more parts will be uploaded. diff --git a/Help/release/dev/ctest-show-only-json-v1.rst b/Help/release/dev/ctest-show-only-json-v1.rst deleted file mode 100644 index f593e7e..0000000 --- a/Help/release/dev/ctest-show-only-json-v1.rst +++ /dev/null @@ -1,6 +0,0 @@ -ctest-show-only-json-v1 ------------------------ - -* :manual:`ctest(1)` gained a ``--show-only=json-v1`` option to show the - list of tests in a machine-readable JSON format. - See the :ref:`Show as JSON Object Model` section of the manual. diff --git a/Help/release/dev/ctest-submit-url.rst b/Help/release/dev/ctest-submit-url.rst deleted file mode 100644 index f848877..0000000 --- a/Help/release/dev/ctest-submit-url.rst +++ /dev/null @@ -1,7 +0,0 @@ -ctest-submit-url ----------------- - -* CTest learned to accept the dashboard server submission URL from a single - variable. See the ``SubmitURL`` setting in :manual:`ctest(1)`, - the :variable:`CTEST_SUBMIT_URL` variable, and the ``SUBMIT_URL`` - argument of the :command:`ctest_submit` command. diff --git a/Help/release/dev/deprecate-findqt.rst b/Help/release/dev/deprecate-findqt.rst deleted file mode 100644 index 4171c65..0000000 --- a/Help/release/dev/deprecate-findqt.rst +++ /dev/null @@ -1,8 +0,0 @@ -deprecate-findqt ----------------- - -* The :module:`FindQt` module is no longer used by the :command:`find_package` - command as a find module. This allows the Qt Project upstream to optionally - provide its own ``QtConfig.cmake`` package configuration file and have - applications use it via ``find_package(Qt)`` rather than - ``find_package(Qt CONFIG)``. See policy :policy:`CMP0084`. diff --git a/Help/release/dev/deprecate-policy-old.rst b/Help/release/dev/deprecate-policy-old.rst deleted file mode 100644 index 2c99780..0000000 --- a/Help/release/dev/deprecate-policy-old.rst +++ /dev/null @@ -1,8 +0,0 @@ -deprecate-policy-old --------------------- - -* An explicit deprecation diagnostic was added for policies ``CMP0064`` - and ``CMP0065`` (``CMP0063`` 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. diff --git a/Help/release/dev/deprecate-xcode-4.rst b/Help/release/dev/deprecate-xcode-4.rst deleted file mode 100644 index 84786ae..0000000 --- a/Help/release/dev/deprecate-xcode-4.rst +++ /dev/null @@ -1,6 +0,0 @@ -deprecate-xcode-4 ------------------ - -* The :generator:`Xcode` generator deprecated support for Xcode - versions prior to Xcode 5. Support for those will be dropped in a - future version of CMake. diff --git a/Help/release/dev/fetchcontent-reduce-boilerplate.rst b/Help/release/dev/fetchcontent-reduce-boilerplate.rst deleted file mode 100644 index 6157668..0000000 --- a/Help/release/dev/fetchcontent-reduce-boilerplate.rst +++ /dev/null @@ -1,8 +0,0 @@ -fetchcontent-reduce-boilerplate -------------------------------- - -* The FetchContent module gained a new :command:`FetchContent_MakeAvailable` - command. This new command accepts a list of dependency names, which it then - iterates over, populating and adding each one to the main build using the - canonical pattern. This significantly reduces the amount of boilerplate - needed in the project. diff --git a/Help/release/dev/file-read_symlink.rst b/Help/release/dev/file-read_symlink.rst deleted file mode 100644 index 718802e..0000000 --- a/Help/release/dev/file-read_symlink.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-read_symlink ------------------ - -* The :command:`file` command learned a new sub-command, ``READ_SYMLINK``, - which can be used to determine the path that a symlink points to. diff --git a/Help/release/dev/file-size.rst b/Help/release/dev/file-size.rst deleted file mode 100644 index 4f0e196..0000000 --- a/Help/release/dev/file-size.rst +++ /dev/null @@ -1,5 +0,0 @@ -file-size ---------- - -* The :command:`file` command gained a ``SIZE`` mode to get the size - of a file on disk. diff --git a/Help/release/dev/fileapi.rst b/Help/release/dev/fileapi.rst deleted file mode 100644 index c3f03ef..0000000 --- a/Help/release/dev/fileapi.rst +++ /dev/null @@ -1,5 +0,0 @@ -fileapi -------- - -* A file-based api for clients to get semantic buildsystem information - has been added. See the :manual:`cmake-file-api(7)` manual. diff --git a/Help/release/dev/find-package-resolve-symlinks.rst b/Help/release/dev/find-package-resolve-symlinks.rst deleted file mode 100644 index 7adb9fe..0000000 --- a/Help/release/dev/find-package-resolve-symlinks.rst +++ /dev/null @@ -1,6 +0,0 @@ -find-package-resolve-symlinks ------------------------------ - -* The :command:`find_package` command learned to optionally resolve - symbolic links in the paths to package configuration files. - See the :variable:`CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS` variable. diff --git a/Help/release/dev/find_fontconfig.rst b/Help/release/dev/find_fontconfig.rst deleted file mode 100644 index 4ae18c9..0000000 --- a/Help/release/dev/find_fontconfig.rst +++ /dev/null @@ -1,6 +0,0 @@ -find_fontconfig ---------------- - -* The :module:`FindFontconfig` module was added to find `fontconfig`_. - -.. _`fontconfig`: https://www.freedesktop.org/wiki/Software/fontconfig/ diff --git a/Help/release/dev/find_libinput.rst b/Help/release/dev/find_libinput.rst deleted file mode 100644 index ebb9e7a..0000000 --- a/Help/release/dev/find_libinput.rst +++ /dev/null @@ -1,6 +0,0 @@ -find_libinput -------------- - -* The :module:`FindLibinput` module was added to find `libinput`_. - -.. _`libinput`: https://www.freedesktop.org/wiki/Software/libinput/ diff --git a/Help/release/dev/findgit-imported-target.rst b/Help/release/dev/findgit-imported-target.rst deleted file mode 100644 index cabbae5..0000000 --- a/Help/release/dev/findgit-imported-target.rst +++ /dev/null @@ -1,5 +0,0 @@ -findgit-imported-target ------------------------ - -* The :module:`FindGit` module now provides an ``IMPORTED`` target for the Git - executable. diff --git a/Help/release/dev/findpython-script.rst b/Help/release/dev/findpython-script.rst deleted file mode 100644 index 5de1ebf..0000000 --- a/Help/release/dev/findpython-script.rst +++ /dev/null @@ -1,6 +0,0 @@ -findpython-script ------------------ - -* The :module:`FindPython2`, :module:`FindPython3`, and :module:`FindPython` - modules now support running in script mode by skipping the creation of - imported targets and helper functions. diff --git a/Help/release/dev/fortran-compiler-id.rst b/Help/release/dev/fortran-compiler-id.rst deleted file mode 100644 index 1ea3bf9..0000000 --- a/Help/release/dev/fortran-compiler-id.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fortran_COMPILER_ID -------------------- - -* The ``$`` and ``$`` - :manual:`generator expressions ` were added. diff --git a/Help/release/dev/genex-in_list-empty-args.rst b/Help/release/dev/genex-in_list-empty-args.rst deleted file mode 100644 index ec1c6c0..0000000 --- a/Help/release/dev/genex-in_list-empty-args.rst +++ /dev/null @@ -1,5 +0,0 @@ -genex-in_list-empty-args ------------------------- - -* The $ generator expression now correctly handles an empty - argument. See :policy:`CMP0085` for details. diff --git a/Help/release/dev/get_filename_component_last_ext.rst b/Help/release/dev/get_filename_component_last_ext.rst deleted file mode 100644 index 2487dbc..0000000 --- a/Help/release/dev/get_filename_component_last_ext.rst +++ /dev/null @@ -1,6 +0,0 @@ -get_filename_component_last_ext -------------------------------- - -* The :command:`get_filename_component` command gained new - ``LAST_EXT`` and ``NAME_WLE`` variants to work with the - extension after the last ``.`` in the name. diff --git a/Help/release/dev/if-supports-cache-defined.rst b/Help/release/dev/if-supports-cache-defined.rst deleted file mode 100644 index 1e700c0..0000000 --- a/Help/release/dev/if-supports-cache-defined.rst +++ /dev/null @@ -1,5 +0,0 @@ -if-supports-cache-defined -------------------------- - -* The :command:`if` command gained support for checking if cache variables - are defined with the ``DEFINED CACHE{VAR}`` syntax. diff --git a/Help/release/dev/install-code-script-genex.rst b/Help/release/dev/install-code-script-genex.rst deleted file mode 100644 index a28a466..0000000 --- a/Help/release/dev/install-code-script-genex.rst +++ /dev/null @@ -1,5 +0,0 @@ -install-code-script-genex -------------------------- - -* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands - learned to support generator expressions. See policy :policy:`CMP0087`. diff --git a/Help/release/dev/install-defaults.rst b/Help/release/dev/install-defaults.rst deleted file mode 100644 index 4f31b7e..0000000 --- a/Help/release/dev/install-defaults.rst +++ /dev/null @@ -1,12 +0,0 @@ -install-defaults ----------------- - -* The ``TARGETS`` variant of the :command:`install` command learned how to - install to an appropriate default directory for a given target type, based - on variables from the :module:`GNUInstallDirs` module and built-in defaults, - in lieu of a ``DESTINATION`` argument. -* The ``FILES`` and ``DIRECTORY`` variants of the :command:`install` command - learned a new set of parameters for installing files as a file type, setting - the destination based on the appropriate variables from - :module:`GNUInstallDirs` and built-in defaults, in lieu of a ``DESTINATION`` - argument. diff --git a/Help/release/dev/install-subdirectory-order.rst b/Help/release/dev/install-subdirectory-order.rst deleted file mode 100644 index c52e617..0000000 --- a/Help/release/dev/install-subdirectory-order.rst +++ /dev/null @@ -1,5 +0,0 @@ -install-subdirectory-order --------------------------- - -* Install rules under :command:`add_subdirectory` now interleave with those in - the calling directory. See policy :policy:`CMP0082` for details. diff --git a/Help/release/dev/iphone-friendly-cmake.rst b/Help/release/dev/iphone-friendly-cmake.rst deleted file mode 100644 index f32f0d1..0000000 --- a/Help/release/dev/iphone-friendly-cmake.rst +++ /dev/null @@ -1,5 +0,0 @@ -iphone-friendly-cmake ---------------------- - -* CMake now supports :ref:`Cross Compiling for iOS, tvOS, or watchOS` - using simple toolchain files. diff --git a/Help/release/dev/link-option-PIE.rst b/Help/release/dev/link-option-PIE.rst deleted file mode 100644 index 872343c..0000000 --- a/Help/release/dev/link-option-PIE.rst +++ /dev/null @@ -1,9 +0,0 @@ -link-option-PIE ---------------- - -* Required link options to manage Position Independent Executable are now - added when :prop_tgt:`POSITION_INDEPENDENT_CODE` is set. The project is - responsible for using the :module:`CheckPIESupported` module to check for - ``PIE`` support to ensure that the :prop_tgt:`POSITION_INDEPENDENT_CODE` - target property will be honored at link time for executables. This behavior - is controlled by policy :policy:`CMP0083`. diff --git a/Help/release/dev/max-recursion-depth.rst b/Help/release/dev/max-recursion-depth.rst deleted file mode 100644 index 3d9c781..0000000 --- a/Help/release/dev/max-recursion-depth.rst +++ /dev/null @@ -1,6 +0,0 @@ -max-recursion-depth -------------------- - -* CMake now imposes a maximum recursion limit to prevent a stack overflow on - scripts that recurse infinitely. The limit can be adjusted at runtime with - :variable:`CMAKE_MAXIMUM_RECURSION_DEPTH`. diff --git a/Help/release/dev/object-library-link.rst b/Help/release/dev/object-library-link.rst deleted file mode 100644 index 990d915..0000000 --- a/Help/release/dev/object-library-link.rst +++ /dev/null @@ -1,5 +0,0 @@ -object-library-link -------------------- - -* Object library linking has been fixed to propagate transitive link - dependencies of object libraries to consuming targets. diff --git a/Help/release/dev/rel-win7.rst b/Help/release/dev/rel-win7.rst deleted file mode 100644 index f7a745c..0000000 --- a/Help/release/dev/rel-win7.rst +++ /dev/null @@ -1,6 +0,0 @@ -rel-win7 --------- - -* Support for running CMake on Windows XP and Windows Vista has been dropped. - The precompiled Windows binaries provided on ``cmake.org`` now require - Windows 7 or higher. diff --git a/Help/release/dev/relative-rpath.rst b/Help/release/dev/relative-rpath.rst deleted file mode 100644 index 5c62b10..0000000 --- a/Help/release/dev/relative-rpath.rst +++ /dev/null @@ -1,8 +0,0 @@ -relative-rpath --------------- - -* A :variable:`CMAKE_BUILD_RPATH_USE_ORIGIN` variable and corresponding - :prop_tgt:`BUILD_RPATH_USE_ORIGIN` target property were added to - enable use of relative runtime paths (RPATHs). This helps achieving - relocatable and reproducible builds that are invariant of the build - directory. diff --git a/Help/release/dev/submit-method.rst b/Help/release/dev/submit-method.rst deleted file mode 100644 index 38f0b92..0000000 --- a/Help/release/dev/submit-method.rst +++ /dev/null @@ -1,6 +0,0 @@ -submit-method -------------- - -* CTest no longer supports submissions via ``ftp``, ``scp``, ``cp``, and - ``xmlrpc``. CDash is the only maintained testing dashboard for CTest, - and it only supports submissions over ``http`` and ``https``. diff --git a/Help/release/dev/try_compile-LINK_OPTIONS.rst b/Help/release/dev/try_compile-LINK_OPTIONS.rst deleted file mode 100644 index 1db485b..0000000 --- a/Help/release/dev/try_compile-LINK_OPTIONS.rst +++ /dev/null @@ -1,5 +0,0 @@ -try_compile-LINK_OPTIONS ------------------------- - -* The commands :command:`try_compile` and :command:`try_run` gain new - option ``LINK_OPTIONS``. diff --git a/Help/release/dev/vs-debug-utility-targets.rst b/Help/release/dev/vs-debug-utility-targets.rst deleted file mode 100644 index 02e5262..0000000 --- a/Help/release/dev/vs-debug-utility-targets.rst +++ /dev/null @@ -1,6 +0,0 @@ -vs-debug-utility-targets ------------------------- - -* :ref:`Visual Studio Generators` for VS 2010 and above learned - to support the ``VS_DEBUGGER_*`` properties on targets created - via :command:`add_custom_target`. diff --git a/Help/release/dev/vs2019.rst b/Help/release/dev/vs2019.rst deleted file mode 100644 index ee9a2f2..0000000 --- a/Help/release/dev/vs2019.rst +++ /dev/null @@ -1,14 +0,0 @@ -vs2019 ------- - -* The :generator:`Visual Studio 16 2019` generator was added. This is - experimental and based on "Visual Studio 2019 Preview 2" because this - version of VS has not been released. - - The VS 2019 generator differs from generators for earlier versions - in that it does not provide variants that specify the target platform - in the generator name. Instead :variable:`CMAKE_GENERATOR_PLATFORM` - must be used, e.g. through the ``-A`` command-line option. Furthermore, - the default target platform (architecture) is now based on the *host* - platform. The VS host toolset selection is now based on the host - architecture as well. diff --git a/Help/release/index.rst b/Help/release/index.rst index 7ef3a8e..2318e03 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -15,6 +15,7 @@ Releases .. toctree:: :maxdepth: 1 + 3.14 <3.14> 3.13 <3.13> 3.12 <3.12> 3.11 <3.11> -- cgit v0.12 From aa9161fd577bfd6a6bf98200d4e437effe9f0628 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 6 Feb 2019 09:17:55 -0500 Subject: Help: Organize and revise 3.14 release notes Add section headers similar to the 3.13 release notes and move each individual bullet into an appropriate section. Revise a few bullets. --- Help/release/3.14.rst | 354 ++++++++++++++++++++++++++++---------------------- 1 file changed, 200 insertions(+), 154 deletions(-) diff --git a/Help/release/3.14.rst b/Help/release/3.14.rst index a1c6e24..ff499f5 100644 --- a/Help/release/3.14.rst +++ b/Help/release/3.14.rst @@ -7,102 +7,133 @@ CMake 3.14 Release Notes Changes made since CMake 3.13 include the following. -* The :prop_tgt:`AUTOMOC_EXECUTABLE`, :prop_tgt:`AUTORCC_EXECUTABLE` and - :prop_tgt:`AUTOUIC_EXECUTABLE` target properties all take a path to an - executable and force automoc/autorcc/autouic to use this executable. +New Features +============ - Setting these will also prevent the configure time testing for these - executables. This is mainly useful when you build these tools yourself. +Generators +---------- -* The new variables :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`, - :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET_NAME`, - :variable:`CMAKE_GLOBAL_AUTORCC_TARGET` and - :variable:`CMAKE_GLOBAL_AUTORCC_TARGET_NAME` control the generation - of global ``autogen`` and ``autorcc`` targets. +* The :generator:`Visual Studio 16 2019` generator was added. This is + experimental and based on "Visual Studio 2019 Preview 2" because this + version of VS has not been released. -* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and - :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or - disable forwarding of the origin target dependencies to the corresponding - ``_autogen`` target. + The VS 2019 generator differs from generators for earlier versions + in that it does not provide variants that specify the target platform + in the generator name. Instead :variable:`CMAKE_GENERATOR_PLATFORM` + must be used, e.g. through the ``-A`` command-line option. Furthermore, + the default target platform (architecture) is now based on the *host* + platform. The VS host toolset selection is now based on the host + architecture as well. -* The :command:`list` operations ``REMOVE_ITEM``, ``REMOVE_DUPLICATES``, - ``SORT``, ``REVERSE``, and ``FILTER`` all now accept a non-existent variable - as the list since these operations on empty lists is also the empty list. +File-Based API +-------------- -* The :command:`list` operation ``REMOVE_AT`` now indicates that the given - indices are invalid for a non-existent variable or empty list. +* A file-based api for clients to get semantic buildsystem information + has been added. See the :manual:`cmake-file-api(7)` manual. + This is intended to replace the :manual:`cmake-server(7)` mode for IDEs. -* The :module:`FindBISON` module's ``BISON_TARGET`` command now runs ``bison`` - with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory. - See policy :policy:`CMP0088`. +Platforms +--------- -* A :module:`CheckFortranSourceRuns` module was added to provide a - :command:`check_fortran_source_runs` command to check if a Fortran - source snippet compiles and runs. +* CMake now supports :ref:`Cross Compiling for iOS, tvOS, or watchOS` + using simple toolchain files. -* The family of modules to check capabilities (like - :module:`CheckCSourceCompiles`) gain capability to manage ``LINK_OPTIONS``. +Command-Line +------------ -* The :manual:`cmake(1)` :ref:`Build Tool Mode` (``cmake --build``) gained - ``--verbose`` and ``-v`` options to specify verbose build output. Some - generators such as Xcode don't support this option currently. +* The :manual:`cmake(1)` :ref:`Build Tool Mode ` + (``cmake --build``) gained ``--verbose`` and ``-v`` options to + specify verbose build output. Some generators such as Xcode don't + support this option currently. + +* The :manual:`cmake(1)` ``-E compare_files`` command learned a new + ``--ignore-eol`` option to specify that end-of-line differences + (e.g. LF vs CRLF) should be ignored when comparing files. * The :manual:`cmake-gui(1)` dialog gained new ``-S`` and ``-B`` arguments to explicitly specify source and build directories. -* A new global property, :prop_gbl:`CMAKE_ROLE`, was added to allow scripts to - determine whether they're running in project mode, script mode, find-package - mode, CTest, or CPack. +Commands +-------- -* The :manual:`cmake(1)` ``-E compare_files`` command learned a new - ``--ignore-eol`` option to specify that end-of-line differences (e.g. LF vs - CRLF) should be ignored when comparing files. +* The :command:`file` command learned a new sub-command, ``READ_SYMLINK``, + which can be used to determine the path that a symlink points to. -* The :module:`CPack` module no longer defaults to the ``paxr`` value in the - :variable:`CPACK_DEBIAN_ARCHIVE_TYPE` variable, because ``dpkg`` has - never supported the PAX tar format. The ``paxr`` value will be mapped - to ``gnutar`` and a deprecation message emitted. +* The :command:`file` command gained a ``SIZE`` mode to get the size + of a file on disk. -* When using cppcheck via the :variable:`CMAKE__CPPCHECK` variable - or :prop_tgt:`_CPPCHECK` property, the build will now fail if - ``cppcheck`` returns non-zero as configured by its command-line options. +* The :command:`find_package` command learned to optionally resolve + symbolic links in the paths to package configuration files. + See the :variable:`CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS` variable. -* The :command:`ctest_submit` command learned a new ``Done`` part that can be used - to inform CDash that a build is complete and that no more parts will be uploaded. +* The :command:`get_filename_component` command gained new + ``LAST_EXT`` and ``NAME_WLE`` variants to work with the + extension after the last ``.`` in the name. -* :manual:`ctest(1)` gained a ``--show-only=json-v1`` option to show the - list of tests in a machine-readable JSON format. - See the :ref:`Show as JSON Object Model` section of the manual. +* The :command:`if` command gained support for checking if cache variables + are defined with the ``DEFINED CACHE{VAR}`` syntax. -* CTest learned to accept the dashboard server submission URL from a single - variable. See the ``SubmitURL`` setting in :manual:`ctest(1)`, - the :variable:`CTEST_SUBMIT_URL` variable, and the ``SUBMIT_URL`` - argument of the :command:`ctest_submit` command. +* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands + learned to support generator expressions. See policy :policy:`CMP0087`. + +* The :command:`install(TARGETS)` command learned how to install to an + appropriate default directory for a given target type, based on + variables from the :module:`GNUInstallDirs` module and built-in defaults, + in lieu of a ``DESTINATION`` argument. + +* The :command:`install(FILES)` and :command:`install(DIRECTORY)` commands + learned a new set of parameters for installing files as a file type, + setting the destination based on the appropriate variables from + :module:`GNUInstallDirs` and built-in defaults, in lieu of a + ``DESTINATION`` argument. + +* The :command:`list` operations ``REMOVE_ITEM``, ``REMOVE_DUPLICATES``, + ``SORT``, ``REVERSE``, and ``FILTER`` all now accept a non-existent variable + as the list since these operations on empty lists is also the empty list. + +* The :command:`list` operation ``REMOVE_AT`` now indicates that the given + indices are invalid for a non-existent variable or empty list. + +* The :command:`try_compile` and :command:`try_run` commands gained a new + ``LINK_OPTIONS`` option. + +Variables +--------- + +* A :variable:`CMAKE_BUILD_RPATH_USE_ORIGIN` variable and corresponding + :prop_tgt:`BUILD_RPATH_USE_ORIGIN` target property were added to + enable use of relative runtime paths (RPATHs). This helps achieving + relocatable and reproducible builds that are invariant of the build + directory. + +Properties +---------- + +* A :prop_gbl:`CMAKE_ROLE` global property was added to allow scripts to + determine whether they're running in project mode, script mode, + find-package mode, CTest, or CPack. * The :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` target property is now supported on shared library, module library, and executable targets. Previously it was only honored on static libraries. -* The :module:`FindQt` module is no longer used by the :command:`find_package` - command as a find module. This allows the Qt Project upstream to optionally - provide its own ``QtConfig.cmake`` package configuration file and have - applications use it via ``find_package(Qt)`` rather than - ``find_package(Qt CONFIG)``. See policy :policy:`CMP0084`. +* The :prop_tgt:`EXCLUDE_FROM_ALL` target property was created to override + the setting of its directory. A target will now be built as part of "all" + if its :prop_tgt:`EXCLUDE_FROM_ALL` property is set to ``OFF``, even if its + containing directory is marked as :prop_dir:`EXCLUDE_FROM_ALL`. -* An explicit deprecation diagnostic was added for policies ``CMP0064`` - and ``CMP0065`` (``CMP0063`` 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. +* :prop_tgt:`INTERFACE_POSITION_INDEPENDENT_CODE` target property gains the + support of :manual:`generator expressions `. -* The :generator:`Xcode` generator deprecated support for Xcode - versions prior to Xcode 5. Support for those will be dropped in a - future version of CMake. +Modules +------- -* A target's :prop_tgt:`EXCLUDE_FROM_ALL` property can now override the - setting of its directory. A target will now be built as part of "all" - if its :prop_tgt:`EXCLUDE_FROM_ALL` property is set to ``OFF``, even if its - containing directory is marked as :prop_dir:`EXCLUDE_FROM_ALL`. +* The family of modules to check capabilities (like + :module:`CheckCSourceCompiles`) gain capability to manage ``LINK_OPTIONS``. + +* A :module:`CheckFortranSourceRuns` module was added to provide a + :command:`check_fortran_source_runs` command to check if a Fortran + source snippet compiles and runs. * The :module:`ExternalProject` module :command:`ExternalProject_Add` command gained ``LOG_DIR`` and ``LOG_MERGED_STDOUTERR`` options to control logging. @@ -115,43 +146,34 @@ Changes made since CMake 3.13 include the following. The ``BUILD_COMMAND`` is run in the given ``SOURCE_SUBDIR`` of the ``SOURCE_DIR``. -* The FetchContent module gained a new :command:`FetchContent_MakeAvailable` - command. This new command accepts a list of dependency names, which it then - iterates over, populating and adding each one to the main build using the - canonical pattern. This significantly reduces the amount of boilerplate - needed in the project. - -* A file-based api for clients to get semantic buildsystem information - has been added. See the :manual:`cmake-file-api(7)` manual. - -* The :command:`file` command learned a new sub-command, ``READ_SYMLINK``, - which can be used to determine the path that a symlink points to. +* The :module:`FetchContent` module gained a new + :command:`FetchContent_MakeAvailable` command. It accepts a list of + dependency names, which it then iterates over, populating and adding + each one to the main build using the canonical pattern. This + significantly reduces the amount of boilerplate needed in a project. -* The :command:`file` command gained a ``SIZE`` mode to get the size - of a file on disk. +* The :module:`FindBISON` module's ``BISON_TARGET`` command now runs ``bison`` + with :variable:`CMAKE_CURRENT_BINARY_DIR` as the working directory. + See policy :policy:`CMP0088`. * The :module:`FindCURL` module gained support for requesting protocols as package components. * The :module:`FindFontconfig` module was added to find `fontconfig`_. -.. _`fontconfig`: https://www.freedesktop.org/wiki/Software/fontconfig/ - -* The :module:`FindGDAL` module now provides an imported target. +* The :module:`FindGDAL` module now provides imported targets. * The :module:`FindGIF` module now provides imported targets. -* The :module:`FindGit` module now provides an ``IMPORTED`` target for the Git - executable. +* The :module:`FindGit` module now provides an imported target for the + Git executable. -* The :module:`FindIce` module learned to find - ``slice2confluence`` and ``slice2matlab``. +* The :module:`FindIce` module learned to find ``slice2confluence`` + and ``slice2matlab``. * The :module:`FindLibinput` module was added to find `libinput`_. -.. _`libinput`: https://www.freedesktop.org/wiki/Software/libinput/ - -* The :module:`FindLibLZMA` module now provides an imported target. +* The :module:`FindLibLZMA` module now provides imported targets. * The :module:`FindMatlab` module gained new options ``R2017b`` and ``R2018a`` to specify the MEX API version to use; these options @@ -160,11 +182,7 @@ Changes made since CMake 3.13 include the following. * A :module:`FindOctave` module was added to find GNU octave. -* The :command:`find_package` command learned to optionally resolve - symbolic links in the paths to package configuration files. - See the :variable:`CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS` variable. - -* The :module:`FindPostgreSQL` module now provides an imported target. +* The :module:`FindPostgreSQL` module now provides imported targets. * The :module:`FindPython`, :module:`FindPython2`, and :module:`FindPython3` modules gained support for ``NumPy`` component. @@ -203,62 +221,83 @@ Changes made since CMake 3.13 include the following. - ``X11_Xinput_FOUND`` (use ``X11_Xi_FOUND``) * The :module:`FindX11` now provides ``X11_Xext_INCLUDE_PATH``. + * The :module:`FindX11` now provides imported targets. +* The :module:`UseSWIG` module learned to pass ``-module `` to + the ``SWIG`` compiler if the file property ``SWIG_MODULE_NAME`` is defined. + See policy :policy:`CMP0086`. + +* The :module:`UseSWIG` module gained an option to specify + ``SWIG`` source file extensions. + +.. _`fontconfig`: https://www.freedesktop.org/wiki/Software/fontconfig/ +.. _`libinput`: https://www.freedesktop.org/wiki/Software/libinput/ + +Generator Expressions +--------------------- + * The ``$`` and ``$`` :manual:`generator expressions ` were added. -* The $ generator expression now correctly handles an empty - argument. See :policy:`CMP0085` for details. +* The ``$`` generator expression now correctly handles an + empty argument. See :policy:`CMP0085` for details. -* The :command:`get_filename_component` command gained new - ``LAST_EXT`` and ``NAME_WLE`` variants to work with the - extension after the last ``.`` in the name. +Autogen +------- -* The :command:`if` command gained support for checking if cache variables - are defined with the ``DEFINED CACHE{VAR}`` syntax. +* The :prop_tgt:`AUTOMOC_EXECUTABLE`, :prop_tgt:`AUTORCC_EXECUTABLE`, and + :prop_tgt:`AUTOUIC_EXECUTABLE` target properties were added. They all + take a path to an executable and force automoc/autorcc/autouic to use + this executable. -* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands - learned to support generator expressions. See policy :policy:`CMP0087`. + Setting these will also prevent the configure time testing for these + executables. This is mainly useful when you build these tools yourself. -* The ``TARGETS`` variant of the :command:`install` command learned how to - install to an appropriate default directory for a given target type, based - on variables from the :module:`GNUInstallDirs` module and built-in defaults, - in lieu of a ``DESTINATION`` argument. -* The ``FILES`` and ``DIRECTORY`` variants of the :command:`install` command - learned a new set of parameters for installing files as a file type, setting - the destination based on the appropriate variables from - :module:`GNUInstallDirs` and built-in defaults, in lieu of a ``DESTINATION`` - argument. +* The new variables :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET`, + :variable:`CMAKE_GLOBAL_AUTOGEN_TARGET_NAME`, + :variable:`CMAKE_GLOBAL_AUTORCC_TARGET` and + :variable:`CMAKE_GLOBAL_AUTORCC_TARGET_NAME` control the generation + of global ``autogen`` and ``autorcc`` targets. -* Install rules under :command:`add_subdirectory` now interleave with those in - the calling directory. See policy :policy:`CMP0082` for details. +* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and + :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or + disable forwarding of the origin target dependencies to the corresponding + ``_autogen`` target. -* :prop_tgt:`INTERFACE_POSITION_INDEPENDENT_CODE` target property gains the - support of :manual:`generator expressions `. +CTest +----- -* CMake now supports :ref:`Cross Compiling for iOS, tvOS, or watchOS` - using simple toolchain files. +* :manual:`ctest(1)` gained a ``--show-only=json-v1`` option to show the + list of tests in a machine-readable JSON format. + See the :ref:`Show as JSON Object Model` section of the manual. -* Required link options to manage Position Independent Executable are now - added when :prop_tgt:`POSITION_INDEPENDENT_CODE` is set. The project is - responsible for using the :module:`CheckPIESupported` module to check for - ``PIE`` support to ensure that the :prop_tgt:`POSITION_INDEPENDENT_CODE` - target property will be honored at link time for executables. This behavior - is controlled by policy :policy:`CMP0083`. +* The :command:`ctest_submit` command learned a new ``Done`` part that can be used + to inform CDash that a build is complete and that no more parts will be uploaded. -* CMake now imposes a maximum recursion limit to prevent a stack overflow on - scripts that recurse infinitely. The limit can be adjusted at runtime with - :variable:`CMAKE_MAXIMUM_RECURSION_DEPTH`. +* CTest learned to accept the dashboard server submission URL from a single + variable. See the ``SubmitURL`` setting in :manual:`ctest(1)`, + the :variable:`CTEST_SUBMIT_URL` variable, and the ``SUBMIT_URL`` + argument of the :command:`ctest_submit` command. -* Object library linking has been fixed to propagate transitive link - dependencies of object libraries to consuming targets. +Deprecated and Removed Features +=============================== -* A :variable:`CMAKE_BUILD_RPATH_USE_ORIGIN` variable and corresponding - :prop_tgt:`BUILD_RPATH_USE_ORIGIN` target property were added to - enable use of relative runtime paths (RPATHs). This helps achieving - relocatable and reproducible builds that are invariant of the build - directory. +* An explicit deprecation diagnostic was added for policies ``CMP0064`` + and ``CMP0065`` (``CMP0063`` 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 :generator:`Xcode` generator deprecated support for Xcode + versions prior to Xcode 5. Support for those will be dropped in a + future version of CMake. + +* The :module:`FindQt` module is no longer used by the :command:`find_package` + command as a find module. This allows the Qt Project upstream to optionally + provide its own ``QtConfig.cmake`` package configuration file and have + applications use it via ``find_package(Qt)`` rather than + ``find_package(Qt CONFIG)``. See policy :policy:`CMP0084`. * Support for running CMake on Windows XP and Windows Vista has been dropped. The precompiled Windows binaries provided on ``cmake.org`` now require @@ -268,28 +307,35 @@ Changes made since CMake 3.13 include the following. ``xmlrpc``. CDash is the only maintained testing dashboard for CTest, and it only supports submissions over ``http`` and ``https``. -* The commands :command:`try_compile` and :command:`try_run` gain new - option ``LINK_OPTIONS``. +Other Changes +============= -* The :module:`UseSWIG` module passes option ``-module `` to - ``SWIG`` compiler if the file property ``SWIG_MODULE_NAME`` is defined. - See policy :policy:`CMP0086`. +* Object library linking has been fixed to propagate transitive link + dependencies of object libraries to consuming targets. -* The :module:`UseSWIG` module gains capability to specify - ``SWIG`` source file extensions. +* Install rules under :command:`add_subdirectory` now interleave with those in + the calling directory. See policy :policy:`CMP0082` for details. -* The :generator:`Visual Studio 16 2019` generator was added. This is - experimental and based on "Visual Studio 2019 Preview 2" because this - version of VS has not been released. +* CMake now imposes a maximum recursion limit to prevent a stack overflow on + scripts that recurse infinitely. The limit can be adjusted at runtime with + :variable:`CMAKE_MAXIMUM_RECURSION_DEPTH`. - The VS 2019 generator differs from generators for earlier versions - in that it does not provide variants that specify the target platform - in the generator name. Instead :variable:`CMAKE_GENERATOR_PLATFORM` - must be used, e.g. through the ``-A`` command-line option. Furthermore, - the default target platform (architecture) is now based on the *host* - platform. The VS host toolset selection is now based on the host - architecture as well. +* When using cppcheck via the :variable:`CMAKE__CPPCHECK` variable + or :prop_tgt:`_CPPCHECK` property, the build will now fail if + ``cppcheck`` returns non-zero as configured by its command-line options. + +* Required link options to manage Position Independent Executable are now + added when :prop_tgt:`POSITION_INDEPENDENT_CODE` is set. The project is + responsible for using the :module:`CheckPIESupported` module to check for + ``PIE`` support to ensure that the :prop_tgt:`POSITION_INDEPENDENT_CODE` + target property will be honored at link time for executables. This behavior + is controlled by policy :policy:`CMP0083`. * :ref:`Visual Studio Generators` for VS 2010 and above learned to support the ``VS_DEBUGGER_*`` properties on targets created via :command:`add_custom_target`. + +* The :module:`CPack` module no longer defaults to the ``paxr`` value in the + :variable:`CPACK_DEBIAN_ARCHIVE_TYPE` variable, because ``dpkg`` has + never supported the PAX tar format. The ``paxr`` value will be mapped + to ``gnutar`` and a deprecation message emitted. -- cgit v0.12