Files
cmake/Help/dev
Taylor Braun-Jones a8872df649 devcontainer: Add clang, gfortran, and valgrind
Provide `clang` for developers who prefer to build with it rather than
with the default `g++`, and `valgrind` to run CMake and its tests under a
memory checker.  The sanitizer runtimes already come with both
compilers, so building with `-fsanitize=` needs nothing installed.

Name `gfortran` as well, without which Clang cannot link at all.  Ubuntu
26.04 carries a Fortran-only `gcc-16` build that provides no C++ standard
library, `libopenmpi-dev` lists `gfortran-16` first among the
alternatives it accepts, and Clang selects the newest GCC installation it
finds.  Naming `gfortran` lets `apt` satisfy that dependency with
`gfortran-15` instead, so the GCC 16 installation never appears.

Suggested-by: Tyler Yankee <tyler.yankee@kitware.com>
2026-09-08 16:25:11 +00:00
..
2026-03-21 08:35:50 +11:00

CMake Development
*****************

This directory contains documentation about development of CMake itself.
It is not part of the user documentation distributed with CMake.

Contributor Instructions
========================

See `CONTRIBUTING.rst`_ for instructions to contribute changes.

The process for contributing changes is the same whether or not one
has been invited to participate directly in upstream development.

.. _`CONTRIBUTING.rst`: ../../CONTRIBUTING.rst

Upstream Development
====================

CMake uses `Kitware's GitLab Instance`_ to manage development, review, and
integration of changes.  The `CMake Repository`_ holds the integration
branches and tags.  Upstream development processes are covered by the
following documents:

* The `CMake Review Process`_ manages integration of changes.
* The `CMake Integration Testing`_ infrastructure tests changes
  before and after merging.

.. _`Kitware's GitLab Instance`: https://gitlab.kitware.com
.. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake
.. _`CMake Review Process`: review.rst
.. _`CMake Integration Testing`: integration-testing.rst

Developer Documentation
=======================

CMake developer documentation is provided by the following documents:

* The `CMake Dev Container Guide`_.
* The `CMake Source Code Guide`_.
* The `CMake Documentation Guide`_.
* The `CMake Testing Guide`_.
* The `CMake Experimental Features Guide`_.
* The `CMake Debugging Guide`_.
* The `CMake Diagnostics Guide`_.

.. _`CMake Dev Container Guide`: devcontainer.rst
.. _`CMake Source Code Guide`: source.rst
.. _`CMake Documentation Guide`: documentation.rst
.. _`CMake Testing Guide`: testing.rst
.. _`CMake Experimental Features Guide`: experimental.rst
.. _`CMake Debugging Guide`: debug.rst
.. _`CMake Diagnostics Guide`: diagnostics.rst

Maintainer Documentation
========================

CMake maintainer documentation is provided by the following documents:

* The `CMake Maintainer Guide`_.

.. _`CMake Maintainer Guide`: maint.rst