If you want to add a new module to CMake, then you must volunteer to
maintain it, or find someone that will. See the Call for
announcement on the mailing list. This page contains a list of Module
maintainer volunteers, and instructions on how to become a maintainer.
Please DO NOT ADD a Bug
entry for a new Module request. Instead, volunteer to become a module
maintainer. Module maintainers get developer access (see
Do not write find modules for packages that themselves build with
CMake. Instead provide a CMake package configuration file with the
package itself. See our tutorials on CMake
Please follow these steps to become a module maintainer:
Create a Kitware GitLab
account for access to the issue tracker. Use a meaningful name
rather than a handle or alias. We need to be able to assign issues
to you when they are related to your module.
Create a CDash account and subscribe to
the CMake project
to receive notification when your changes may have broken something.
In your profile add "Your Name" as it appears in your "git config user.name" as a repository credential.
Subscribe to the CMake Developers Mailing
introduce yourself and the module. Wait for response, discussion,
and acceptance before proceeding to the following steps.
at the top of the source tree for contribution instructions.
Update the list below to advertise yourself as a contributor.
If you are taking over maintenance of an existing module, please ensure
that all changes maintain compatibility:
The set of documented output variables such as XXX_INCLUDE_DIRS
must be maintained. If you add new output variables that supersede
existing ones please document the old names as for compatibility
only but still provide them.
The set of (un)documented input variables such as XXX_INCLUDE_DIR
must be maintained. These variables typically appear as the first
argument to commands like find_path which save them in the cache
and allow the user to set them on the command line or interactively.
Build scripts may set them to convince find modules to pick up the
desired location for a package. If you change the way a package is
found such that a cache variable is no longer needed, check whether
the value is set and use it as a hint for the new approach.
Here is a list of "repositories" of 3rd party CMake modules, so
maintainers can check for already existing modules etc.