-
Notifications
You must be signed in to change notification settings - Fork 3
Basic Guide
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.
You need to write a config_linux.toml for linux (and android if compiling inside tmux) and config_win32.toml for windows.
The config has two top level fields - build and and an array of targets
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 |
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 |
The cli tool is used to build the project. It has the following options
Usage: builder_cpp [OPTIONS] [COMMAND]
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) |
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 |
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 |