Files
CMake/Help/dev
Ben Boeckel 386465bf83 cmTarget: add support for C++ module fileset types
C++ modules have two variants which are of importance to CMake:

  - `CXX_MODULES`: interface modules (those using `export module M;`,
    `export module M:part;`, or `module M:internal_part;`)
  - `CXX_MODULE_HEADER_UNITS`: importable header units

Creating C++ modules or partitions are *not* supported in any other
source listing. This is because the source files must be installed (so
their scope matters), but not part of usage requirements (what it means
for a module source to be injected into a consumer is not clear at this
moment). Due to the way `FILE_SET` works with scopes, they are a perfect
fit as long as `INTERFACE` is not allowed (which it is not).
2022-06-16 10:28:34 -04:00
..
2021-11-23 10:11:25 -05: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 Testing Process`_ drives integration testing.

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

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

CMake developer documentation is provided by the following documents:

* The `CMake Source Code Guide`_.
* The `CMake Documentation Guide`_.
* The `CMake Experimental Features Guide`_.

.. _`CMake Source Code Guide`: source.rst
.. _`CMake Documentation Guide`: documentation.rst
.. _`CMake Experimental Features Guide`: experimental.rst

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

CMake maintainer documentation is provided by the following documents:

* The `CMake Maintainer Guide`_.

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