jrl-cmakemodules provide functions to factorize and write more reliable CMake code.
It is used by teams at CNRS, LAAS/HPP, JRL and Inria, but can be integrated in any project.
The new modules available in the v2 folder aims to modernize the current approach by providing a set of utility functions (opt-in) instead of a framework approach.
The API documentation for the v2 api is available here.
We provide a Python version management script to automate version synchronization across your project files (such as package.xml, pyproject.toml, pixi.toml, CMakeLists.txt, CHANGELOG.md, etc.).
To install jrl-release globally using uv:
uv tool install jrl-cmakemodules-scripts --from git+https://github.com/jrl-umi3218/jrl-cmakemodules.gitAlternatively, if you have cloned the repository locally, run this from the repo root:
uv tool install --editable .or with pip:
pip install -e .Once installed, run jrl-release from the root of your project:
# Check if version files agree
jrl-release --check-version
# Bump the patch, minor, or major version
jrl-release --bump patch
jrl-release --bump minor
# Update version to a specific string
jrl-release --update-version 1.2.3Please see the documentation on the wiki for more information.
You can also checkout the more complete documentation of the modules.
We currently support CMake >= 3.22
This project use pre-commit and pre-commit.ci.
You can get a nice documentation directly on those 2 projects, but here is a quickstart:
# install pre-commit:
python -m pip install pre-commit
# run all hooks on all files:
pre-commit run -a
# run automatically the hooks on the added / modified files, when you try to commit:
pre-commit install