6 releases (breaking)
0.12.1 | Sep 23, 2024 |
---|---|
0.10.0 | May 16, 2024 |
0.9.1 | Apr 21, 2024 |
0.6.5 | Apr 7, 2024 |
0.4.0 | Mar 25, 2024 |
#1008 in Development tools
37KB
1K
SLoC
cpkg
A dead simple, modern package manager for C.
What is cpkg?
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
.
Usage
cpkg init
cpkg run
Features
🧑💻 Project Runner
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
.
📦 Package Management
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 File Generation
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
🛠️ Other Components
cpkg
supports other functionalities:
- Formatting using
clang-format
- Documenting using
doxygen
⏬ Installation
📩 Releases
You can download the cpkg
binary from the releases (or a nightly build from actions)
📦 Cargo
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
🛜 cURL script
The other options are preferred, but there is an install script.
curl -fsSL https://raw.githubusercontent.com/DvvCz/cpkg/master/install.sh | bash
🔄 Upgrading
You can easily upgrade your cpkg
binary using the cpkg upgrade
command.
Dependencies
~18–33MB
~535K SLoC