CMake 3.10.0-rc2 is ready for testing

I am proud to announce the second CMake 3.10 release candidate.

Documentation is available at:

Release notes appear below and are also published at

Some of the more significant changes in CMake 3.10 are:

  • The flang Fortran compiler is now supported, with compiler id
  • Support for the MSVC ARM64 architecture was added. Visual Studio
    2017 Update 4 and above offer an ARM64 toolchain.
  • The “include_guard()” command was introduced to allow guarding
    CMake scripts from being included more than once. The command
    supports “DIRECTORY” and “GLOBAL” options to adjust the
    corresponding include guard scope. If no options given, include
    guard is similar to basic variable-based check.
  • “FindMPI” received a major overhaul. It now features language specific
    components, better Fortran support, and support for statically linked
    MPI implementations.
  • A “FindOpenACC” module was added to detect compiler support for
    OpenACC. Currently only supports PGI, GNU and Cray compilers.
  • The “FindOpenGL” module underwent numerous improvements. It has gained
    support for GLVND and EGL on Linux. It now has import targets that
    separate the OpenGL library and OpenGL contexts.
  • The “GoogleTest” module gained a new command
    “gtest_discover_tests()” implementing dynamic (build-time) test
  • When using “AUTOMOC” or “AUTOUIC”, source files that are
    “GENERATED” will be processed as well. They were ignored by
    “AUTOMOC” and “AUTOUIC” in earlier releases. See policy “CMP0071”.
  • A “CTEST_LABELS_FOR_SUBPROJECTS” CTest module variable and CTest
    script variable were added to specify a list of labels that should
    be treated as subprojects by CDash. To use this value in both the
    CTest module and the ctest command line Dashboard Client mode (e.g.
    “ctest -S”) set it in the “CTestConfig.cmake” config file.
  • CPack gained a “FREEBSD” generator for FreeBSD “pkg(8)”,
    configured by the “CPackFreeBSD” module.
  • The CPack “DEB” generator, configured by the “CPackDeb” module,
    was enabled on Windows. While not fully featured (due to the lack
    of external UNIX tools) this will allow building basic cross-
    platform Debian packages.
  • The “cmake(1)” “-E” mode gained support for “sha1sum”,
    “sha224sum”, “sha256sum”, “sha384sum”, and “sha512sum”.
  • The “file(GENERATE)” command now interprets relative paths given
    to its “OUTPUT” and “INPUT” arguments with respect to the caller’s
    current binary and source directories, respectively. See policy


Questions or comments are always welcome!