diff options
Diffstat (limited to 'share/cmake-3.17/Help/release/3.10.rst')
-rw-r--r-- | share/cmake-3.17/Help/release/3.10.rst | 282 |
1 files changed, 0 insertions, 282 deletions
diff --git a/share/cmake-3.17/Help/release/3.10.rst b/share/cmake-3.17/Help/release/3.10.rst deleted file mode 100644 index 03eda36..0000000 --- a/share/cmake-3.17/Help/release/3.10.rst +++ /dev/null @@ -1,282 +0,0 @@ -CMake 3.10 Release Notes -************************ - -.. only:: html - - .. contents:: - -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_<LANG>_COMPILER_LAUNCHER` variable and - :prop_tgt:`<LANG>_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:`<LANG>_CPPCHECK` target property and supporting - :variable:`CMAKE_<LANG>_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_<refname>_TAG_<tagname>` - 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. Note that a breaking change was made in CMake 3.10.3 to address - an ambiguity of the ``TIMEOUT`` keyword (see :ref:`Release Notes 3.10.3`). - -* 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 - ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>`` instead of - ``<AUTOGEN_BUILD_DIR>/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:`CMAKE_AUTOMOC_MACRO_NAMES` - variable and :prop_tgt:`AUTOMOC_MACRO_NAMES` target property may be set - to register additional strings (macro names) to search for. - -* When using :prop_tgt:`AUTOMOC`, the new - :variable:`CMAKE_AUTOMOC_COMPILER_PREDEFINES` variable and - :prop_tgt:`AUTOMOC_COMPILER_PREDEFINES` target property specify whether - to enable or disable the generation of the compiler pre definitions file - ``moc_predefs.h``. - -CTest ------ - -* 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. - -CPack ------ - -* A :cpack_gen:`CPack FreeBSD Generator` was added for FreeBSD ``pkg(8)``. - -* The :cpack_gen:`CPack DEB Generator` 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 :cpack_gen:`CPack DEB Generator` learned to set package release - version in ``Version`` info property. - See the :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable. - -* The :cpack_gen:`CPack DEB Generator` 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. - -* The :cpack_gen:`CPack IFW Generator` gained new - :variable:`CPACK_IFW_PACKAGE_FILE_EXTENSION` variable to customize - target binary format. - -* The :cpack_gen:`CPack IFW Generator` 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 is only available when - using QtIFW 3.1 or later. - -* The :cpack_gen:`CPack RPM Generator` and :cpack_gen:`CPack DEB Generator` - learned to set the package epoch version. - See :variable:`CPACK_RPM_PACKAGE_EPOCH` and - :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables. - -Other ------ - -* The :manual:`cmake(1)` ``-E`` mode gained support for ``sha1sum``, - ``sha224sum``, ``sha256sum``, ``sha384sum``, and ``sha512sum``. - -* 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. - -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`_. - Use CMake 3.9 or lower instead for HP-UX support. - -.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/issues/17137 - -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 :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. - -Updates -======= - -Changes made since CMake 3.10.0 include the following. - -3.10.1 ------- - -* The :manual:`cmake-server(7)` ``codemodel`` response ``crossReferences`` - field added by 3.10.0 has been dropped due to excessive memory usage. - Another approach will be needed to provide backtrace information. - -.. _`Release Notes 3.10.3`: - -3.10.3 ------- - -* CMake 3.10.1 added a ``TIMEOUT`` option to :command:`gtest_discover_tests` - from the :module:`GoogleTest` module. That keyword clashed with the - ``TIMEOUT`` test property, which is one of the common properties that - would be set with the command's ``PROPERTIES`` keyword, usually leading - to legal but unintended behavior. The keyword was changed to - ``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this problem. The - ambiguous behavior of the :command:`gtest_discover_tests` command's - ``TIMEOUT`` keyword in 3.10.1 and 3.10.2 has not been preserved. |