A dead simple, modern package manager for C.
cpkg
is an all-in-one wrapper for tools like gcc
, clang
, doxygen
and clang-format
.
It automatically detects which are present on your system, allowing you to use them with one simple cli.
Inspired by the convenience of modern tools like cargo
and bun
.
cpkg init
cpkg run
You can create a project with new
or init
, and then run /src/main.c
with cpkg run
or cpkg build
.
You can run tests located in /src/*.test.c
and /tests/*.c
with cpkg test
.
You can add local paths with cpkg add <name> --path /path/to/dependency
and git dependencies with cpkg add <name> --git https://github.com/nothings/stb/tree/master
.
Project files can be generated using cpkg generate
.
This creates a project file that acts as if you ran cpkg build
, without cpkg
.
Currently only supports basic Makefile
generation
cpkg
supports other functionalities:
- Formatting using
clang-format
- Documenting using
doxygen
You can download the cpkg
binary from the releases (or a nightly build from actions)
If you have cargo
you can install from crates.io.
cargo install cpkg
Or clone the repository and install it locally.
git clone https://github.com/DvvCz/cpkg
cargo install --path cpkg
The other options are preferred, but there is an install script.
curl -fsSL https://raw.githubusercontent.com/DvvCz/cpkg/master/install.sh | bash
You can easily upgrade your cpkg
binary using the cpkg upgrade
command.