CMake 3.14.0-rc1 is ready for testing

I am proud to announce the first CMake 3.14 release candidate.

Documentation is available at:

Release notes appear below and are also published at

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 “”
    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 2” 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.

  • 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”
  • 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.

One Response to CMake 3.14.0-rc1 is ready for testing

  1. HGH says:

    A full blog post on File-Based API and why is it better than the server would be a nice read I think!

Questions or comments are always welcome!