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 maintainers announcement on the mailing list. This page contains a list of Module maintainer volunteers, and instructions on how to become a maintainer.
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 Packages.
Please follow these steps to become a module maintainer:
- Read the cmake-developer(7) manual section on Modules
- 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 List and introduce yourself and the module. Wait for response, discussion, and acceptance before proceeding to the following steps. See also CONTRIBUTING.rst at the top of the source tree.
- Read our Git instructions. See the account setup instructions to get Git push access. See the development instructions for a workflow summary.
- 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.
- KDE4: https://projects.kde.org/projects/kde/kdelibs/repository/revisions/master/show/cmake/modules
- KDE support e-c-m: https://projects.kde.org/projects/kdesupport/extra-cmake-modules/repository/revisions/master/show/modules
- PlPlot: http://plplot.svn.sourceforge.net/viewvc/plplot/trunk/cmake/modules/
- OpenSceneGraph http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/CMakeModules/
- OpenSync http://svn.opensync.org/branches/3rd-party-cmake-modules/modules/
- Blender: https://svn.blender.org/svnroot/bf-blender/trunk/blender/build_files/cmake/Modules
- NOBODY!!! Please volunteer if you are able and willing. Need new maintainers for these modules:
- Alan W. Irwin, irwin at beluga dot phys dot uvic dot ca
- Tim Burrell (tim dot burrell at gmail dot com) (http://www.dsource.org/projects/cmaked)
- D support
- Marcel Loose, loose at astron dot nl
- Clinton Stimpson clinton at elemtech dot com
- Petr Gotthard, petr dot gotthard at honeywell dot com
- Kovarththanan Rajaratnam, kovarththanan.rajaratnam at gmail dot com
- James Bigler, nvidia.com - jbigler or jamesbigler - gmail dot com
- Clement Creusot - creusot at cs dot york dot ac dot uk
- Benjamin Eikel - cmake at eikel dot org
- Daniele E. Domenichelli - daniele dot domenichelli at gmail dot com
- Nils Gladitz - nilsgladitz at gmail dot com
- CPack WiX Generator
- Raffi Enficiaud - raffi dot enficiaud at free dot fr