3.13.rst 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. CMake 3.13 Release Notes
  2. ************************
  3. .. only:: html
  4. .. contents::
  5. Changes made since CMake 3.12 include the following.
  6. * The :module:`BundleUtilities` module may no longer be included at configure
  7. time. This was always a bug anyway. See policy :policy:`CMP0080`.
  8. * The :ref:`Makefile Generators` learned to remove custom command and
  9. custom target byproducts during ``make clean``.
  10. * The new variable :variable:`CMAKE_AUTOGEN_VERBOSE` allows
  11. to increase the verbosity of :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTOUIC` and
  12. :prop_tgt:`AUTORCC` from within CMakeLists.txt.
  13. * The :manual:`cmake <cmake(1)>` command gained the ``-S <source_dir>``
  14. command line option to specify the location of the source directory.
  15. This option can be used independently of ``-B``.
  16. * The :manual:`cmake <cmake(1)>` command gained the ``-B <build_dir>``
  17. command line option to specify the location of the build directory.
  18. This option can be used independently of ``-S``.
  19. * The :cpack_gen:`CPack Deb Generator` learned to split debug symbols into
  20. a corresponding .ddeb package when ``CPACK_DEBIAN_DEBUGINFO_PACKAGE`` is
  21. set.
  22. * The :cpack_gen:`CPack Deb Generator` learned to honor the ``SOURCE_DATE_EPOCH``
  23. environment variable when packaging files. This is useful for generating
  24. reproducible packages.
  25. * CPack gained a new :cpack_gen:`CPack External Generator` which is used to
  26. export the CPack metadata in a format that other software can understand. The
  27. intention of this generator is to allow external packaging software to take
  28. advantage of CPack's features when it may not be possible to use CPack for
  29. the entire packaging process.
  30. * The CPack generators have been moved into their own separate section in the
  31. documentation, rather than having the documentation in their internal
  32. implementation modules.
  33. * These internal implementation modules are also no longer available to scripts
  34. that may have been incorrectly including them, because they should never have
  35. been available in the first place.
  36. * The :manual:`cmake(1)` ``-E create_symlink`` command can now be used
  37. on Windows.
  38. * :manual:`ctest(1)` gained a ``--progress`` option to enable a live
  39. test progress summary when output goes to a terminal.
  40. * The :command:`add_custom_command` and :command:`add_custom_target` commands
  41. learned to support generator expressions in ``WORKING_DIRECTORY`` options.
  42. * An explicit deprecation diagnostic was added for policies ``CMP0055``
  43. through ``CMP0063`` (``CMP0054`` and below were already deprecated).
  44. The :manual:`cmake-policies(7)` manual explains that the OLD behaviors
  45. of all policies are deprecated and that projects should port to the
  46. NEW behaviors.
  47. * The :module:`FindCURL` module learned to find debug and release variants
  48. separately.
  49. * The :module:`FindMatlab` module gained new components ``ENGINE_LIBRARY`` and
  50. ``DATAARRAY_LIBRARY`` to request finding the Matlab C++ Engine and DataArray
  51. libraries respectively.
  52. * The :module:`FindMatlab` module now explicitly exports mexFunction in Visual
  53. Studio.
  54. * The :module:`FindMatlab` module gained the ability to discover Matlab R2018a
  55. and R2018b.
  56. * The :module:`FindMatlab` module gained a new ``MCC_COMPILER``
  57. component to request finding the Matlab Compiler add-on.
  58. * Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
  59. gain capability to control order of resource lookup on macOS (Framework) and
  60. Windows (Registry).
  61. * The :module:`FindSubversion` module ``Subversion_WC_INFO`` command
  62. gained an ``IGNORE_SVN_FAILURE`` option to suppress failures,
  63. e.g. when the source tree is not under Subversion control.
  64. * The :generator:`Green Hills MULTI` generator is updated:
  65. - Added support for architecture selection through
  66. :variable:`CMAKE_GENERATOR_PLATFORM`:
  67. e.g. ``arm``, ``ppc``, and ``86``.
  68. - Added support for toolset selection through
  69. :variable:`CMAKE_GENERATOR_TOOLSET`,
  70. e.g. ``comp_201205``, ``comp_201510``, ``comp_201722_beta``.
  71. - Added support for platform selection through ``GHS_TARGET_PLATFORM``,
  72. e.g. ``integrity``, ``linux``, ``standalone``, etc.
  73. - No longer checks that ``arm`` based compilers are installed but ensures
  74. that the correct ``gbuild.exe`` exists.
  75. - No longer hard-codes ARM files, BSP, toolset, or OS locations.
  76. * The :command:`install(CODE)` and :command:`install(SCRIPT)` commands
  77. learned to support generator expressions.
  78. * Binary targets gained new :prop_tgt:`INTERFACE_LINK_DEPENDS` property.
  79. * The :prop_tgt:`LINK_DEPENDS` target property learned to support
  80. :manual:`generator expressions <cmake-generator-expressions(7)>`.
  81. * :command:`link_directories` command gains capability to control directories
  82. insertion position.
  83. * The :prop_tgt:`LINK_DIRECTORIES` target property expects absolute paths.
  84. See policy :policy:`CMP0081`.
  85. * CMake gained new capabilities to manage link directories:
  86. * :prop_tgt:`LINK_DIRECTORIES` and :prop_tgt:`INTERFACE_LINK_DIRECTORIES`
  87. target properties.
  88. * :command:`target_link_directories` command to add link directories to
  89. targets.
  90. * CMake gained new capabilities to manage link step:
  91. * :prop_dir:`LINK_OPTIONS` directory property.
  92. * :prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target
  93. properties.
  94. * :command:`add_link_options` command to add link options in the current
  95. directory.
  96. * :command:`target_link_options` command to add link options to targets.
  97. * The :command:`list(SORT)` command gained options to control the
  98. comparison operation used to order the entries.
  99. * The :command:`math` command gained options for hexadecimal.
  100. * The :command:`option` command now honors existing normal variables instead
  101. of replacing them with a cache entry. See policy :policy:`CMP0077`.
  102. * The :command:`target_link_libraries` command may now be called
  103. to modify targets created outside the current directory.
  104. See policy :policy:`CMP0079`.
  105. * Module ``FindPkgConfig`` gains capability to create imported targets in
  106. global scope.
  107. * static library targets gained new :prop_tgt:`STATIC_LIBRARY_OPTIONS` property.
  108. * The :command:`install(TARGETS)` command may now be used
  109. to install targets created outside the current directory.
  110. * The :command:`target_sources` command now interprets relative source file
  111. paths as relative to the current source directory. This simplifies
  112. incrementally building up a target's sources from subdirectories. The
  113. :policy:`CMP0076` policy was added to provide backward compatibility with
  114. the old behavior where required.
  115. * The :module:`UseSWIG` module has changed strategy for target naming.
  116. See policy :policy:`CMP0078`.
  117. * Module ``UseSWIG`` gains capability to manage target property
  118. :prop_tgt:`INCLUDE_DIRECTORIES` for ``SWIG`` compilation.
  119. * A :prop_tgt:`VS_DEBUGGER_COMMAND_ARGUMENTS` target property was created to
  120. set the debugging command line arguments with
  121. :ref:`Visual Studio Generators` for VS 2010 and above.
  122. * A :prop_tgt:`VS_DEBUGGER_ENVIRONMENT` target property was created to
  123. set the debugging environment with
  124. :ref:`Visual Studio Generators` for VS 2010 and above.
  125. * :prop_tgt:`VS_DEBUGGER_COMMAND`
  126. :prop_tgt:`VS_DEBUGGER_COMMAND_ARGUMENTS`
  127. :prop_tgt:`VS_DEBUGGER_ENVIRONMENT`
  128. :prop_tgt:`VS_DEBUGGER_WORKING_DIRECTORY`
  129. target properties can use generator expressions.
  130. * The :prop_tgt:`DEPLOYMENT_ADDITIONAL_FILES` target property was
  131. added to tell the :generator:`Visual Studio 9 2008` generator
  132. to specify additional files for deployment to WinCE devices
  133. for remote debugging.
  134. * A :variable:`CMAKE_VS_GLOBALS` variable was added to initialize
  135. :prop_tgt:`VS_GLOBAL_<variable>` target properties on targets as
  136. they are created.
  137. * The :ref:`Visual Studio Generators` for VS 2010 and above learned to
  138. support the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property
  139. and supporting :module:`CheckIPOSupported` module.
  140. * The :generator:`Xcode` generator learned to configure more Xcode Scheme
  141. fields. See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable.