CMake 3.10.0-rc1 is ready for testing

I am proud to announce the first CMake 3.10 release candidate.
https://cmake.org/download/

Documentation is available at:
https://cmake.org/cmake/help/v3.10

Release notes appear below and are also published at
https://cmake.org/cmake/help/v3.10/release/3.10.html

Some of the more significant changes in CMake 3.10 are:

  • The flang Fortran compiler is now supported, with compiler id
    “Flang”.
  • 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
    discovery.
  • 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
    “CMP0070”.

 

2 Responses to CMake 3.10.0-rc1 is ready for testing

  1. FYI – This paragraph is duplicated twice:

    * When using “AUTOMOC”, CMake searches for the strings “Q_OBJECT”,
    “Q_GADGET” or “Q_NAMESPACE” in a source file to determine if it
    needs to be “moc” processed. The new target property
    “AUTOMOC_MACRO_NAMES” allows to register additional strings (macro
    names) so search for.

    • Robert Maynard says:

      They are subtly different, the first paragraph documents the global property “CMAKE_AUTOMOC_MACRO_NAMES” while the second documents the target property “AUTOMOC_MACRO_NAMES”.

Questions or comments are always welcome!