Skip to main content

A CLI Build tool for C/C++ projects

Project description

Candie

A simple build tool for C/C++ projects that eliminates the need of using Makefiles.

!Important Note
It needs zig and vcpkg installed in your system. If not installed most of its features wont work.

Installation

Run this command in you terminal, to install using the python pip package manager.

pip install candie.kit

What it does.

In the project directory.

  • It keeps track of source (.c, .cpp) files.
  • Recompiles the files that has been modified or newly added.
  • Caches the files which has been compiled so it does not have to compile it again if its not modified.

Project structure.

The candie create <project_name> will create the project in the directory where you run the command.

├── .candie/           # Dont edit these files
│   ├── pkg-index.json/
│   └── log-file.json/ 
├── include/           # Header files
├── lib/               # Libraries
│   └── pkgconfig/
├── debug/
│   ├── lib/           # Debug libraries
│   │   └── pkgconfig/
│   └── bin/
│       ├── cache/     # Cached object files
│       └── output/    # Debug binary
├── build/             # Release binary
├── src/               # Source files
└── proj-config.toml   # Config file

You can create .c and .cpp files in the src directory.

Make & Run.

You can create an executable for debugging by running the candie make command. Then run that executable by running candie run command.

Packages.

Adding and Removing vcpkg packages is pretty easy.

candie add <package_name> add the package.
candie remove <package_name> remove the package.

It will just copy the include and lib files of the package from the vcpkg installed directory to the project directory.

Build.

To build the project for multiple platforms. you can add more targets to the project config file [Build] table.

Project config file proj-config.toml

[Project]
name = "example-app"
description = "example project"
version = "0.0.1"

                              # 👇 additional flags
[debug]
Cflags = "-Wall -Wextra -g"   # compiler flags
Lflags = "-Wl,--no-undefined" # linker flags

[build]
flags = "-Wl,--no-undefined"  # build cmd flags

                              # 👇 build targets can be added like this
[[build.target]]              
arch = "x86_64"               # 64 bit architecture
os = "linux"                  # for linux machine

[[build.target]]              
arch = "i686"                 # 32 bit architecture
os = "linux"                  # for windows os

[[build.target]]              
arch = "aarch64"              # ARM 64 bit architecture
os = "macos"                  # for mac os

[requirements]              # this will be added by build tool you dont have to edit these
[[requirements.package]]    # installed packages will be listed like this
name = "package-name"
description = "package-description"
url = "package-website-url"
version = "package-version"

...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

candie_kit-1.1.5.tar.gz (11.6 kB view details)

Uploaded Source

File details

Details for the file candie_kit-1.1.5.tar.gz.

File metadata

  • Download URL: candie_kit-1.1.5.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for candie_kit-1.1.5.tar.gz
Algorithm Hash digest
SHA256 7ae59e5a81addad8d93be3db8e55a5fe2ec1f812deff99f1402141374009f8a4
MD5 aee9182432de23017b5dfb312834546d
BLAKE2b-256 3ce5c3940a2aed827218869047a89bdb9bfaa4b92e311f4bc88fd8d0612893e0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page