/usr/share/cmake-3.5/Help/release/3.4.rst is in cmake-data 3.5.1-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | CMake 3.4 Release Notes
***********************
.. only:: html
.. contents::
Changes made since CMake 3.3 include the following.
New Features
============
Generators
----------
* The :generator:`Visual Studio 14 2015` generator learned to select
a Windows 10 SDK based on the value of the :variable:`CMAKE_SYSTEM_VERSION`
variable and the SDKs available on the host.
* CMake learned rudimentary support for the Apple Swift language. When using
the :generator:`Xcode` generator with Xcode 6.1 or higher, one may enable
the ``Swift`` language with the :command:`enable_language` command or the
:command:`project` command (this is an error with other generators or when
Xcode is too old). Then one may list ``.swift`` source files in targets
for compilation.
Commands
--------
* The :command:`find_program` command learned a ``NAMES_PER_DIR``
option to consider all given ``NAMES`` in each directory before
moving on to the next directory.
* The :command:`get_filename_component` command learned a new ``BASE_DIR``
subcommand. This is used to specify a base directory when calculating an
absolute path from a relative path.
* The :command:`if` command learned a new ``TEST`` operator that evaluates
to true if a given test name has been defined by the :command:`add_test`
command. See policy :policy:`CMP0064`.
* The :command:`install(DIRECTORY)` command ``DESTINATION`` option learned to
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
* The :command:`install(FILES)` command ``DESTINATION`` option learned to
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
* The :command:`string` command learned a new ``APPEND`` subcommand.
Variables
---------
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator
learned to add compiler launcher tools like distcc and ccache along
with the compiler for ``C`` and ``CXX`` languages. See the
:variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
:prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
* New :variable:`CMAKE_LINK_SEARCH_START_STATIC` and
:variable:`CMAKE_LINK_SEARCH_END_STATIC` variables were
introduced to initialize the
:prop_tgt:`LINK_SEARCH_START_STATIC` and
:prop_tgt:`LINK_SEARCH_END_STATIC` target properties,
respectively.
Properties
----------
* :ref:`Visual Studio Generators` learned to support additonal
target properties to customize projects for NVIDIA Nsight
Tegra Visual Studio Edition:
* :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS`
* :prop_tgt:`ANDROID_ARCH`
* :prop_tgt:`ANDROID_ASSETS_DIRECTORIES`
* :prop_tgt:`ANDROID_JAR_DEPENDENCIES`
* :prop_tgt:`ANDROID_JAR_DIRECTORIES`
* :prop_tgt:`ANDROID_JAVA_SOURCE_DIR`
* :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES`
* :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES`
* :prop_tgt:`ANDROID_PROCESS_MAX`
* :prop_tgt:`ANDROID_PROGUARD`
* :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH`
* :prop_tgt:`ANDROID_SECURE_PROPS_PATH`
* :prop_tgt:`ANDROID_SKIP_ANT_STEP`
* :prop_tgt:`ANDROID_STL_TYPE`
* The :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`,
:prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and
:prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties learned to
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
* The :prop_tgt:`SOURCE_DIR` and :prop_tgt:`BINARY_DIR` target properties
were introduced to allow project code to query where a target is defined.
* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to
support :manual:`generator expressions <cmake-generator-expressions(7)>`.
* A :prop_gbl:`TARGET_MESSAGES` global property was added to tell the
:ref:`Makefile Generators` whether to generate commands to print output
after each target is completed.
* On Windows with MS-compatible tools, CMake learned to optionally
generate a module definition (``.def``) file for ``SHARED`` libraries.
See the :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property.
Modules
-------
* The :module:`ExternalProject` module :command:`ExternalProject_Add`
function ``GIT_SUBMODULES`` option now also limits the set of
submodules that are initialized in addition to the prior behavior
of limiting the set of submodules that are updated.
* The :module:`ExternalProject` module learned new ``USES_TERMINAL``
arguments for giving steps exclusive terminal access. This is
useful with the :generator:`Ninja` generator to monitor CMake
superbuild progress and prevent CPU oversubscription.
* The :module:`FindBISON` module ``BISON_TARGET`` macro learned a
new ``DEFINES_FILE`` option to specify a custom output header
to be generated.
* The :module:`FindHDF5` module learend a new ``HDF5_PREFER_PARALLEL``
option allowing users to specify that a parallel HDF5 tool is
preferred if both are available.
* The :module:`FindIce` module now provides imported targets.
* The :module:`FindJava` module learned to optionally find
the ``idlj`` and ``jarsigner`` tools.
* The :module:`FindOpenSSL` module now provides imported targets.
* The :module:`FindOpenSSL` module learned a new ``OPENSSL_USE_STATIC_LIBS``
option to search only for static libraries.
* The :module:`FindPkgConfig` learned a new :command:`pkg_get_variable`
command which may be used to query for arbitrary variables from a package
(such as for related tools or data and plugin install paths).
* The :module:`FindProtobuf` module gained a new
:command:`protobuf_generate_python` function to generate python
sources from ``.proto`` files.
* The :module:`FindTIFF` module learned to search separately for
debug and release variants.
* The :module:`FindwxWidgets` module learned to support version requests.
* The :module:`FindXercesC` module learned to search separately for
debug and release variants.
* The :module:`FindZLIB` module learned to search separately for
debug and release variants.
* The :module:`GNUInstallDirs` module learned special default values
for certain installation prefixes according to the `GNU Coding
Standards`_ and the `Filesystem Hierarchy Standard`_.
* The :module:`UseJava` module ``add_jar`` function learned
to support response files (e.g. ``@srcs.txt``) for source
specification.
* The :module:`UseJava` module ``install_jar`` function learned
new ``DESTINATION`` and ``COMPONENT`` options to specify
the corresponding :command:`install` command options.
* The :module:`UseJava` module gained a new ``create_javah``
function to create C headers from Java classes.
.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
Generator Expressions
---------------------
* A new ``$<SHELL_PATH:...>``
:manual:`generator expression <cmake-generator-expressions(7)>`
has been added.
CTest
-----
* CTest learned to optionally measure the CPU load during parallel
testing and avoid starting tests that may cause the load to exceed
a given threshold. See the :manual:`ctest(1)` command ``--test-load``
option, the ``TestLoad`` setting of the :ref:`CTest Test Step`,
the :variable:`CTEST_TEST_LOAD` variable, and the ``TEST_LOAD``
option of the :command:`ctest_test` command.
* :manual:`ctest(1)` learned options
``--test-output-size-passed`` and ``--test-output-size-failed``
to customize the limit on test output size submitted when
running as a :ref:`Dashboard Client`.
CPack
-----
* The :module:`CPackDeb` module learned to set package dependencies
per component. See variables:
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS`
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS`
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES`
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS`
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES`
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS`
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES`
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS`
* The :module:`CPack` module learned to package empty directories.
* The :module:`CPack` module gained a new setting, ``CPACK_VERBATIM_VARIABLES``,
which can be used to ensure the cpack program receives the settings' values
exactly as they were set, even if they contain CMake-special characters.
For compatibility, it's off by default.
Other
-----
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
is now aware of features supported by GNU C compilers on Windows.
* CMake learned to honor ``*.manifest`` source files with MSVC tools.
Manifest files named as sources of ``.exe`` and ``.dll`` targets
will be merged with linker-generated manifests and embedded in the
binary.
* The `Concurrent Fortran 77 <https://ccur.com>`__ compiler is now supported.
Its :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` is ``CCur``.
* :manual:`cmake(1)` gained a new ``--trace-expand`` command line option
that is like ``--trace`` but expands variable references in the output.
Deprecated and Removed Features
===============================
* The :module:`CMakeExpandImportedTargets` module is now documented
as deprecated. See module documentation for an explanation.
* The :variable:`CMAKE_USE_RELATIVE_PATHS` variable no longer has any
effect. Previously it was partially implemented and unreliable.
Other Changes
=============
* The :module:`CheckFunctionExists`, :module:`CheckLibraryExists`,
:module:`CheckSymbolExists`, and :module:`FindThreads` modules learned to
work in environments where only CXX is enabled.
* The :module:`CPackDeb` module now correctly excludes symlinks during package
checksum calculation.
* The :module:`CPackDeb` no longer uses fakeroot and system tar program for
packaging.
* The :module:`CPack` module no longer mangles settings with CMake-special
characters when they're used as defaults for other settings. The macro
``cpack_set_if_not_set``, which was responsible for this, is now deprecated.
* CMake no longer links executables with flags to export symbols
unless the :prop_tgt:`ENABLE_EXPORTS` target property is set.
See policy :policy:`CMP0065`.
* The ``SONAME`` field is no longer set for ``MODULE`` libraries
created with the :command:`add_library` command. ``MODULE``
libraries are meant for explicit dynamic loading at runtime.
They cannot be linked so ``SONAME`` is not useful.
* The internal :variable:`CMAKE_<LANG>_COMPILE_OBJECT` rule variable now
substitutes compiler include flags in a separate ``<INCLUDES>`` placeholder
instead of the main ``<FLAGS>`` placeholder.
|