.. only:: html
.. contents::
Changes made since CMake 3.4 include the following.
- The :manual:`cmake-gui(1)` gained options to control warnings about deprecated functionality.
- 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 :manual:`cmake-gui(1)` gained a Regular Expression Explorer which
may be used to create and evaluate regular expressions in real-time.
The explorer window is available via the
Tools
menu.
- The
-Wdev
and-Wno-dev
:manual:`cmake(1)` options now also enable and suppress the deprecated warnings output by default. - 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 :manual:`cmake(1)`
-E
command-line toolscopy
,copy_if_different
,copy_directory
, andmake_directory
learned to support multiple input files or directories.
- The :command:`cmake_parse_arguments` command is now implemented natively. The :module:`CMakeParseArguments` module remains as an empty placeholder for compatibility.
- The :command:`install(DIRECTORY)` command learned to support :manual:`generator expressions <cmake-generator-expressions(7)>` in the list of directories.
- The :variable:`CMAKE_ERROR_DEPRECATED` variable can now be set using the
-Werror=deprecated
and-Wno-error=deprecated
:manual:`cmake(1)` options. - The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the
-Wdeprecated
and-Wno-deprecated
:manual:`cmake(1)` options.
- 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.
- The :module:`ExternalProject` module learned a new
GIT_REMOTE_NAME
option to control thegit clone --origin
value. - The :module:`FindBoost` module now provides imported targets
such as
Boost::boost
andBoost::filesystem
. - The :module:`FindFLEX` module
FLEX_TARGET
macro learned a newDEFINES_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 setsGTK2_LIBRARIES
to contain the list of imported targets instead of the paths to the libraries. Moreover it now sets a newGTK2_TARGETS
variable containing all the targets imported. - 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.
- 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 :manual:`Compile Features <cmake-compile-features(7)>` functionality is now aware of features supported by Clang compilers on Windows (MinGW).
- 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 :cpack_gen:`CPack DragNDrop Generator` 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 :cpack_gen:`CPack DEB Generator` learned to set the optional config
file
Source
field using a monolithic or per-component variable. See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`. - The :cpack_gen:`CPack DEB Generator` learned to set Package, Section and Priority control fields per-component. See variables :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION` and :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`.
- The :cpack_gen:`CPack DragNDrop Generator` 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 :cpack_gen:`CPack NSIS Generator` 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 :cpack_gen:`CPack RPM Generator` learned to set Name and Group control fields per-component. See :variable:`CPACK_RPM_<component>_PACKAGE_NAME` and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`.
- 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.
- 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 :generator:`Xcode` generator was fixed to escape backslashes in strings consistently with other generators. Projects that previously worked around the inconsistecy with an extra level of backslashes conditioned on the Xcode generator must be updated to remove the workaround for CMake 3.5 and greater.
- The :generator:`Visual Studio 14 2015` generator learned to map the
/debug:fastlink
linker flag to the.vcxproj
file property. - The :module:`FindGTK2` module now configures the
GTK2::sigc++
imported target to enable c++11 on its dependents when using sigc++ 2.5.1 or higher. - 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.