3.5.rst 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. CMake 3.5 Release Notes
  2. ***********************
  3. .. only:: html
  4. .. contents::
  5. Changes made since CMake 3.4 include the following.
  6. New Features
  7. ============
  8. GUI
  9. ---
  10. * The :manual:`cmake-gui(1)` gained options to control warnings about
  11. deprecated functionality.
  12. * The :manual:`cmake-gui(1)` learned an option to set the toolset
  13. to be used with VS IDE and Xcode generators, much like the
  14. existing ``-T`` option to :manual:`cmake(1)`.
  15. * The :manual:`cmake-gui(1)` gained a Regular Expression Explorer which
  16. may be used to create and evaluate regular expressions in real-time.
  17. The explorer window is available via the ``Tools`` menu.
  18. Command-Line
  19. ------------
  20. * The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(1)` options now also enable
  21. and suppress the deprecated warnings output by default.
  22. * The suppression of developer warnings as errors can now be controlled with
  23. the new ``-Werror=dev`` and ``-Wno-error=dev`` :manual:`cmake(1)` options.
  24. * The :manual:`cmake(1)` ``-E`` command-line tools ``copy``,
  25. ``copy_if_different``, ``copy_directory``, and ``make_directory``
  26. learned to support multiple input files or directories.
  27. Commands
  28. --------
  29. * The :command:`cmake_parse_arguments` command is now implemented natively.
  30. The :module:`CMakeParseArguments` module remains as an empty placeholder
  31. for compatibility.
  32. * The :command:`install(DIRECTORY)` command learned to support
  33. :manual:`generator expressions <cmake-generator-expressions(7)>`
  34. in the list of directories.
  35. Variables
  36. ---------
  37. * The :variable:`CMAKE_ERROR_DEPRECATED` variable can now be set using the
  38. ``-Werror=deprecated`` and ``-Wno-error=deprecated`` :manual:`cmake(1)`
  39. options.
  40. * The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the
  41. ``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options.
  42. Properties
  43. ----------
  44. * The :prop_tgt:`VS_GLOBAL_<variable>` target property is now implemented
  45. for VS 2010 and above. Previously it worked only in VS 2008 and below.
  46. Modules
  47. -------
  48. * The :module:`ExternalProject` module learned a new ``GIT_REMOTE_NAME``
  49. option to control the ``git clone --origin`` value.
  50. * The :module:`FindBoost` module now provides imported targets
  51. such as ``Boost::boost`` and ``Boost::filesystem``.
  52. * The :module:`FindFLEX` module ``FLEX_TARGET`` macro learned a
  53. new ``DEFINES_FILE`` option to specify a custom output header
  54. to be generated.
  55. * The :module:`FindGTest` module now provides imported targets.
  56. * The :module:`FindGTK2` module, when ``GTK2_USE_IMPORTED_TARGETS`` is
  57. enabled, now sets ``GTK2_LIBRARIES`` to contain the list of imported
  58. targets instead of the paths to the libraries. Moreover it now sets
  59. a new ``GTK2_TARGETS`` variable containing all the targets imported.
  60. * The :module:`FindOpenMP` module learned to support Clang.
  61. * The :module:`FindOpenSSL` module gained a new
  62. ``OPENSSL_MSVC_STATIC_RT`` option to search for libraries using
  63. the MSVC static runtime.
  64. * The :module:`FindPNG` module now provides imported targets.
  65. * The :module:`FindTIFF` module now provides imported targets.
  66. * A :module:`FindXalanC` module was introduced to find the
  67. Apache Xalan-C++ XSL transform processing library.
  68. * The :module:`FindXercesC` module now provides imported targets.
  69. Platforms
  70. ---------
  71. * Support was added for the ARM Compiler (arm.com) with compiler id ``ARMCC``.
  72. * A new platform file for cross-compiling in the Cray Linux Environment to
  73. target compute nodes was added. See
  74. :ref:`Cross Compiling for the Cray Linux Environment <Cray Cross-Compile>`
  75. for usage details.
  76. * The :manual:`Compile Features <cmake-compile-features(7)>` functionality
  77. is now aware of features supported by Clang compilers on Windows (MinGW).
  78. * When building for embedded Apple platforms like iOS CMake learned to build and
  79. install combined targets which contain both a device and a simulator build.
  80. This behavior can be enabled by setting the :prop_tgt:`IOS_INSTALL_COMBINED`
  81. target property.
  82. CPack
  83. -----
  84. * The :cpack_gen:`CPack DMG Generator` learned new variable to
  85. specify AppleScript file run to customize appearance of ``DragNDrop``
  86. installer folder, including background image setting using supplied
  87. PNG or multi-resolution TIFF file.
  88. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and
  89. :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables.
  90. * The :cpack_gen:`CPack Deb Generator` learned to set the optional config
  91. file ``Source`` field using a monolithic or per-component variable.
  92. See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`.
  93. * The :cpack_gen:`CPack Deb Generator` learned to set Package, Section
  94. and Priority control fields per-component.
  95. See variables :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION` and
  96. :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`.
  97. * The :cpack_gen:`CPack DMG Generator` learned to add
  98. multi-lingual SLAs to a DMG which is presented to the user when they try to
  99. mount the DMG. See the :variable:`CPACK_DMG_SLA_LANGUAGES` and
  100. :variable:`CPACK_DMG_SLA_DIR` variables for details.
  101. * The :cpack_gen:`CPack NSIS Generator` learned new variables to
  102. add bitmaps to the installer.
  103. See the :variable:`CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP`
  104. and :variable:`CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP` variables.
  105. * The :cpack_gen:`CPack RPM Generator` learned to set Name and Group
  106. control fields per-component.
  107. See :variable:`CPACK_RPM_<component>_PACKAGE_NAME`
  108. and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`.
  109. Other
  110. -----
  111. * Warnings about deprecated functionality are now enabled by default.
  112. They may be suppressed with ``-Wno-deprecated`` or by setting the
  113. :variable:`CMAKE_WARN_DEPRECATED` variable to false.
  114. Deprecated and Removed Features
  115. ===============================
  116. * The :manual:`cmake(1)` ``-E time`` command now properly passes arguments
  117. with spaces or special characters through to the child process. This
  118. may break scripts that worked around the bug with their own extra
  119. quoting or escaping.
  120. * The :generator:`Xcode` generator was fixed to escape backslashes in
  121. strings consistently with other generators. Projects that previously
  122. worked around the inconsistecy with an extra level of backslashes
  123. conditioned on the Xcode generator must be updated to remove the
  124. workaround for CMake 3.5 and greater.
  125. Other Changes
  126. =============
  127. * The :generator:`Visual Studio 14 2015` generator learned to map the
  128. ``/debug:fastlink`` linker flag to the ``.vcxproj`` file property.
  129. * The :module:`FindGTK2` module now configures the ``GTK2::sigc++`` imported
  130. target to enable c++11 on its dependents when using sigc++ 2.5.1 or higher.
  131. * The precompiled Windows binary provided on ``cmake.org`` is now a
  132. ``.msi`` package instead of an installer executable. One may need
  133. to manually uninstall CMake versions lower than 3.5 before installing
  134. the new package.