75 lines
1.4 KiB
Markdown
75 lines
1.4 KiB
Markdown
# Pallet
|
|
|
|
Pallet is a project manager and build system for C inspired by Rust's Cargo.
|
|
|
|
This is a toy project not meant to be taken very seriously.
|
|
|
|
## Requirements for Use
|
|
|
|
[GCC](https://en.wikipedia.org/wiki/GNU_Compiler_Collection) is recommended as the compiler installed for `Pallet` projects.
|
|
|
|
You can define a different `gcc` compatible compiler instead per-project by editing `Pallet.toml`:
|
|
|
|
```toml
|
|
name = "my-app"
|
|
default_build = "debug"
|
|
compiler = "clang"
|
|
|
|
[[build]]
|
|
name = "debug"
|
|
args = [
|
|
"-g",
|
|
"-O0",
|
|
]
|
|
|
|
[[build]]
|
|
name = "release"
|
|
args = [
|
|
"-DNDEBUG",
|
|
"-O3",
|
|
]
|
|
```
|
|
|
|
## Usage
|
|
|
|
- `pallet new <project>`: initializes a new project at `project`
|
|
- `pallet init`: initializes a new project in the current directory
|
|
- `pallet run`: runs the local project
|
|
- `pallet build`: builds the local project
|
|
- `pallet clean`: cleans the local project's build artifacts
|
|
|
|
## Configuring
|
|
|
|
You can configure options by editing `Pallet.toml`
|
|
|
|
### Options
|
|
|
|
- `name`: the name of the output executable
|
|
- `default_build`: the name of the default build profile to use
|
|
|
|
Additionally, one can define one or more build profiles with the following parameters:
|
|
|
|
- `name`: the name of the build profile
|
|
- `args`: the args to supply to gcc when using this profile
|
|
|
|
For example:
|
|
|
|
```toml
|
|
name = "my-app"
|
|
default_build = "debug"
|
|
|
|
[[build]]
|
|
name = "debug"
|
|
args = [
|
|
"-g",
|
|
"-O0",
|
|
]
|
|
|
|
[[build]]
|
|
name = "release"
|
|
args = [
|
|
"-DNDEBUG",
|
|
"-O3",
|
|
]
|
|
```
|