CMake ***** Introduction ============ CMake is a cross-platform, open-source build system generator. For full documentation visit the `CMake Home Page`_ and the `CMake Documentation Page`_. The `CMake Community Wiki`_ also references useful guides and recipes. .. _`CMake Home Page`: https://cmake.org .. _`CMake Documentation Page`: https://cmake.org/documentation .. _`CMake Community Wiki`: https://gitlab.kitware.com/cmake/community/-/wikis/home CMake is maintained and supported by `Kitware`_ and developed in collaboration with a productive community of contributors. .. _`Kitware`: https://www.kitware.com/cmake License ======= CMake is distributed under the OSI-approved BSD 3-clause License. See `Copyright.txt`_ for details. .. _`Copyright.txt`: Copyright.txt Building CMake ============== Supported Platforms ------------------- * Microsoft Windows * Apple macOS * Linux * FreeBSD * OpenBSD * Solaris * AIX Other UNIX-like operating systems may work too out of the box, if not it should not be a major problem to port CMake to this platform. Please post to the `CMake Discourse Forum`_ to ask if others have had experience with the platform. .. _`CMake Discourse Forum`: https://discourse.cmake.org Building CMake with CMake ------------------------- You can build CMake as any other project with a CMake-based build system: run an already-installed CMake on this source tree with your preferred generator and options. Then build it and install it. To build the documentation, install `Sphinx`_ and configure CMake with ``-DSPHINX_HTML=ON`` and/or ``-DSPHINX_MAN=ON`` to enable the "html" or "man" builder. Add ``-DSPHINX_EXECUTABLE=/path/to/sphinx-build`` if the tool is not found automatically. To run the test suite, run ``ctest`` in the CMake build directory after building. See the `CMake Testing Guide`_ for details. .. _`Sphinx`: https://sphinx-doc.org .. _`CMake Testing Guide`: Help/dev/testing.rst Building CMake from Scratch --------------------------- UNIX/Mac OSX/MinGW/MSYS/Cygwin ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You need to have a C++ compiler (supporting C++11) and a ``make`` installed. Run the ``bootstrap`` script you find in the source directory of CMake. You can use the ``--help`` option to see the supported options. You may use the ``--prefix=`` option to specify a custom installation directory for CMake. Once this has finished successfully, run ``make`` and ``make install``. For example, if you simply want to build and install CMake from source, you can build directly in the source tree:: $ ./bootstrap && make && sudo make install Or, if you plan to develop CMake or otherwise run the test suite, create a separate build tree:: $ mkdir build && cd build $ ../bootstrap && make Windows ^^^^^^^ There are two ways for building CMake under Windows: 1. Compile with MSVC from VS 2015 or later. You need to download and install a binary release of CMake. You can get these releases from the `CMake Download Page`_. Then proceed with the instructions above for `Building CMake with CMake`_. 2. Bootstrap with MinGW under MSYS2. Download and install `MSYS2`_. Then install the required build tools:: $ pacman -S --needed git base-devel mingw-w64-x86_64-gcc and bootstrap as above. .. _`CMake Download Page`: https://cmake.org/download .. _`MSYS2`: https://www.msys2.org/ Reporting Bugs ============== If you have found a bug: 1. If you have a patch, please read the `CONTRIBUTING.rst`_ document. 2. Otherwise, please post to the `CMake Discourse Forum`_ and ask about the expected and observed behaviors to determine if it is really a bug. 3. Finally, if the issue is not resolved by the above steps, open an entry in the `CMake Issue Tracker`_. .. _`CMake Issue Tracker`: https://gitlab.kitware.com/cmake/cmake/-/issues Contributing ============ See `CONTRIBUTING.rst`_ for instructions to contribute. .. _`CONTRIBUTING.rst`: CONTRIBUTING.rst