Skip to content

SDHCAL/CMakeModules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

57 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“š CMakeCM

GitHub GitHub code size in bytes GitHub repo size Tests Linux Tests MacOS Tests Windows

CMake Community Modules

โœจ Introduction

This repository groups some usefull 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

  • Local :

    • Color : Defines some colors and text styles.
    • DefaultInstallPrefix : Set CMAKE_INSTALL_PREFIX if it has not been defined before.
    • Doctest : Use CPM to setup doctest.
    • Messages : Redefines the message command to use personnalized styles.
    • PreventInSourceBuilds : Prevents building the project from his source directory.
    • Standards : Set the CMAKE_C_STANDARD or CMAKE_CXX_STANDARD to the required standard.
    • Testings : Some CMake functions to perform some tests in CMake files.
    • CPM : Wrapper to CPM, the Setup-free CMake dependency management.
    • Ping : A basic ping for CMake. Test if you are online.

About

๐Ÿ“ CMake Modules for SDHCAL software compilation

Topics

Resources

License

Stars

Watchers

Forks

Contributors