Skip to content

Basic Guide

Spandan Roy edited this page Apr 29, 2024 · 8 revisions

BUILDER_CPP WIKI


Here you can find out about both the cli tool and the toml table reference. You can also find details about the cli tool by running builder_cpp -h or builder_cpp --help. The project can have only one binary and as many libraries as you like.

TOML file reference


You need to write a config_linux.toml for linux (and android if compiling inside tmux) and config_win32.toml for windows.

The details of various fields are listed below

The config has two top level fields - build and and an array of targets

build Section

Field Type Details Valid entries Optional
compiler string Specifies the compiler to be used gcc, clang, g++, clang++ No
cstandard string Specifies the C standard to be used c89, c99, c11, c17,... Yes
cppstandard string Specifies the C++ standard to be used c++98, c++03, c++11,... Yes
packages string github repo of the package in the format "author/repo, branch" any Yes
pre_build string Command to run before every build any Yes
post_build string Command to run before every build any Yes

targets Section

This section defines individual build targets. You can have multiple targets with different configurations. It is a toml array.

Field Type Details Valid entries Optional
name string Name of the target any (for dll must start with lib No
src string Path to the source code directory for the target any No
include_dir string Path to the directory containing header files for the target any No
type string Specifies the type of target exe, dll No
cflags string Compiler flags used for building the target any (can be an empty string) No
libs string External libraries to link against, separated by spaces any (can be an empty string) No
deps array of strings Names of other targets within the same toml file that this target depends on any (can be an empty array) Yes

CLI tool


The cli tool is used to build the project. It has the following options

Usage: builder_cpp [OPTIONS] [COMMAND]

Commands:

Command Description
init Initialize a new project Defaults to C++ if no language is specified
config Configuration settings (Details below)
help Print this message or the help of the given subcommand(s)

Options:

Short Long Description
-b --build Build your project
-c --clean Clean the obj and bin intermediates
-r --run Run the executable
--bin-args <BIN_ARGS>... Arguments to pass to the executable when running
--gen-cc Generate compile_commands.json
--gen-vsc Generate .vscode/c_cpp_properties.json
--clean-packages Clean packages
--update-packages Update packages
--restore-packages Restore packages
-h --help Print help
-V --version Print version

Config

Usage: builder_cpp config <PARAMETER> <VALUE>

This set the default compiler, language and license for the init command

Parameter Value Description Valid entries
default_compiler compiler Sets the default compiler to use gcc, clang
default_language language Sets the default language to use c, cpp
license path/to/license/file Sets the license to use any