CMake Community Modules
Linux Clang | Linux GCC | MacOS Clang | MacOS GCC | Windows M2sys | Windows MSVC | |
---|---|---|---|---|---|---|
Github |
This repository groups some useful CMake Modules
that can be share between different repositories.
Modules can be LOCALE
or REMOTE
:
Local modules are contained within the repository given by URL
in cmmm_modules_list
. If you do not wish to own a separate repository to contain the module, this is the recommended way to do so.
To start, add a module in the repository. This will be the module that will be included by the user. It should consist of a single CMake file.
After adding the module, add a call to cmcm_module
in the Modules List.
Suppose you add a SuperCoolModule.cmake
to modules
. The resulting call in modules/ModulesList.cmake
will look something like this :
cmcm_module(SuperCoolModule.cmake
LOCAL modules/SuperCoolModule.cmake
VERSION 1)
The VERSION
argument is an arbitrary string that is used to invalidate local copies of the module that have been downloaded.
If you have a module that you wish to add, but it is contained in a remote location, you simply need to add the call in the Modules List`:
cmcm_module(MyAwesomeModule.cmake
REMOTE https://some-place.example.com/files/path/MyAwesomeModule.cmake
VERSION 1)
The VERSION
argument is an arbitrary string that is used to invalidate local copies of the module that have been downloaded.
The REMOTE
is a URL
to the file to download for the module. In order for your modification to be accepted into the repository, it must meet certain criteria:
- The URL must use
https
. - The URL must refer to a stable file location. If using a
Git URL
, it should refer to a specific commit, not to a branch.
-
- Color : Defines some colors and text styles.
- CPM : Wrapper for
CPM
the setup-free CMake dependency management. - DefaultInstallPrefix : Set
CMAKE_INSTALL_PREFIX
if it has not been defined before. - Doctest : Use
CPM
to set updoctest
. - Fmt : Use
CPM
to set upfmt
. - GetLatestCMakeVersion : Obtain the CMake's latest version number.
- IXWebSocket : Use
CPM
to set upIXWebSocket
. - MagicEnum : Use
CPM
to set upmagic_enum
. - Missives : Defines the
missive
command to use colored and personalized styles. - OpenSSL : Use
openssl-cmake
https://github.com/flagarde/openssl-cmake to compileOpenSSL
usingCPM
. - Ping : A basic ping for CMake. Test if you are online.
- PreventInSourceBuilds : Prevents building the project from his source directory.
- SourceLocation : Use
CPM
to set upsource_location
. - Spdlog : Use
CPM
to setupspdlog
. - Standards : Set the
CMAKE_C_STANDARD
orCMAKE_CXX_STANDARD
to the required standard. - Testings : Some
CMake
functions to perform some tests inCMake files
. - Toml11 : Use
CPM
to set uptoml11
. - Zlib-ng : Compile
zlib-ng
https://github.com/zlib-ng/zlib-ng usingCPM
.