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.

It can compile/build the project. No need of MakeFiles. It can search for all the (.c & .cpp) files the src directory of the project. It basically runs compile, linking commands for you.

How it works

  • 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
│   ├── pkg-index.json
│   └── cache/ 
├── include/           # Include files
├── lib/               # Libraries
│   └── pkgconfig/
├── debug/
│   ├── lib/           # Debug libraries
│   │   └── pkgconfig/
│   └── bin/           # 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 structure

[project]
name = "myapp"
description = "example description"
version = "0.0.1"

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

[build]     # additional flags for build release
flags = [ "-Wl,--no-undefined",] 

[[build.target]]    # for 64 bit windows machine
arch = "x86_64"
os = "windows"

[[build.target]]    # for 64 bit linux machine
arch = "x86_64"
os = "linux"

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

[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.8.tar.gz (12.9 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: candie_kit-1.1.8.tar.gz
  • Upload date:
  • Size: 12.9 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.8.tar.gz
Algorithm Hash digest
SHA256 ec9cc2cdd77ba6fa2f0bcc24f6568c6b30afd47218457a42fdc8bf46e56af142
MD5 a961829683c66a1e5e753091abcfe5bc
BLAKE2b-256 64ac938808adaad2c61322da64d095a641d99a4440a543d857a26a7c398ae5bc

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