Skip to content

flagarde/CMakeCM

Repository files navigation

πŸ“š CMakeCM GitHub GitHub code size in bytes GitHub repo size

CMake Community Modules

πŸ§ͺ Tests

Linux Clang Linux GCC MacOS Clang MacOS GCC Windows M2sys Windows MSVC
Github Linux Clang Linux GCC MacOS Clang MacOS GCC Windows MSYS2 Windows MSVC

✨ Introduction

This repository groups some useful CMake Modules that can be share between different repositories.

πŸ“ Create a Modules List

Modules can be LOCALE or REMOTE :

βž• Adding a "Local" Module

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.

βž• Adding a "Remote" Module

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:

  1. The URL must use https.
  2. 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.

πŸ“š Module Lists

About

πŸ“š CMake Community Modules

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published