Helps simple and consistent third-party dependency resolution.
  • CMake 99.4%
  • Shell 0.6%
Find a file
2026-10-04 19:13:40 +02:00
.forgejo/workflows Makes sure that the license linked in di published documentation matches the one in the repository. 2026-10-04 19:13:40 +02:00
doc Say that the urls of the pipeline example are placeholders 2026-10-04 19:07:49 +02:00
examples Say that the urls of the pipeline example are placeholders 2026-10-04 19:07:49 +02:00
test Say that the urls of the pipeline example are placeholders 2026-10-04 19:07:49 +02:00
.gitignore Announce the 0.1 release and the unstable database format 2026-10-04 19:02:58 +02:00
build-doc.sh Automate documentation pubblishing to dist-code.mooo.com server 2026-06-09 05:13:56 +02:00
CHANGELOG.md Show data and tools in a pipeline and widen the scope of the guide 2026-10-04 18:52:35 +02:00
grab.cmake Reject a second inclusion of Grab and document the meta component 2026-10-04 11:42:44 +02:00
libs.db.csv Add Catch2 to the libraries database. 2026-06-02 23:05:12 +02:00
LICENSE First commit. 2026-06-02 16:53:42 +02:00
README.md Announce the 0.1 release and the unstable database format 2026-10-04 19:02:58 +02:00

Grab is a CMake module that makes it easy to include and manage external libraries in your project. Each project pins the versions it builds against in its own library database.

Libraries are only the start: anything that lives in a git repository, such as data and the tools that process it, can be grabbed too. A project can then describe a whole versioned environment, and CMake how its parts work together.

Grab ships with a reference catalog of common libraries. Organizations adapt it in their own fork to list the libraries they approve.


Usage

Please find more details at https://dist-hub.mooo.com/grab.html; here is a taste of how Grab can help you simply manage your dependencies.

Copy Grab from your organization's fork into your project and commit it:

mkdir your-project
cd your-project
git init

git clone --depth 1 --branch v0.1 https://code-hub.mooo.com/gpuoti/grab.git
rm -rf grab/.git
touch CMakeLists.txt

Keep in grab/libs.db.csv the libraries your project uses, at the versions your release builds against. The format of this file will change: it is not stable in version 0.1, but we expect it to stay compatible or convertible. Then include Grab in your CMake configuration:

cmake_minimum_required( VERSION 3.15 )

include( grab/grab.cmake )

project( your-project )

grab( plog )
grab( cxxopts )

License

This project is licensed under the MIT License. See the LICENSE file for details.