summaryrefslogtreecommitdiffstats
path: root/Help/release/3.13.rst
blob: b8aaf2af135ff2e32769f2e93e42beb39f103431 (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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
CMake 3.13 Release Notes
************************

.. only:: html

  .. contents::

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`.

* The :ref:`Makefile Generators` learned to remove custom command and
  custom target byproducts during ``make clean``.

* 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 :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 :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 :cpack_gen:`CPack Deb Generator` learned to split debug symbols into
  a corresponding .ddeb package when ``CPACK_DEBIAN_DEBUGINFO_PACKAGE`` is
  set.

* 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.

* 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.

* 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.

* 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.

* 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 :module:`FindCURL` module learned to find debug and release variants
  separately.

* The :module:`FindMatlab` module gained new components ``ENGINE_LIBRARY`` and
  ``DATAARRAY_LIBRARY`` to request finding the Matlab C++ Engine and DataArray
  libraries respectively.

* 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.

* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
  gain capability to control order of resource lookup on macOS (Framework) and
  Windows (Registry).

* The :module:`FindSubversion` module ``Subversion_WC_INFO`` command
  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 :prop_tgt:`LINK_DEPENDS` target property learned to support
  :manual:`generator expressions <cmake-generator-expressions(7)>`.

* :command:`link_directories` command gains capability to control directories
  insertion position.

* The :prop_tgt:`LINK_DIRECTORIES` target property expects absolute paths.
  See policy :policy:`CMP0081`.

* CMake gained new capabilities to manage link directories:

  * :prop_tgt:`LINK_DIRECTORIES` and :prop_tgt:`INTERFACE_LINK_DIRECTORIES`
    target properties.
  * :command:`target_link_directories` command to add link directories to
    targets.

* CMake gained new capabilities to manage link step:

  * :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.

* 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:`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 :command:`target_sources` command now interprets relative source file
  paths as relative to the current source directory.  This simplifies
  incrementally building up a target's sources from subdirectories.  The
  :policy:`CMP0076` policy was added to provide backward compatibility with
  the old behavior where required.

* 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 :generator:`Xcode` generator learned to configure more Xcode Scheme
  fields.  See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable.