CMake is an extensible, open-source system that manages the build process in an operating system and in a compiler-independent manner. Unlike many cross-platform systems, CMake is designed to be used in conjunction with the native build environment. Simple configuration files placed in each source directory (called CMakeLists.txt files) are used to generate standard build files (e.g., makefiles on Unix and projects/workspaces in Windows MSVC) which are used in the usual way. CMake can generate a
major feature: CMake now supports Cross Compiling for Android with simple toolchain files. The Ninja generator learned to conditionally support Fortran when using a ninja tool that has the necessary features. See generator documentation for details. The if() command gained new boolean comparison operations LESS_EQUAL , GREATER_EQUAL , STRLESS_EQUAL , STRGREATER_EQUAL , VERSION_LESS_EQUAL , and VERSION_GREATER_EQUAL . The try_compile() command source file signature now honors configuration-specific flags (e.g. CMAKE__FLAGS_DEBUG ) in the generated test project. Previously only the default such flags for the current toolchain were used. See policy CMP0066 . Toolchain files may now set CMAKE_EXE_LINKER_FLAGS_INIT , CMAKE_SHARED_LINKER_FLAGS_INIT , and CMAKE_MODULE_LINKER_FLAGS_INIT variables to initialize the CMAKE_EXE_LINKER_FLAGS , CMAKE_SHARED_LINKER_FLAGS , and CMAKE_MODULE_LINKER_FLAGS cache entries the first time a language is enabled in a build tree. CTest now supports test fixtures through the new FIXTURES_SETUP , FIXTURES_CLEANUP and FIXTURES_REQUIRED test properties. When using regular expressions or rerun-failed to limit the tests to be run, a fixture s setup and cleanup tests will automatically be added to the execution set if any test requires that fixture. We no longer provide Linux i386 binaries for download from cmake.org for new versions of CMake. Vim support files cmake-indent.vim , cmake-syntax.vim , and cmake-help.vim have been removed in favor of the files now provided from the vim-cmake-syntax project. Support for building CMake itself with some compilers was dropped: Visual Studio 7.1 and 2005 superseded by VS 2008 and above MinGW.org mingw32 superseded by MSYS2 mingw32 and mingw64 CMake still supports generating build systems for other projects using these compilers.