From dd5835c0d69d8640b266b46c6959b974a9b8cfe9 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 5 Oct 2017 07:59:41 -0400 Subject: Help: Consolidate 3.10 release notes Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.10.rst`. --- Help/release/3.10.rst | 227 +++++++++++++++++++++ Help/release/dev/FindCurses-wide.rst | 5 - Help/release/dev/FindEXPAT-importedtargets.rst | 4 - Help/release/dev/FindFreetype-importedtargets.rst | 4 - Help/release/dev/FindMPI-overhaul.rst | 16 -- Help/release/dev/FindOpenACC.rst | 5 - Help/release/dev/FindOpenGL-glvnd.rst | 4 - Help/release/dev/GoogleTest.rst | 11 - ...VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst | 6 - Help/release/dev/add-cppcheck.rst | 7 - Help/release/dev/add-vs-shader-properties.rst | 6 - Help/release/dev/autogen-configs.rst | 8 - Help/release/dev/autogen-generated-files.rst | 8 - Help/release/dev/autogen-macro-names.rst | 14 -- Help/release/dev/autogen-predefs.rst | 11 - Help/release/dev/cmake-command-mode-shasum.rst | 5 - .../dev/cmake_host_system_information-extend.rst | 6 - Help/release/dev/codeblocks-exclude-external.rst | 6 - Help/release/dev/cpack-freebsd-pkg.rst | 5 - Help/release/dev/cpack-rpm-deb-version.rst | 14 -- Help/release/dev/cpackifw-options.rst | 6 - .../dev/cpackifw-package-file-extension.rst | 6 - .../dev/cpackifw-repositories-directories.rst | 8 - Help/release/dev/cuda-compiler-launcher.rst | 8 - Help/release/dev/deb-on-windows.rst | 7 - Help/release/dev/drop-HP-UX.rst | 8 - .../dev/execute_process-pipeline-results.rst | 6 - Help/release/dev/file-generate-relative-paths.rst | 7 - Help/release/dev/find-patch.rst | 5 - Help/release/dev/findopenmp-components.rst | 5 - Help/release/dev/flang.rst | 6 - Help/release/dev/freebsd-compiler-name.rst | 4 - .../get_filename_component-fix-program-split.rst | 9 - Help/release/dev/graphviz-line-styles.rst | 6 - Help/release/dev/iar.rst | 4 - Help/release/dev/include-guard.rst | 8 - Help/release/dev/indented_cmakedefine.rst | 7 - Help/release/dev/irsl-intel.rst | 5 - Help/release/dev/labels_for_subprojects.rst | 14 -- Help/release/dev/midipix-support.rst | 4 - Help/release/dev/msvc-arm64.rst | 5 - Help/release/dev/protobuf-desc.rst | 5 - Help/release/dev/require-c++11.rst | 5 - Help/release/dev/string_prepend.rst | 4 - Help/release/dev/test_include_files.rst | 7 - Help/release/dev/timestamp.rst | 5 - Help/release/index.rst | 1 + 47 files changed, 228 insertions(+), 309 deletions(-) create mode 100644 Help/release/3.10.rst delete mode 100644 Help/release/dev/FindCurses-wide.rst delete mode 100644 Help/release/dev/FindEXPAT-importedtargets.rst delete mode 100644 Help/release/dev/FindFreetype-importedtargets.rst delete mode 100644 Help/release/dev/FindMPI-overhaul.rst delete mode 100644 Help/release/dev/FindOpenACC.rst delete mode 100644 Help/release/dev/FindOpenGL-glvnd.rst delete mode 100644 Help/release/dev/GoogleTest.rst delete mode 100644 Help/release/dev/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst delete mode 100644 Help/release/dev/add-cppcheck.rst delete mode 100644 Help/release/dev/add-vs-shader-properties.rst delete mode 100644 Help/release/dev/autogen-configs.rst delete mode 100644 Help/release/dev/autogen-generated-files.rst delete mode 100644 Help/release/dev/autogen-macro-names.rst delete mode 100644 Help/release/dev/autogen-predefs.rst delete mode 100644 Help/release/dev/cmake-command-mode-shasum.rst delete mode 100644 Help/release/dev/cmake_host_system_information-extend.rst delete mode 100644 Help/release/dev/codeblocks-exclude-external.rst delete mode 100644 Help/release/dev/cpack-freebsd-pkg.rst delete mode 100644 Help/release/dev/cpack-rpm-deb-version.rst delete mode 100644 Help/release/dev/cpackifw-options.rst delete mode 100644 Help/release/dev/cpackifw-package-file-extension.rst delete mode 100644 Help/release/dev/cpackifw-repositories-directories.rst delete mode 100644 Help/release/dev/cuda-compiler-launcher.rst delete mode 100644 Help/release/dev/deb-on-windows.rst delete mode 100644 Help/release/dev/drop-HP-UX.rst delete mode 100644 Help/release/dev/execute_process-pipeline-results.rst delete mode 100644 Help/release/dev/file-generate-relative-paths.rst delete mode 100644 Help/release/dev/find-patch.rst delete mode 100644 Help/release/dev/findopenmp-components.rst delete mode 100644 Help/release/dev/flang.rst delete mode 100644 Help/release/dev/freebsd-compiler-name.rst delete mode 100644 Help/release/dev/get_filename_component-fix-program-split.rst delete mode 100644 Help/release/dev/graphviz-line-styles.rst delete mode 100644 Help/release/dev/iar.rst delete mode 100644 Help/release/dev/include-guard.rst delete mode 100644 Help/release/dev/indented_cmakedefine.rst delete mode 100644 Help/release/dev/irsl-intel.rst delete mode 100644 Help/release/dev/labels_for_subprojects.rst delete mode 100644 Help/release/dev/midipix-support.rst delete mode 100644 Help/release/dev/msvc-arm64.rst delete mode 100644 Help/release/dev/protobuf-desc.rst delete mode 100644 Help/release/dev/require-c++11.rst delete mode 100644 Help/release/dev/string_prepend.rst delete mode 100644 Help/release/dev/test_include_files.rst delete mode 100644 Help/release/dev/timestamp.rst diff --git a/Help/release/3.10.rst b/Help/release/3.10.rst new file mode 100644 index 0000000..7ddf719 --- /dev/null +++ b/Help/release/3.10.rst @@ -0,0 +1,227 @@ +CMake 3.10 Release Notes +************************ + +.. only:: html + + .. contents:: + +Changes made since CMake 3.9 include the following. + +* A :prop_tgt:`_CPPCHECK` target property and supporting + :variable:`CMAKE__CPPCHECK` variable were introduced to tell + the :ref:`Makefile Generators` and the :generator:`Ninja` generator to + run ``cppcheck`` with the compiler for ``C`` and ``CXX`` languages. + +* Source file properties :prop_sf:`VS_SHADER_OUTPUT_HEADER_FILE` and + :prop_sf:`VS_SHADER_VARIABLE_NAME` have been added to specify more + details of ``.hlsl`` sources with :ref:`Visual Studio Generators`. + +* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` with a + multi configuration generator (e.g. :generator:`Xcode`), + included ``*.moc``, ``moc_*.cpp`` and ``ui_*.h`` files are generated in + ``/include_`` instead of + ``/include``. + +* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`, + source files that are :prop_sf:`GENERATED` will be processed as well. + They were ignored by :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` + in earlier releases. + See policy :policy:`CMP0071`. + +* When using :prop_tgt:`AUTOMOC`, CMake searches for the strings ``Q_OBJECT``, + ``Q_GADGET`` or ``Q_NAMESPACE`` in a source file to determine if it needs + to be ``moc`` processed. The new variable + :variable:`CMAKE_AUTOMOC_MACRO_NAMES` allows to register additional + strings (macro names) so search for. + +* When using :prop_tgt:`AUTOMOC`, CMake searches for the strings ``Q_OBJECT``, + ``Q_GADGET`` or ``Q_NAMESPACE`` in a source file to determine if it needs + to be ``moc`` processed. The new target property + :prop_tgt:`AUTOMOC_MACRO_NAMES` allows to register additional strings + (macro names) so search for. + +* When using :prop_tgt:`AUTOMOC`, the new variable + :variable:`CMAKE_AUTOMOC_COMPILER_PREDEFINES` allows to default + enable or disable the generation of the compiler pre definitions file + ``moc_predefs.h``. + +* When using :prop_tgt:`AUTOMOC`, the new boolean target property + :prop_tgt:`AUTOMOC_COMPILER_PREDEFINES` allows to enable or disable the + generation of the compiler pre definitions file ``moc_predefs.h``. + +* Added sha1sum, sha224sum, sha256sum, sha384sum and sha512sum + as an equivalent to existing md5sum to cmake command mode. + +* The :command:`cmake_host_system_information` command learned more keys + to get information about the processor capabilities and the host OS + version. + +* A :variable:`CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES` variable was added + to tell the :generator:`CodeBlocks` extra generator to exclude files + from outside the project root directory from the generated project files. + +* CPack gained a ``FREEBSD`` generator for FreeBSD ``pkg(8)``, configured + by the :module:`CPackFreeBSD` module. + +* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and + :command:`cpack_ifw_configure_component_group` commands gained a new + ``REPLACES`` and ``CHECKABLE`` options. + +* The :module:`CPackIFW` module gained new + :variable:`CPACK_IFW_PACKAGE_FILE_EXTENSION` variable to customize + target binary format. + +* The :module:`CPackIFW` module gained new + :variable:`CPACK_IFW_REPOSITORIES_DIRECTORIES` variable to specify + additional repositories dirs that will be used to resolve and + repack dependent components. This feature available only + since QtIFW 3.1. + +* Modules :module:`CPackRPM` and :module:`CPackDeb` learned to set package epoch + version. + See :variable:`CPACK_RPM_PACKAGE_EPOCH` and + :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables. + +* The :module:`CPackDeb` module learned to set package release version in + `Version` info property. + See :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable. + +* The :module:`CPackDeb` module learned more strict package version checking + that complies with Debian rules. + +* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned + to add compiler launcher tools like ccache along with the compiler for the + ``CUDA`` language (``C`` and ``CXX`` were supported previously). See the + :variable:`CMAKE__COMPILER_LAUNCHER` variable and + :prop_tgt:`_COMPILER_LAUNCHER` target property for details. + +* The CPack ``DEB`` generator, configured by the :module:`CPackDeb` module, + was enabled on Windows. While not fully featured (due to the lack of + external UNIX tools) this will allow building basic cross-platform Debian + packages. + +* Support for building CMake on HP-UX has been dropped pending better + support for C++11 and a port of libuv. See `CMake Issue 17137`_. + Use CMake 3.9 or lower instead for HP-UX support. + +.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/issues/17137 + +* The :command:`execute_process` command gained a ``RESULTS_VARIABLE`` + option to collect a list of results from all children in a pipeline + of processes when multiple ``COMMAND`` arguments are given. + +* The :command:`file(GENERATE)` command now interprets relative paths + given to its ``OUTPUT`` and ``INPUT`` arguments with respect to the + caller's current binary and source directories, respectively. + See policy :policy:`CMP0070`. + +* The :module:`FindCurses` module gained a ``CURSES_NEED_WIDE`` option + to request the wide-character variant. + +* The :module:`FindEXPAT` module now provides imported targets. + +* The :module:`FindFreetype` module now provides imported targets. + +* :module:`FindMPI` gained a number of new features, including: + + * Language-specific components have been added to the module. + * Many more MPI environments are now supported. + * The environmental support for Fortran has been improved. + * A user now has fine-grained control over the MPI selection process, + including passing custom parameters to the MPI compiler. + * The version of the implemented MPI standard is now being exposed. + * MPI-2 C++ bindings can now be detected and also suppressed if so desired. + * The available Fortran bindings are now being detected and verified. + * Various MPI-3 information can be requested, including the library version + and Fortran capabilities of the individual bindings. + * Statically linked MPI implementations are supported. + +* A :module:`FindOpenACC` module was added to detect compiler support + for OpenACC. Currently only supports PGI, GNU and Cray compilers. + +* The :module:`FindOpenGL` module gained support for GLVND on Linux. + +* The :module:`FindOpenMP` module gained support for + language-specific components. + +* A :module:`FindPatch` module was added to find the ``patch`` + command-line executable. + +* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``. + +.. _`flang`: https://github.com/flang-compiler/flang + +* On FreeBSD the C++ compiler named ``c++`` is now the preferred default. + +* The :command:`get_filename_component` ``PROGRAM`` mode semantics + have been revised to not tolerate unquoted spaces in the path + to the program while also accepting arguments. While technically + incompatible with the old behavior, it is expected that behavior + under typical use cases with properly-quoted command-lines has + not changed. + +* The :module:`GoogleTest` module gained a new command + :command:`gtest_discover_tests` implementing dynamic (build-time) test + discovery. Unlike the source parsing approach, dynamic discovery executes + the test (in 'list available tests' mode) at build time to discover tests. + This is robust against unusual ways of labeling tests, provides much better + support for advanced features such as parameterized tests, and does not + require re-running CMake to discover added or removed tests within a test + executable. + +* The graphviz output now distinguishes between the different dependency types + ``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` and represents them in the output graph + as solid, dashed and dotted edges. + +* Support for the IAR ARM Compiler was improved. + +* The :command:`include_guard` command was introduced to allow guarding + CMake scripts from being included more than once. The command supports + ``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard + scope. If no options given, include guard is similar to basic variable-based + check. + +* The :command:`configure_file` command learned to support indented + ``# cmakedefine`` and ``# cmakedefine01``. Spaces and/or tabs between + the ``#`` character and the ``cmakedefine``/``cmakedefine01`` words + are now understood and preserved in the output. + +* The :module:`InstallRequiredSystemLibraries` gained support for installing + Intel compiler runtimes. + +* A :variable:`CTEST_LABELS_FOR_SUBPROJECTS` CTest module variable and CTest + script variable was added to specify a list of labels that should be treated + as subprojects by CDash. To use this value in both the CTest module and the + ctest command line `Dashboard Client` mode (e.g. ctest -S) set it in the + CTestConfig.cmake config file. + +* A :prop_dir:`LABELS` directory property was added to specify labels + for all targets and tests in a directory. + +* A :variable:`CMAKE_DIRECTORY_LABELS` variable was added to specify + labels for all tests in a directory. + +* A new minimal platform file for ``Midipix`` was added. + +* Support for the MSVC ARM64 architecture was added. + Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. + +* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp` command + gained a ``DESCRIPTORS`` option to generate descriptor files. + +* Support for building CMake itself with C++98 compilers was dropped. + CMake is now implemented using C++11. + +* The :command:`string` command learned a new ``PREPEND`` subcommand. + +* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to + list any number of files to be included when running tests with + :manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE` + property. + +* The :command:`string(TIMESTAMP)` command now supports ``%A`` + for full weekday name and ``%B`` for full month name. + +* The :prop_tgt:`VS_DOTNET_REFERENCEPROP__TAG_` + target property was added to support custom XML tags for reference + assemblies in C# targets. diff --git a/Help/release/dev/FindCurses-wide.rst b/Help/release/dev/FindCurses-wide.rst deleted file mode 100644 index 63fb671..0000000 --- a/Help/release/dev/FindCurses-wide.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindCurses-wide ---------------- - -* The :module:`FindCurses` module gained a ``CURSES_NEED_WIDE`` option - to request the wide-character variant. diff --git a/Help/release/dev/FindEXPAT-importedtargets.rst b/Help/release/dev/FindEXPAT-importedtargets.rst deleted file mode 100644 index ea73551..0000000 --- a/Help/release/dev/FindEXPAT-importedtargets.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindEXPAT-importedtargets -------------------------- - -* The :module:`FindEXPAT` module now provides imported targets. diff --git a/Help/release/dev/FindFreetype-importedtargets.rst b/Help/release/dev/FindFreetype-importedtargets.rst deleted file mode 100644 index a895883..0000000 --- a/Help/release/dev/FindFreetype-importedtargets.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindFreetype-importedtargets ----------------------------- - -* The :module:`FindFreetype` module now provides imported targets. diff --git a/Help/release/dev/FindMPI-overhaul.rst b/Help/release/dev/FindMPI-overhaul.rst deleted file mode 100644 index 3bff602..0000000 --- a/Help/release/dev/FindMPI-overhaul.rst +++ /dev/null @@ -1,16 +0,0 @@ -findmpi-overhaul ----------------- - -* :module:`FindMPI` gained a number of new features, including: - - * Language-specific components have been added to the module. - * Many more MPI environments are now supported. - * The environmental support for Fortran has been improved. - * A user now has fine-grained control over the MPI selection process, - including passing custom parameters to the MPI compiler. - * The version of the implemented MPI standard is now being exposed. - * MPI-2 C++ bindings can now be detected and also suppressed if so desired. - * The available Fortran bindings are now being detected and verified. - * Various MPI-3 information can be requested, including the library version - and Fortran capabilities of the individual bindings. - * Statically linked MPI implementations are supported. diff --git a/Help/release/dev/FindOpenACC.rst b/Help/release/dev/FindOpenACC.rst deleted file mode 100644 index f6acbdf..0000000 --- a/Help/release/dev/FindOpenACC.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindOpenACC ------------ - -* A :module:`FindOpenACC` module was added to detect compiler support - for OpenACC. Currently only supports PGI, GNU and Cray compilers. diff --git a/Help/release/dev/FindOpenGL-glvnd.rst b/Help/release/dev/FindOpenGL-glvnd.rst deleted file mode 100644 index b3c8d53..0000000 --- a/Help/release/dev/FindOpenGL-glvnd.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindOpenGL-glvnd ----------------- - -* The :module:`FindOpenGL` module gained support for GLVND on Linux. diff --git a/Help/release/dev/GoogleTest.rst b/Help/release/dev/GoogleTest.rst deleted file mode 100644 index 1e4a10e..0000000 --- a/Help/release/dev/GoogleTest.rst +++ /dev/null @@ -1,11 +0,0 @@ -GoogleTest ----------- - -* The :module:`GoogleTest` module gained a new command - :command:`gtest_discover_tests` implementing dynamic (build-time) test - discovery. Unlike the source parsing approach, dynamic discovery executes - the test (in 'list available tests' mode) at build time to discover tests. - This is robust against unusual ways of labeling tests, provides much better - support for advanced features such as parameterized tests, and does not - require re-running CMake to discover added or removed tests within a test - executable. diff --git a/Help/release/dev/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst b/Help/release/dev/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst deleted file mode 100644 index 0e258fd..0000000 --- a/Help/release/dev/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst +++ /dev/null @@ -1,6 +0,0 @@ -vs-dotnet-custom-reference-tags -------------------------------- - -* The :prop_tgt:`VS_DOTNET_REFERENCEPROP__TAG_` - target property was added to support custom XML tags for reference - assemblies in C# targets. diff --git a/Help/release/dev/add-cppcheck.rst b/Help/release/dev/add-cppcheck.rst deleted file mode 100644 index bf3472a..0000000 --- a/Help/release/dev/add-cppcheck.rst +++ /dev/null @@ -1,7 +0,0 @@ -add-cppcheck ------------- - -* A :prop_tgt:`_CPPCHECK` target property and supporting - :variable:`CMAKE__CPPCHECK` variable were introduced to tell - the :ref:`Makefile Generators` and the :generator:`Ninja` generator to - run ``cppcheck`` with the compiler for ``C`` and ``CXX`` languages. diff --git a/Help/release/dev/add-vs-shader-properties.rst b/Help/release/dev/add-vs-shader-properties.rst deleted file mode 100644 index c48b984..0000000 --- a/Help/release/dev/add-vs-shader-properties.rst +++ /dev/null @@ -1,6 +0,0 @@ -add-vs-shader-properties ------------------------- - -* Source file properties :prop_sf:`VS_SHADER_OUTPUT_HEADER_FILE` and - :prop_sf:`VS_SHADER_VARIABLE_NAME` have been added to specify more - details of ``.hlsl`` sources with :ref:`Visual Studio Generators`. diff --git a/Help/release/dev/autogen-configs.rst b/Help/release/dev/autogen-configs.rst deleted file mode 100644 index 7613c68..0000000 --- a/Help/release/dev/autogen-configs.rst +++ /dev/null @@ -1,8 +0,0 @@ -autogen-configs ---------------- - -* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` with a - multi configuration generator (e.g. :generator:`Xcode`), - included ``*.moc``, ``moc_*.cpp`` and ``ui_*.h`` files are generated in - ``/include_`` instead of - ``/include``. diff --git a/Help/release/dev/autogen-generated-files.rst b/Help/release/dev/autogen-generated-files.rst deleted file mode 100644 index da2fc4e..0000000 --- a/Help/release/dev/autogen-generated-files.rst +++ /dev/null @@ -1,8 +0,0 @@ -autogen-generated-files ------------------------ - -* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`, - source files that are :prop_sf:`GENERATED` will be processed as well. - They were ignored by :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` - in earlier releases. - See policy :policy:`CMP0071`. diff --git a/Help/release/dev/autogen-macro-names.rst b/Help/release/dev/autogen-macro-names.rst deleted file mode 100644 index 6471295..0000000 --- a/Help/release/dev/autogen-macro-names.rst +++ /dev/null @@ -1,14 +0,0 @@ -autogen-macro-names -------------------- - -* When using :prop_tgt:`AUTOMOC`, CMake searches for the strings ``Q_OBJECT``, - ``Q_GADGET`` or ``Q_NAMESPACE`` in a source file to determine if it needs - to be ``moc`` processed. The new variable - :variable:`CMAKE_AUTOMOC_MACRO_NAMES` allows to register additional - strings (macro names) so search for. - -* When using :prop_tgt:`AUTOMOC`, CMake searches for the strings ``Q_OBJECT``, - ``Q_GADGET`` or ``Q_NAMESPACE`` in a source file to determine if it needs - to be ``moc`` processed. The new target property - :prop_tgt:`AUTOMOC_MACRO_NAMES` allows to register additional strings - (macro names) so search for. diff --git a/Help/release/dev/autogen-predefs.rst b/Help/release/dev/autogen-predefs.rst deleted file mode 100644 index c390e2a..0000000 --- a/Help/release/dev/autogen-predefs.rst +++ /dev/null @@ -1,11 +0,0 @@ -autogen-predefs ---------------- - -* When using :prop_tgt:`AUTOMOC`, the new variable - :variable:`CMAKE_AUTOMOC_COMPILER_PREDEFINES` allows to default - enable or disable the generation of the compiler pre definitions file - ``moc_predefs.h``. - -* When using :prop_tgt:`AUTOMOC`, the new boolean target property - :prop_tgt:`AUTOMOC_COMPILER_PREDEFINES` allows to enable or disable the - generation of the compiler pre definitions file ``moc_predefs.h``. diff --git a/Help/release/dev/cmake-command-mode-shasum.rst b/Help/release/dev/cmake-command-mode-shasum.rst deleted file mode 100644 index 681e0c0..0000000 --- a/Help/release/dev/cmake-command-mode-shasum.rst +++ /dev/null @@ -1,5 +0,0 @@ -cmake-command-mode-shasum -------------------------- - -* Added sha1sum, sha224sum, sha256sum, sha384sum and sha512sum - as an equivalent to existing md5sum to cmake command mode. diff --git a/Help/release/dev/cmake_host_system_information-extend.rst b/Help/release/dev/cmake_host_system_information-extend.rst deleted file mode 100644 index d1c882d..0000000 --- a/Help/release/dev/cmake_host_system_information-extend.rst +++ /dev/null @@ -1,6 +0,0 @@ -cmake_host_system_information-extend ------------------------------------- - -* The :command:`cmake_host_system_information` command learned more keys - to get information about the processor capabilities and the host OS - version. diff --git a/Help/release/dev/codeblocks-exclude-external.rst b/Help/release/dev/codeblocks-exclude-external.rst deleted file mode 100644 index 4c758e3..0000000 --- a/Help/release/dev/codeblocks-exclude-external.rst +++ /dev/null @@ -1,6 +0,0 @@ -codeblocks-exclude-external ---------------------------- - -* A :variable:`CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES` variable was added - to tell the :generator:`CodeBlocks` extra generator to exclude files - from outside the project root directory from the generated project files. diff --git a/Help/release/dev/cpack-freebsd-pkg.rst b/Help/release/dev/cpack-freebsd-pkg.rst deleted file mode 100644 index 1732581..0000000 --- a/Help/release/dev/cpack-freebsd-pkg.rst +++ /dev/null @@ -1,5 +0,0 @@ -cpack-freebsd-pkg ------------------ - -* CPack gained a ``FREEBSD`` generator for FreeBSD ``pkg(8)``, configured - by the :module:`CPackFreeBSD` module. diff --git a/Help/release/dev/cpack-rpm-deb-version.rst b/Help/release/dev/cpack-rpm-deb-version.rst deleted file mode 100644 index a64e8bd..0000000 --- a/Help/release/dev/cpack-rpm-deb-version.rst +++ /dev/null @@ -1,14 +0,0 @@ -cpack-rpm-deb-version ---------------------- - -* Modules :module:`CPackRPM` and :module:`CPackDeb` learned to set package epoch - version. - See :variable:`CPACK_RPM_PACKAGE_EPOCH` and - :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables. - -* The :module:`CPackDeb` module learned to set package release version in - `Version` info property. - See :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable. - -* The :module:`CPackDeb` module learned more strict package version checking - that complies with Debian rules. diff --git a/Help/release/dev/cpackifw-options.rst b/Help/release/dev/cpackifw-options.rst deleted file mode 100644 index 7c471f4..0000000 --- a/Help/release/dev/cpackifw-options.rst +++ /dev/null @@ -1,6 +0,0 @@ -cpackifw-options ----------------- - -* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and - :command:`cpack_ifw_configure_component_group` commands gained a new - ``REPLACES`` and ``CHECKABLE`` options. diff --git a/Help/release/dev/cpackifw-package-file-extension.rst b/Help/release/dev/cpackifw-package-file-extension.rst deleted file mode 100644 index e264081..0000000 --- a/Help/release/dev/cpackifw-package-file-extension.rst +++ /dev/null @@ -1,6 +0,0 @@ -cpackifw-package-file-extension -------------------------------- - -* The :module:`CPackIFW` module gained new - :variable:`CPACK_IFW_PACKAGE_FILE_EXTENSION` variable to customize - target binary format. diff --git a/Help/release/dev/cpackifw-repositories-directories.rst b/Help/release/dev/cpackifw-repositories-directories.rst deleted file mode 100644 index cda74b8..0000000 --- a/Help/release/dev/cpackifw-repositories-directories.rst +++ /dev/null @@ -1,8 +0,0 @@ -cpackifw-repositories-directories ---------------------------------- - -* The :module:`CPackIFW` module gained new - :variable:`CPACK_IFW_REPOSITORIES_DIRECTORIES` variable to specify - additional repositories dirs that will be used to resolve and - repack dependent components. This feature available only - since QtIFW 3.1. diff --git a/Help/release/dev/cuda-compiler-launcher.rst b/Help/release/dev/cuda-compiler-launcher.rst deleted file mode 100644 index f217780..0000000 --- a/Help/release/dev/cuda-compiler-launcher.rst +++ /dev/null @@ -1,8 +0,0 @@ -cuda-compiler-launcher ----------------------- - -* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned - to add compiler launcher tools like ccache along with the compiler for the - ``CUDA`` language (``C`` and ``CXX`` were supported previously). See the - :variable:`CMAKE__COMPILER_LAUNCHER` variable and - :prop_tgt:`_COMPILER_LAUNCHER` target property for details. diff --git a/Help/release/dev/deb-on-windows.rst b/Help/release/dev/deb-on-windows.rst deleted file mode 100644 index b307720..0000000 --- a/Help/release/dev/deb-on-windows.rst +++ /dev/null @@ -1,7 +0,0 @@ -deb-on-windows --------------- - -* The CPack ``DEB`` generator, configured by the :module:`CPackDeb` module, - was enabled on Windows. While not fully featured (due to the lack of - external UNIX tools) this will allow building basic cross-platform Debian - packages. diff --git a/Help/release/dev/drop-HP-UX.rst b/Help/release/dev/drop-HP-UX.rst deleted file mode 100644 index 199fa09..0000000 --- a/Help/release/dev/drop-HP-UX.rst +++ /dev/null @@ -1,8 +0,0 @@ -drop-HP-UX ----------- - -* Support for building CMake on HP-UX has been dropped pending better - support for C++11 and a port of libuv. See `CMake Issue 17137`_. - Use CMake 3.9 or lower instead for HP-UX support. - -.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/issues/17137 diff --git a/Help/release/dev/execute_process-pipeline-results.rst b/Help/release/dev/execute_process-pipeline-results.rst deleted file mode 100644 index 9755ef5..0000000 --- a/Help/release/dev/execute_process-pipeline-results.rst +++ /dev/null @@ -1,6 +0,0 @@ -execute_process-pipeline-results --------------------------------- - -* The :command:`execute_process` command gained a ``RESULTS_VARIABLE`` - option to collect a list of results from all children in a pipeline - of processes when multiple ``COMMAND`` arguments are given. diff --git a/Help/release/dev/file-generate-relative-paths.rst b/Help/release/dev/file-generate-relative-paths.rst deleted file mode 100644 index fdeb9e0e..0000000 --- a/Help/release/dev/file-generate-relative-paths.rst +++ /dev/null @@ -1,7 +0,0 @@ -file-generate-relative-paths ----------------------------- - -* The :command:`file(GENERATE)` command now interprets relative paths - given to its ``OUTPUT`` and ``INPUT`` arguments with respect to the - caller's current binary and source directories, respectively. - See policy :policy:`CMP0070`. diff --git a/Help/release/dev/find-patch.rst b/Help/release/dev/find-patch.rst deleted file mode 100644 index d720c81..0000000 --- a/Help/release/dev/find-patch.rst +++ /dev/null @@ -1,5 +0,0 @@ -find-patch ----------- - -* A :module:`FindPatch` module was added to find the ``patch`` - command-line executable. diff --git a/Help/release/dev/findopenmp-components.rst b/Help/release/dev/findopenmp-components.rst deleted file mode 100644 index 243abfa..0000000 --- a/Help/release/dev/findopenmp-components.rst +++ /dev/null @@ -1,5 +0,0 @@ -findopenmp-components ---------------------- - -* The :module:`FindOpenMP` module gained support for - language-specific components. diff --git a/Help/release/dev/flang.rst b/Help/release/dev/flang.rst deleted file mode 100644 index 9849f14..0000000 --- a/Help/release/dev/flang.rst +++ /dev/null @@ -1,6 +0,0 @@ -flang ------ - -* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``. - -.. _`flang`: https://github.com/flang-compiler/flang diff --git a/Help/release/dev/freebsd-compiler-name.rst b/Help/release/dev/freebsd-compiler-name.rst deleted file mode 100644 index ece7596..0000000 --- a/Help/release/dev/freebsd-compiler-name.rst +++ /dev/null @@ -1,4 +0,0 @@ -freebsd-compiler-name ---------------------- - -* On FreeBSD the C++ compiler named ``c++`` is now the preferred default. diff --git a/Help/release/dev/get_filename_component-fix-program-split.rst b/Help/release/dev/get_filename_component-fix-program-split.rst deleted file mode 100644 index 55c8719..0000000 --- a/Help/release/dev/get_filename_component-fix-program-split.rst +++ /dev/null @@ -1,9 +0,0 @@ -get_filename_component-fix-program-split ----------------------------------------- - -* The :command:`get_filename_component` ``PROGRAM`` mode semantics - have been revised to not tolerate unquoted spaces in the path - to the program while also accepting arguments. While technically - incompatible with the old behavior, it is expected that behavior - under typical use cases with properly-quoted command-lines has - not changed. diff --git a/Help/release/dev/graphviz-line-styles.rst b/Help/release/dev/graphviz-line-styles.rst deleted file mode 100644 index d24f236..0000000 --- a/Help/release/dev/graphviz-line-styles.rst +++ /dev/null @@ -1,6 +0,0 @@ -graphviz-line-styles -------------------------- - -* The graphviz output now distinguishes between the different dependency types - ``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` and represents them in the output graph - as solid, dashed and dotted edges. diff --git a/Help/release/dev/iar.rst b/Help/release/dev/iar.rst deleted file mode 100644 index c6678eb..0000000 --- a/Help/release/dev/iar.rst +++ /dev/null @@ -1,4 +0,0 @@ -iar ---- - -* Support for the IAR ARM Compiler was improved. diff --git a/Help/release/dev/include-guard.rst b/Help/release/dev/include-guard.rst deleted file mode 100644 index 9b0c64c..0000000 --- a/Help/release/dev/include-guard.rst +++ /dev/null @@ -1,8 +0,0 @@ -include_guard -------------- - -* The :command:`include_guard` command was introduced to allow guarding - CMake scripts from being included more than once. The command supports - ``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard - scope. If no options given, include guard is similar to basic variable-based - check. diff --git a/Help/release/dev/indented_cmakedefine.rst b/Help/release/dev/indented_cmakedefine.rst deleted file mode 100644 index fd28b25..0000000 --- a/Help/release/dev/indented_cmakedefine.rst +++ /dev/null @@ -1,7 +0,0 @@ -indented_cmakedefine --------------------- - -* The :command:`configure_file` command learned to support indented - ``# cmakedefine`` and ``# cmakedefine01``. Spaces and/or tabs between - the ``#`` character and the ``cmakedefine``/``cmakedefine01`` words - are now understood and preserved in the output. diff --git a/Help/release/dev/irsl-intel.rst b/Help/release/dev/irsl-intel.rst deleted file mode 100644 index 330fcc6..0000000 --- a/Help/release/dev/irsl-intel.rst +++ /dev/null @@ -1,5 +0,0 @@ -irsl-intel ----------- - -* The :module:`InstallRequiredSystemLibraries` gained support for installing - Intel compiler runtimes. diff --git a/Help/release/dev/labels_for_subprojects.rst b/Help/release/dev/labels_for_subprojects.rst deleted file mode 100644 index 7344502..0000000 --- a/Help/release/dev/labels_for_subprojects.rst +++ /dev/null @@ -1,14 +0,0 @@ -labels_for_subprojects ----------------------- - -* A :variable:`CTEST_LABELS_FOR_SUBPROJECTS` CTest module variable and CTest - script variable was added to specify a list of labels that should be treated - as subprojects by CDash. To use this value in both the CTest module and the - ctest command line `Dashboard Client` mode (e.g. ctest -S) set it in the - CTestConfig.cmake config file. - -* A :prop_dir:`LABELS` directory property was added to specify labels - for all targets and tests in a directory. - -* A :variable:`CMAKE_DIRECTORY_LABELS` variable was added to specify - labels for all tests in a directory. diff --git a/Help/release/dev/midipix-support.rst b/Help/release/dev/midipix-support.rst deleted file mode 100644 index adc971e..0000000 --- a/Help/release/dev/midipix-support.rst +++ /dev/null @@ -1,4 +0,0 @@ -midipix-support ---------------- - -* A new minimal platform file for ``Midipix`` was added. diff --git a/Help/release/dev/msvc-arm64.rst b/Help/release/dev/msvc-arm64.rst deleted file mode 100644 index c8fadd4..0000000 --- a/Help/release/dev/msvc-arm64.rst +++ /dev/null @@ -1,5 +0,0 @@ -msvc-arm64 ----------- - -* Support for the MSVC ARM64 architecture was added. - Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. diff --git a/Help/release/dev/protobuf-desc.rst b/Help/release/dev/protobuf-desc.rst deleted file mode 100644 index b8819c4..0000000 --- a/Help/release/dev/protobuf-desc.rst +++ /dev/null @@ -1,5 +0,0 @@ -protobuf-desc -------------- - -* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp` command - gained a ``DESCRIPTORS`` option to generate descriptor files. diff --git a/Help/release/dev/require-c++11.rst b/Help/release/dev/require-c++11.rst deleted file mode 100644 index 7b849e7..0000000 --- a/Help/release/dev/require-c++11.rst +++ /dev/null @@ -1,5 +0,0 @@ -require-c++11 -------------- - -* Support for building CMake itself with C++98 compilers was dropped. - CMake is now implemented using C++11. diff --git a/Help/release/dev/string_prepend.rst b/Help/release/dev/string_prepend.rst deleted file mode 100644 index f896e91..0000000 --- a/Help/release/dev/string_prepend.rst +++ /dev/null @@ -1,4 +0,0 @@ -string_prepend --------------- - -* The :command:`string` command learned a new ``PREPEND`` subcommand. diff --git a/Help/release/dev/test_include_files.rst b/Help/release/dev/test_include_files.rst deleted file mode 100644 index b75dd0d..0000000 --- a/Help/release/dev/test_include_files.rst +++ /dev/null @@ -1,7 +0,0 @@ -test_include_files ------------------- - -* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to - list any number of files to be included when running tests with - :manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE` - property. diff --git a/Help/release/dev/timestamp.rst b/Help/release/dev/timestamp.rst deleted file mode 100644 index e40009e..0000000 --- a/Help/release/dev/timestamp.rst +++ /dev/null @@ -1,5 +0,0 @@ -timestamp ---------- - -* The :command:`string(TIMESTAMP)` command now supports ``%A`` - for full weekday name and ``%B`` for full month name. diff --git a/Help/release/index.rst b/Help/release/index.rst index 6c68e65..6472b51 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -15,6 +15,7 @@ Releases .. toctree:: :maxdepth: 1 + 3.10 <3.10> 3.9 <3.9> 3.8 <3.8> 3.7 <3.7> -- cgit v0.12 From 0565192aff4d621c07efac63992d1b795d26435e Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 5 Oct 2017 08:06:51 -0400 Subject: Help: Organize and revise 3.10 release notes Add section headers similar to the 3.9 release notes and move each individual bullet into an appropriate section. Revise a few bullets. --- Help/release/3.10.rst | 297 ++++++++++++++++++++++++++++---------------------- 1 file changed, 168 insertions(+), 129 deletions(-) diff --git a/Help/release/3.10.rst b/Help/release/3.10.rst index 7ddf719..2e32401 100644 --- a/Help/release/3.10.rst +++ b/Help/release/3.10.rst @@ -7,15 +7,146 @@ CMake 3.10 Release Notes Changes made since CMake 3.9 include the following. +New Features +============ + +Platforms +--------- + +* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``. + +* A new minimal platform file for ``Midipix`` was added. + +* Support for the MSVC ARM64 architecture was added. + Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. + +* Support for the IAR ARM Compiler was improved. + +.. _`flang`: https://github.com/flang-compiler/flang + +Generators +---------- + +* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned + to add compiler launcher tools like ccache along with the compiler for the + ``CUDA`` language (``C`` and ``CXX`` were supported previously). See the + :variable:`CMAKE__COMPILER_LAUNCHER` variable and + :prop_tgt:`_COMPILER_LAUNCHER` target property for details. + +* The :generator:`CodeBlocks` extra generator learned to optionally exclude + files from outside the project root directory from the generated project. + See the :variable:`CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES` variable. + +Commands +-------- + +* The :command:`cmake_host_system_information` command learned more keys + to get information about the processor capabilities and the host OS + version. + +* The :command:`configure_file` command learned to support indented + ``# cmakedefine`` and ``# cmakedefine01``. Spaces and/or tabs between + the ``#`` character and the ``cmakedefine``/``cmakedefine01`` words + are now understood and preserved in the output. + +* The :command:`execute_process` command gained a ``RESULTS_VARIABLE`` + option to collect a list of results from all children in a pipeline + of processes when multiple ``COMMAND`` arguments are given. + +* The :command:`include_guard` command was introduced to allow guarding + CMake scripts from being included more than once. The command supports + ``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard + scope. If no options given, include guard is similar to basic variable-based + check. + +* The :command:`string` command learned a new ``PREPEND`` subcommand. + +* The :command:`string(TIMESTAMP)` command now supports ``%A`` + for full weekday name and ``%B`` for full month name. + +Variables +--------- + +* A :variable:`CMAKE_DIRECTORY_LABELS` variable was added to specify + labels for all tests in a directory. + +Properties +---------- + * A :prop_tgt:`_CPPCHECK` target property and supporting :variable:`CMAKE__CPPCHECK` variable were introduced to tell the :ref:`Makefile Generators` and the :generator:`Ninja` generator to run ``cppcheck`` with the compiler for ``C`` and ``CXX`` languages. +* A :prop_dir:`LABELS` directory property was added to specify labels + for all targets and tests in a directory. + +* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to + list any number of files to be included when running tests with + :manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE` + property. + +* The :prop_tgt:`VS_DOTNET_REFERENCEPROP__TAG_` + target property was added to support custom XML tags for reference + assemblies in C# targets. + * Source file properties :prop_sf:`VS_SHADER_OUTPUT_HEADER_FILE` and :prop_sf:`VS_SHADER_VARIABLE_NAME` have been added to specify more details of ``.hlsl`` sources with :ref:`Visual Studio Generators`. +Modules +------- + +* The :module:`FindCurses` module gained a ``CURSES_NEED_WIDE`` option + to request the wide-character variant. + +* The :module:`FindEXPAT` module now provides imported targets. + +* The :module:`FindFreetype` module now provides imported targets. + +* :module:`FindMPI` gained a number of new features, including: + + * Language-specific components have been added to the module. + * Many more MPI environments are now supported. + * The environmental support for Fortran has been improved. + * A user now has fine-grained control over the MPI selection process, + including passing custom parameters to the MPI compiler. + * The version of the implemented MPI standard is now being exposed. + * MPI-2 C++ bindings can now be detected and also suppressed if so desired. + * The available Fortran bindings are now being detected and verified. + * Various MPI-3 information can be requested, including the library version + and Fortran capabilities of the individual bindings. + * Statically linked MPI implementations are supported. + +* A :module:`FindOpenACC` module was added to detect compiler support + for OpenACC. Currently only supports PGI, GNU and Cray compilers. + +* The :module:`FindOpenGL` module gained support for GLVND on Linux. + +* The :module:`FindOpenMP` module gained support for + language-specific components. + +* A :module:`FindPatch` module was added to find the ``patch`` + command-line executable. + +* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp` command + gained a ``DESCRIPTORS`` option to generate descriptor files. + +* The :module:`GoogleTest` module gained a new command + :command:`gtest_discover_tests` implementing dynamic (build-time) test + discovery. Unlike the source parsing approach, dynamic discovery executes + the test (in 'list available tests' mode) at build time to discover tests. + This is robust against unusual ways of labeling tests, provides much better + support for advanced features such as parameterized tests, and does not + require re-running CMake to discover added or removed tests within a test + executable. + +* The :module:`InstallRequiredSystemLibraries` module gained support + for installing Intel compiler runtimes. + +Autogen +------- + * When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` with a multi configuration generator (e.g. :generator:`Xcode`), included ``*.moc``, ``moc_*.cpp`` and ``ui_*.h`` files are generated in @@ -49,20 +180,33 @@ Changes made since CMake 3.9 include the following. :prop_tgt:`AUTOMOC_COMPILER_PREDEFINES` allows to enable or disable the generation of the compiler pre definitions file ``moc_predefs.h``. -* Added sha1sum, sha224sum, sha256sum, sha384sum and sha512sum - as an equivalent to existing md5sum to cmake command mode. +CTest +----- -* The :command:`cmake_host_system_information` command learned more keys - to get information about the processor capabilities and the host OS - version. +* A :variable:`CTEST_LABELS_FOR_SUBPROJECTS` CTest module variable and CTest + script variable were added to specify a list of labels that should be + treated as subprojects by CDash. To use this value in both the CTest module + and the ctest command line :ref:`Dashboard Client` mode (e.g. ``ctest -S``) + set it in the ``CTestConfig.cmake`` config file. -* A :variable:`CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES` variable was added - to tell the :generator:`CodeBlocks` extra generator to exclude files - from outside the project root directory from the generated project files. +CPack +----- * CPack gained a ``FREEBSD`` generator for FreeBSD ``pkg(8)``, configured by the :module:`CPackFreeBSD` module. +* The CPack ``DEB`` generator, configured by the :module:`CPackDeb` module, + was enabled on Windows. While not fully featured (due to the lack of + external UNIX tools) this will allow building basic cross-platform Debian + packages. + +* The :module:`CPackDeb` module learned to set package release version in + ``Version`` info property. + See the :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable. + +* The :module:`CPackDeb` module learned more strict package version checking + that complies with Debian rules. + * The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and :command:`cpack_ifw_configure_component_group` commands gained a new ``REPLACES`` and ``CHECKABLE`` options. @@ -82,23 +226,21 @@ Changes made since CMake 3.9 include the following. See :variable:`CPACK_RPM_PACKAGE_EPOCH` and :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables. -* The :module:`CPackDeb` module learned to set package release version in - `Version` info property. - See :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable. +Other +----- -* The :module:`CPackDeb` module learned more strict package version checking - that complies with Debian rules. +* The :manual:`cmake(1)` ``-E`` mode gained support for ``sha1sum``, + ``sha224sum``, ``sha256sum``, ``sha384sum``, and ``sha512sum``. -* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned - to add compiler launcher tools like ccache along with the compiler for the - ``CUDA`` language (``C`` and ``CXX`` were supported previously). See the - :variable:`CMAKE__COMPILER_LAUNCHER` variable and - :prop_tgt:`_COMPILER_LAUNCHER` target property for details. +* The graphviz output now distinguishes among the different dependency types + ``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` and represents them in the output + graph as solid, dashed and dotted edges. -* The CPack ``DEB`` generator, configured by the :module:`CPackDeb` module, - was enabled on Windows. While not fully featured (due to the lack of - external UNIX tools) this will allow building basic cross-platform Debian - packages. +Deprecated and Removed Features +=============================== + +* Support for building CMake itself with C++98 compilers was dropped. + CMake is now implemented using C++11. * Support for building CMake on HP-UX has been dropped pending better support for C++11 and a port of libuv. See `CMake Issue 17137`_. @@ -106,122 +248,19 @@ Changes made since CMake 3.9 include the following. .. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/issues/17137 -* The :command:`execute_process` command gained a ``RESULTS_VARIABLE`` - option to collect a list of results from all children in a pipeline - of processes when multiple ``COMMAND`` arguments are given. +Other Changes +============= + +* On FreeBSD the C++ compiler named ``c++`` is now the preferred default. * The :command:`file(GENERATE)` command now interprets relative paths given to its ``OUTPUT`` and ``INPUT`` arguments with respect to the caller's current binary and source directories, respectively. See policy :policy:`CMP0070`. -* The :module:`FindCurses` module gained a ``CURSES_NEED_WIDE`` option - to request the wide-character variant. - -* The :module:`FindEXPAT` module now provides imported targets. - -* The :module:`FindFreetype` module now provides imported targets. - -* :module:`FindMPI` gained a number of new features, including: - - * Language-specific components have been added to the module. - * Many more MPI environments are now supported. - * The environmental support for Fortran has been improved. - * A user now has fine-grained control over the MPI selection process, - including passing custom parameters to the MPI compiler. - * The version of the implemented MPI standard is now being exposed. - * MPI-2 C++ bindings can now be detected and also suppressed if so desired. - * The available Fortran bindings are now being detected and verified. - * Various MPI-3 information can be requested, including the library version - and Fortran capabilities of the individual bindings. - * Statically linked MPI implementations are supported. - -* A :module:`FindOpenACC` module was added to detect compiler support - for OpenACC. Currently only supports PGI, GNU and Cray compilers. - -* The :module:`FindOpenGL` module gained support for GLVND on Linux. - -* The :module:`FindOpenMP` module gained support for - language-specific components. - -* A :module:`FindPatch` module was added to find the ``patch`` - command-line executable. - -* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``. - -.. _`flang`: https://github.com/flang-compiler/flang - -* On FreeBSD the C++ compiler named ``c++`` is now the preferred default. - * The :command:`get_filename_component` ``PROGRAM`` mode semantics have been revised to not tolerate unquoted spaces in the path to the program while also accepting arguments. While technically incompatible with the old behavior, it is expected that behavior under typical use cases with properly-quoted command-lines has not changed. - -* The :module:`GoogleTest` module gained a new command - :command:`gtest_discover_tests` implementing dynamic (build-time) test - discovery. Unlike the source parsing approach, dynamic discovery executes - the test (in 'list available tests' mode) at build time to discover tests. - This is robust against unusual ways of labeling tests, provides much better - support for advanced features such as parameterized tests, and does not - require re-running CMake to discover added or removed tests within a test - executable. - -* The graphviz output now distinguishes between the different dependency types - ``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` and represents them in the output graph - as solid, dashed and dotted edges. - -* Support for the IAR ARM Compiler was improved. - -* The :command:`include_guard` command was introduced to allow guarding - CMake scripts from being included more than once. The command supports - ``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard - scope. If no options given, include guard is similar to basic variable-based - check. - -* The :command:`configure_file` command learned to support indented - ``# cmakedefine`` and ``# cmakedefine01``. Spaces and/or tabs between - the ``#`` character and the ``cmakedefine``/``cmakedefine01`` words - are now understood and preserved in the output. - -* The :module:`InstallRequiredSystemLibraries` gained support for installing - Intel compiler runtimes. - -* A :variable:`CTEST_LABELS_FOR_SUBPROJECTS` CTest module variable and CTest - script variable was added to specify a list of labels that should be treated - as subprojects by CDash. To use this value in both the CTest module and the - ctest command line `Dashboard Client` mode (e.g. ctest -S) set it in the - CTestConfig.cmake config file. - -* A :prop_dir:`LABELS` directory property was added to specify labels - for all targets and tests in a directory. - -* A :variable:`CMAKE_DIRECTORY_LABELS` variable was added to specify - labels for all tests in a directory. - -* A new minimal platform file for ``Midipix`` was added. - -* Support for the MSVC ARM64 architecture was added. - Visual Studio 2017 Update 4 and above offer an ARM64 toolchain. - -* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp` command - gained a ``DESCRIPTORS`` option to generate descriptor files. - -* Support for building CMake itself with C++98 compilers was dropped. - CMake is now implemented using C++11. - -* The :command:`string` command learned a new ``PREPEND`` subcommand. - -* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to - list any number of files to be included when running tests with - :manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE` - property. - -* The :command:`string(TIMESTAMP)` command now supports ``%A`` - for full weekday name and ``%B`` for full month name. - -* The :prop_tgt:`VS_DOTNET_REFERENCEPROP__TAG_` - target property was added to support custom XML tags for reference - assemblies in C# targets. -- cgit v0.12