3.5.rst 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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 :module:`CPackDMG` module learned new variable to specify AppleScript
  85. file run to customize appearance of ``DragNDrop`` installer folder,
  86. including background image setting using supplied PNG or multi-resolution
  87. TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and
  88. :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables.
  89. * The :module:`CPackDeb` module learned to set the optional config
  90. file ``Source`` field using a monolithic or per-component variable.
  91. See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`.
  92. * The :module:`CPackDeb` module learned to set Package, Section
  93. and Priority control fields per-component.
  94. See variables :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION` and
  95. :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`.
  96. * The :module:`CPack DragNDrop generator <CPackDMG>` learned to add
  97. multi-lingual SLAs to a DMG which is presented to the user when they try to
  98. mount the DMG. See the :variable:`CPACK_DMG_SLA_LANGUAGES` and
  99. :variable:`CPACK_DMG_SLA_DIR` variables for details.
  100. * The :module:`CPackNSIS` module learned new variables to add bitmaps to the
  101. installer. See the :variable:`CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP`
  102. and :variable:`CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP` variables.
  103. * The :module:`CPackRPM` module learned to set Name and Group
  104. control fields per-component.
  105. See :variable:`CPACK_RPM_<component>_PACKAGE_NAME`
  106. and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`.
  107. Other
  108. -----
  109. * Warnings about deprecated functionality are now enabled by default.
  110. They may be suppressed with ``-Wno-deprecated`` or by setting the
  111. :variable:`CMAKE_WARN_DEPRECATED` variable to false.
  112. Deprecated and Removed Features
  113. ===============================
  114. * The :manual:`cmake(1)` ``-E time`` command now properly passes arguments
  115. with spaces or special characters through to the child process. This
  116. may break scripts that worked around the bug with their own extra
  117. quoting or escaping.
  118. * The :generator:`Xcode` generator was fixed to escape backslashes in
  119. strings consistently with other generators. Projects that previously
  120. worked around the inconsistecy with an extra level of backslashes
  121. conditioned on the Xcode generator must be updated to remove the
  122. workaround for CMake 3.5 and greater.
  123. Other Changes
  124. =============
  125. * The :generator:`Visual Studio 14 2015` generator learned to map the
  126. ``/debug:fastlink`` linker flag to the ``.vcxproj`` file property.
  127. * The :module:`FindGTK2` module now configures the ``GTK2::sigc++`` imported
  128. target to enable c++11 on its dependents when using sigc++ 2.5.1 or higher.
  129. * The precompiled Windows binary provided on ``cmake.org`` is now a
  130. ``.msi`` package instead of an installer executable. One may need
  131. to manually uninstall CMake versions lower than 3.5 before installing
  132. the new package.