summaryrefslogtreecommitdiffstats
path: root/Help/release/3.5.rst
blob: 3b466788fd20df005917a08f73dfb5413a42536f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
CMake 3.5 Release Notes
***********************

.. only:: html

  .. contents::

Changes made since CMake 3.4 include the following.

* Support was added for the ARM Compiler (arm.com) with compiler id ``ARMCC``.

* A new platform file for cross-compiling in the Cray Linux Environment to
  target compute nodes was added.  See
  :ref:`Cross Compiling for the Cray Linux Environment <Cray Cross-Compile>`
  for usage details.

* The :module:`CPackDMG` module learned new variable to specify AppleScript
  file run to customize appearance of ``DragNDrop`` installer folder,
  including background image setting using supplied PNG or multi-resolution
  TIFF file.  See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and
  :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables.

* The :manual:`cmake(1)` ``-E copy`` and ``-E copy_if_different`` command-line
  tools learned to support copying multiple input files to a directory.

* The :manual:`cmake(1)` ``-E copy_directory`` command-line
  tool learned to support copying multiple input directories to a directory.

* The :manual:`cmake(1)` ``-E make_directory`` command-line
  tool learned to support copying multiple input directories to a directory.

* The :manual:`cmake(1)` ``-E time`` command now properly passes arguments
  with spaces or special characters through to the child process.  This
  may break scripts that worked around the bug with their own extra
  quoting or escaping.

* The :manual:`cmake-gui(1)` learned an option to set the toolset
  to be used with VS IDE and Xcode generators, much like the
  existing ``-T`` option to :manual:`cmake(1)`.

* The :command:`cmake_parse_arguments` command is now implemented natively.
  The :module:`CMakeParseArguments` module remains as an empty placeholder
  for compatibility.

* The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the
  ``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options.

* The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(1)` options now also enable
  and suppress the deprecated warnings output by default.

* Warnings about deprecated functionality are now enabled by default.
  They may be suppressed with ``-Wno-deprecated`` or by setting the
  :variable:`CMAKE_WARN_DEPRECATED` variable to false.

* Warnings about deprecated functionality can now be controlled in the
  :manual:`cmake-gui(1)` application.

* The suppression of developer warnings as errors can now be controlled with
  the new ``-Werror=dev`` and ``-Wno-error=dev`` :manual:`cmake(1)` options.

* The :variable:`CMAKE_ERROR_DEPRECATED` variable can now be set using the
  ``-Werror=deprecated`` and ``-Wno-error=deprecated`` :manual:`cmake(1)`
  options.

* The :module:`CPackDeb` module learned to set optional config
  file ``Source`` field - monolithic and per-component variable.
  See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`.

* The :module:`CPackDeb` module learned to set Package, Section
  and Priority control fields per-component.
  See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION`
  and :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`.

* The :module:`CPack DragNDrop generator <CPackDMG>` learned to add
  multi-lingual SLAs to a DMG which is presented to the user when they try to
  mount the DMG.  See the :variable:`CPACK_DMG_SLA_LANGUAGES` and
  :variable:`CPACK_DMG_SLA_DIR` variables for details.

* The :module:`CPackNSIS` module learned new variables to add bitmaps to the
  installer.  See the :variable:`CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP`
  and :variable:`CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP` variables.

* The :module:`CPackRPM` module learned to set Name and Group
  control fields per-component.
  See :variable:`CPACK_RPM_<component>_PACKAGE_NAME`
  and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`.

* The :module:`CMakeForceCompiler` module and its macros are now deprecated.
  See module documentation for an explanation.

* The :module:`ExternalProject` module learned a new ``GIT_REMOTE_NAME``
  option to control the ``git clone --origin`` value.

* The :module:`FindBoost` module now provides imported targets
  such as ``Boost::boost`` and ``Boost::filesystem``.

* The :module:`FindFLEX` module ``FLEX_TARGET`` macro learned a
  new ``DEFINES_FILE`` option to specify a custom output header
  to be generated.

* The :module:`FindGTest` module now provides imported targets.

* The :module:`FindGTK2` module, when ``GTK2_USE_IMPORTED_TARGETS`` is
  enabled, now sets ``GTK2_LIBRARIES`` to contain the list of imported
  targets instead of the paths to the libraries.  Moreover it now sets
  a new ``GTK2_TARGETS`` variable containing all the targets imported.

* Starting with sigc++ 2.5.1, c++11 must be enabled in order to use
  sigc++. The GTK2::sigc++ imported target will automatically enable the
  required build flags in order to build with the version found on the
  system.

* The :module:`FindOpenMP` module learned to support Clang.

* The :module:`FindOpenSSL` module gained a new
  ``OPENSSL_MSVC_STATIC_RT`` option to search for libraries using
  the MSVC static runtime.

* The :module:`FindPNG` module now provides imported targets.

* The :module:`FindTIFF` module now provides imported targets.

* A :module:`FindXalanC` module was introduced to find the
  Apache Xalan-C++ XSL transform processing library.

* The :module:`FindXercesC` module now provides imported targets.

* The :command:`install(DIRECTORY)` command learned to support
  :manual:`generator expressions <cmake-generator-expressions(7)>`
  in the list of directories.

* When building for embedded Apple platforms like iOS CMake learned to build and
  install combined targets which contain both a device and a simulator build.
  This behavior can be enabled by setting the :prop_tgt:`IOS_INSTALL_COMBINED`
  target property.

* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
  is now aware of features supported by Clang compilers on Windows (MinGW).

* The Qt base CMake GUI got a Regular Expression Explorer which could be used to
  create and evaluate regular expressions in real-time. The explorer window
  is available via the ``Tools`` menu.

* The precompiled Windows binary provided on ``cmake.org`` is now a
  ``.msi`` package instead of an installer executable.  One may need
  to manually uninstall CMake versions lower than 3.5 before installing
  the new package.

* The :generator:`Visual Studio 14 2015` generator learned to map the
  ``/debug:fastlink`` linker flag to the ``.vcxproj`` file property.

* The :prop_tgt:`VS_GLOBAL_<variable>` target property is now implemented
  for VS 2010 and above.  Previously it worked only in VS 2008 and below.