I am happy to announce that CMake 3.14.0 is now available for download at:
https://cmake.org/download/
Documentation is available at:
https://cmake.org/cmake/help/v3.14
Release notes appear below and are also published at
https://cmake.org/cmake/help/v3.14/release/3.14.html
Some of the more significant changes in CMake 3.14 are:
* Support for running CMake on Windows XP and Windows Vista has been
dropped. The precompiled Windows binaries provided on "cmake.org"
now require Windows 7 or higher.
* CMake now supports Cross Compiling for iOS, tvOS, or watchOS using
simple toolchain files.
* The "Visual Studio 16 2019" generator was added. This is
experimental and based on "Visual Studio 2019 Preview 4" because
this version of VS has not been released.
The VS 2019 generator differs from generators for earlier versions
in that it does not provide variants that specify the target
platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM"
must be used, e.g. through the "-A" command-line option.
Furthermore, the default target platform (architecture) is now based
on the *host* platform. The VS host toolset selection is now based
on the host architecture as well.
* The "Green Hills MULTI" generator has been updated to include Object
Library support, support for target renaming and destination output
control properties, and other improvements.
* A "CMAKE_BUILD_RPATH_USE_ORIGIN" variable and corresponding
"BUILD_RPATH_USE_ORIGIN" target property were added to enable use of
relative runtime paths (RPATHs). This helps achieving relocatable
and reproducible builds that are invariant of the build directory.
* The "install(TARGETS)" command learned how to install to an
appropriate default directory for a given target type, based on
variables from the "GNUInstallDirs" module and built-in defaults, in
lieu of a "DESTINATION" argument.
* The "install(FILES)" and "install(DIRECTORY)" commands learned a
new set of parameters for installing files as a file type, setting
the destination based on the appropriate variables from
"GNUInstallDirs" and built-in defaults, in lieu of a "DESTINATION"
argument.
* The "install(CODE)" and "install(SCRIPT)" commands learned to
support generator expressions. See policy "CMP0087".
* The "if()" command gained support for checking if cache variables
are defined with the "DEFINED CACHE{VAR}" syntax.
* A file-based api for clients to get semantic buildsystem
information has been added. See the "cmake-file-api(7)" manual.
This is intended to replace the "cmake-server(7)" mode for IDEs.
* The "cmake(1)" Build Tool Mode ("cmake --build") gained "--
verbose" and "-v" options to specify verbose build output. Some
generators such as Xcode don't support this option currently.
* The "cmake(1)" "-E compare_files" command learned a new "--ignore-
eol" option to specify that end-of-line differences (e.g. LF vs
CRLF) should be ignored when comparing files.
CMake 3.14 Release Notes
Changes made since CMake 3.13 include the following.
New Features
Generators
--
* The "Visual Studio 16 2019" generator was added. This is
experimental and based on "Visual Studio 2019 Preview 4" because
this version of VS has not been released.
The VS 2019 generator differs from generators for earlier versions
in that it does not provide variants that specify the target
platform in the generator name. Instead "CMAKE_GENERATOR_PLATFORM"
must be used, e.g. through the "-A" command-line option.
Furthermore, the default target platform (architecture) is now based
on the *host* platform. The VS host toolset selection is now based
on the host architecture as well.
* The "Green Hills MULTI" generator has been updated:
* Now supports Object Libraries.
* Now warns on unsupported project types such as shared libraries.
* Now generates a top-level ".top.gpj" for each
directory calling the "project()" command. The top-level project
file "default.gpj" is no longer created.
* Now honors target renaming and destination output control
properties such as "RUNTIME_OUTPUT_DIRECTORY" and "OUTPUT_NAME".
This also fixes support for installation rules generated by
"install()".
* Now honors source file properties "INCLUDE_DIRECTORIES",
"COMPILE_DEFINITIONS", and "COMPILE_OPTIONS".
* Now supports Dynamic Download Integrity Applications which did
not include Integrate Files via "GHS_INTEGRITY_APP" and setting a
target link flag of "-dynamic".
* The contents of project files now sorts sources groups and files
by name. Set the "GHS_NO_SOURCE_GROUP_FILE" target property to
"ON" to generate a single project file for the target instead of a
project file for each source group. Set the
"CMAKE_GHS_NO_SOURCE_GROUP_FILE" variable to enable this for all
targets.
File-Based API
--
* A file-based api for clie