diff options
-rw-r--r-- | Help/release/3.13.rst | 284 |
1 files changed, 161 insertions, 123 deletions
diff --git a/Help/release/3.13.rst b/Help/release/3.13.rst index b8aaf2a..b08f21d 100644 --- a/Help/release/3.13.rst +++ b/Help/release/3.13.rst @@ -7,59 +7,139 @@ CMake 3.13 Release Notes Changes made since CMake 3.12 include the following. -* The :module:`BundleUtilities` module may no longer be included at configure - time. This was always a bug anyway. See policy :policy:`CMP0080`. +New Features +============ -* The :ref:`Makefile Generators` learned to remove custom command and - custom target byproducts during ``make clean``. +Generators +---------- -* The new variable :variable:`CMAKE_AUTOGEN_VERBOSE` allows - to increase the verbosity of :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC` and - :prop_tgt:`AUTORCC` from within CMakeLists.txt. +* The :ref:`Visual Studio Generators` for VS 2010 and above learned to + support the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property + and supporting :module:`CheckIPOSupported` module. -* The :manual:`cmake <cmake(1)>` command gained the ``-S <source_dir>`` - command line option to specify the location of the source directory. - This option can be used independently of ``-B``. +* The :generator:`Xcode` generator learned to configure more Xcode Scheme + fields. See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable. -* The :manual:`cmake <cmake(1)>` command gained the ``-B <build_dir>`` - command line option to specify the location of the build directory. - This option can be used independently of ``-S``. +* The :generator:`Green Hills MULTI` generator has been udpated: -* The :cpack_gen:`CPack Deb Generator` learned to split debug symbols into - a corresponding .ddeb package when ``CPACK_DEBIAN_DEBUGINFO_PACKAGE`` is - set. + - Added support for architecture selection through + :variable:`CMAKE_GENERATOR_PLATFORM`: + e.g. ``arm``, ``ppc``, and ``86``. -* The :cpack_gen:`CPack Deb Generator` learned to honor the ``SOURCE_DATE_EPOCH`` - environment variable when packaging files. This is useful for generating - reproducible packages. + - Added support for toolset selection through + :variable:`CMAKE_GENERATOR_TOOLSET`, + e.g. ``comp_201205``, ``comp_201510``, ``comp_201722_beta``. -* CPack gained a new :cpack_gen:`CPack External Generator` which is used to - export the CPack metadata in a format that other software can understand. The - intention of this generator is to allow external packaging software to take - advantage of CPack's features when it may not be possible to use CPack for - the entire packaging process. + - Added support for platform selection through ``GHS_TARGET_PLATFORM``, + e.g. ``integrity``, ``linux``, ``standalone``, etc. + + - No longer checks that ``arm`` based compilers are installed but ensures + that the correct ``gbuild.exe`` exists. + + - No longer hard-codes ARM files, BSP, toolset, or OS locations. -* The CPack generators have been moved into their own separate section in the - documentation, rather than having the documentation in their internal - implementation modules. -* These internal implementation modules are also no longer available to scripts - that may have been incorrectly including them, because they should never have - been available in the first place. +Command-Line +------------ + +* The :manual:`cmake(1)` command gained the ``-S <source_dir>`` + command line option to specify the location of the source directory. + This option can be used independently of ``-B``. + +* The :manual:`cmake(1)` command gained the ``-B <build_dir>`` + command line option to specify the location of the build directory. + This option can be used independently of ``-S``. * The :manual:`cmake(1)` ``-E create_symlink`` command can now be used on Windows. -* :manual:`ctest(1)` gained a ``--progress`` option to enable a live - test progress summary when output goes to a terminal. +Commands +-------- * The :command:`add_custom_command` and :command:`add_custom_target` commands learned to support generator expressions in ``WORKING_DIRECTORY`` options. -* An explicit deprecation diagnostic was added for policies ``CMP0055`` - through ``CMP0063`` (``CMP0054`` 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 :command:`add_link_options` command was created to add link + options in the current directory. + +* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands + learned to support generator expressions. + +* The :command:`install(TARGETS)` command learned to install targets + created outside the current directory. + +* The :command:`link_directories` command gained options to control + insertion position. + +* The :command:`list(SORT)` command gained options to control the + comparison operation used to order the entries. + +* The :command:`math` command gained options for hexadecimal. + +* The :command:`target_link_directories` command was created to + specify link directories for targets and their dependents. + +* The :command:`target_link_options` command was created to + specify link options for targets and their dependents. + +* The :command:`target_link_libraries` command may now be called + to modify targets created outside the current directory. + See policy :policy:`CMP0079`. + +Variables +--------- + +* A :variable:`CMAKE_AUTOGEN_VERBOSE` variable was added to optionally + increase the verbosity of :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC` + and :prop_tgt:`AUTORCC` from within CMake project code. + +* A :variable:`CMAKE_VS_GLOBALS` variable was added to initialize + :prop_tgt:`VS_GLOBAL_<variable>` target properties on targets as + they are created. + +Properties +---------- + +* The :prop_tgt:`DEPLOYMENT_ADDITIONAL_FILES` target property was + added to tell the :generator:`Visual Studio 9 2008` generator + to specify additional files for deployment to WinCE devices + for remote debugging. + +* The :prop_tgt:`INTERFACE_LINK_DEPENDS` target property was created + to specify transitive link dependencies on files. + +* The :prop_tgt:`LINK_DEPENDS` target property learned to support + :manual:`generator expressions <cmake-generator-expressions(7)>`. + +* :prop_tgt:`LINK_DIRECTORIES` and :prop_tgt:`INTERFACE_LINK_DIRECTORIES` + target properties were added to collect link directories for a target + and its dependents. Use the :command:`target_link_directories` command + to set them. + +* :prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target + properties were added to collect link options for a target and its + dependents. Use the :command:`target_link_options` command to set them. + +* A :prop_dir:`LINK_OPTIONS` directory property was added to collect + link options for targets created under the current directory. + Use the :command:`add_link_options` command to set it. + +* A :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property was created + to specify archiver options to use when creating static libraries. + +* A :prop_tgt:`VS_DEBUGGER_COMMAND_ARGUMENTS` target property was created to + set the debugging command line arguments with + :ref:`Visual Studio Generators` for VS 2010 and above. + +* A :prop_tgt:`VS_DEBUGGER_ENVIRONMENT` target property was created to + set the debugging environment with + :ref:`Visual Studio Generators` for VS 2010 and above. + +* The :prop_tgt:`VS_DEBUGGER_COMMAND` and + :prop_tgt:`VS_DEBUGGER_WORKING_DIRECTORY` target properties + now support generator expressions. + +Modules +------- * The :module:`FindCURL` module learned to find debug and release variants separately. @@ -71,12 +151,12 @@ Changes made since CMake 3.12 include the following. * The :module:`FindMatlab` module now explicitly exports mexFunction in Visual Studio. -* The :module:`FindMatlab` module gained the ability to discover Matlab R2018a - and R2018b. - * The :module:`FindMatlab` module gained a new ``MCC_COMPILER`` component to request finding the Matlab Compiler add-on. +* The :module:`FindPkgConfig` module gained an option to create imported + targets in global scope. + * Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` gain capability to control order of resource lookup on macOS (Framework) and Windows (Registry). @@ -85,73 +165,49 @@ Changes made since CMake 3.12 include the following. gained an ``IGNORE_SVN_FAILURE`` option to suppress failures, e.g. when the source tree is not under Subversion control. -* The :generator:`Green Hills MULTI` generator is updated: - - - Added support for architecture selection through - :variable:`CMAKE_GENERATOR_PLATFORM`: - e.g. ``arm``, ``ppc``, and ``86``. - - - Added support for toolset selection through - :variable:`CMAKE_GENERATOR_TOOLSET`, - e.g. ``comp_201205``, ``comp_201510``, ``comp_201722_beta``. - - - Added support for platform selection through ``GHS_TARGET_PLATFORM``, - e.g. ``integrity``, ``linux``, ``standalone``, etc. - - - No longer checks that ``arm`` based compilers are installed but ensures - that the correct ``gbuild.exe`` exists. - - - No longer hard-codes ARM files, BSP, toolset, or OS locations. - -* The :command:`install(CODE)` and :command:`install(SCRIPT)` commands - learned to support generator expressions. - -* Binary targets gained new :prop_tgt:`INTERFACE_LINK_DEPENDS` property. +* The :module:`UseSWIG` module learned to manage target property + :prop_tgt:`INCLUDE_DIRECTORIES` for ``SWIG`` compilation. -* The :prop_tgt:`LINK_DEPENDS` target property learned to support - :manual:`generator expressions <cmake-generator-expressions(7)>`. +CTest +----- -* :command:`link_directories` command gains capability to control directories - insertion position. +* :manual:`ctest(1)` gained a ``--progress`` option to enable a live + test progress summary when output goes to a terminal. -* The :prop_tgt:`LINK_DIRECTORIES` target property expects absolute paths. - See policy :policy:`CMP0081`. +CPack +----- -* CMake gained new capabilities to manage link directories: +* The :cpack_gen:`CPack Deb Generator` learned to split debug symbols into + a corresponding .ddeb package when ``CPACK_DEBIAN_DEBUGINFO_PACKAGE`` is + set. - * :prop_tgt:`LINK_DIRECTORIES` and :prop_tgt:`INTERFACE_LINK_DIRECTORIES` - target properties. - * :command:`target_link_directories` command to add link directories to - targets. +* The :cpack_gen:`CPack Deb Generator` learned to honor the ``SOURCE_DATE_EPOCH`` + environment variable when packaging files. This is useful for generating + reproducible packages. -* CMake gained new capabilities to manage link step: +* CPack gained a new :cpack_gen:`CPack External Generator` which is used to + export the CPack metadata in a format that other software can understand. The + intention of this generator is to allow external packaging software to take + advantage of CPack's features when it may not be possible to use CPack for + the entire packaging process. - * :prop_dir:`LINK_OPTIONS` directory property. - * :prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target - properties. - * :command:`add_link_options` command to add link options in the current - directory. - * :command:`target_link_options` command to add link options to targets. +Deprecated and Removed Features +=============================== -* The :command:`list(SORT)` command gained options to control the - comparison operation used to order the entries. +* An explicit deprecation diagnostic was added for policies ``CMP0055`` + through ``CMP0063`` (``CMP0054`` 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 :command:`math` command gained options for hexadecimal. +Other Changes +============= * The :command:`option` command now honors existing normal variables instead of replacing them with a cache entry. See policy :policy:`CMP0077`. -* The :command:`target_link_libraries` command may now be called - to modify targets created outside the current directory. - See policy :policy:`CMP0079`. - -* Module ``FindPkgConfig`` gains capability to create imported targets in - global scope. - -* static library targets gained new :prop_tgt:`STATIC_LIBRARY_OPTIONS` property. - -* The :command:`install(TARGETS)` command may now be used - to install targets created outside the current directory. +* The :ref:`Makefile Generators` learned to remove custom command and + custom target byproducts during ``make clean``. * The :command:`target_sources` command now interprets relative source file paths as relative to the current source directory. This simplifies @@ -159,36 +215,18 @@ Changes made since CMake 3.12 include the following. :policy:`CMP0076` policy was added to provide backward compatibility with the old behavior where required. +* The :module:`BundleUtilities` module may no longer be included at configure + time. This was always a bug anyway. See policy :policy:`CMP0080`. + * The :module:`UseSWIG` module has changed strategy for target naming. See policy :policy:`CMP0078`. -* Module ``UseSWIG`` gains capability to manage target property - :prop_tgt:`INCLUDE_DIRECTORIES` for ``SWIG`` compilation. - -* A :prop_tgt:`VS_DEBUGGER_COMMAND_ARGUMENTS` target property was created to - set the debugging command line arguments with - :ref:`Visual Studio Generators` for VS 2010 and above. -* A :prop_tgt:`VS_DEBUGGER_ENVIRONMENT` target property was created to - set the debugging environment with - :ref:`Visual Studio Generators` for VS 2010 and above. -* :prop_tgt:`VS_DEBUGGER_COMMAND` - :prop_tgt:`VS_DEBUGGER_COMMAND_ARGUMENTS` - :prop_tgt:`VS_DEBUGGER_ENVIRONMENT` - :prop_tgt:`VS_DEBUGGER_WORKING_DIRECTORY` - target properties can use generator expressions. - -* The :prop_tgt:`DEPLOYMENT_ADDITIONAL_FILES` target property was - added to tell the :generator:`Visual Studio 9 2008` generator - to specify additional files for deployment to WinCE devices - for remote debugging. - -* A :variable:`CMAKE_VS_GLOBALS` variable was added to initialize - :prop_tgt:`VS_GLOBAL_<variable>` target properties on targets as - they are created. - -* The :ref:`Visual Studio Generators` for VS 2010 and above learned to - support the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property - and supporting :module:`CheckIPOSupported` module. +* The :prop_tgt:`LINK_DIRECTORIES` target property now expects absolute paths. + See policy :policy:`CMP0081`. -* The :generator:`Xcode` generator learned to configure more Xcode Scheme - fields. See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable. +* The CPack generators have been moved into their own separate section + in the documentation, rather than having the documentation in their + internal implementation modules. + These internal implementation modules are also no longer available + to scripts that may have been incorrectly including them, because + they should never have been available in the first place. |