69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
# FOSS-VG Build System
|
|
|
|
Yeah, I was annoyed at make. Sorry. -BodgeMaster
|
|
|
|
## Aliases
|
|
|
|
The shell environment provided in the project's base directory contains
|
|
aliases that can be invoked from anywhere.
|
|
This is useful if you, for example, `cd src/lib` and want to do a quick
|
|
rebuild, you can just run `build` and it will take care of switching
|
|
directories back and forth.
|
|
|
|
Where necessary, the "aliases" are shell functions instead of literal aliases
|
|
to accommodate for inline environment variables.
|
|
|
|
Provided aliases:
|
|
- `setup_project` runs `scripts/setup_project.sh`
|
|
- `build` runs `scripts/build.sh`
|
|
- `run_tests` runs `scripts/test.sh` (we can't alias `test` because that's an
|
|
actual POSIX command and it would break a lot of things)
|
|
- `clean` runs `scripts/clean.sh`
|
|
- `clean_dependencies` runs `scripts/clean_dependencies.sh`
|
|
|
|
|
|
## setup_project
|
|
|
|
Cleans the project and its dependencies first, ensuring the project is in
|
|
a known state, then downloads and extracts dependencies.
|
|
|
|
This will probably do more in the future (for example compile dependencies
|
|
that need to be compiled).
|
|
|
|
|
|
# build
|
|
|
|
Builds the project. This will compile all the things in `src/` except for
|
|
what is in `src/test/`.
|
|
|
|
Checks for endianness if endianness header is missing.
|
|
Builds the endianness check if that is missing as well.
|
|
|
|
Accepted environment variables:
|
|
- `CXX`: override the default compiler
|
|
- `CXXFLAGS`: override the default compiler flags, must at least specify
|
|
the C++ version
|
|
- `SINGLE`: if set to `yes`, causes the build script to run in
|
|
single-threaded mode
|
|
|
|
|
|
# test / run_tests
|
|
|
|
Builds and runs the unit tests.
|
|
|
|
Accepted environment variables:
|
|
- `CXX`: override the default compiler
|
|
- `CXXFLAGS`: override the default compiler flags, must at least specify
|
|
the C++ version
|
|
|
|
|
|
# clean
|
|
|
|
Removes and re-creates `bin/`. Also removes the endianness header and
|
|
the endianness check binary.
|
|
|
|
|
|
# clean_dependencies
|
|
|
|
Removes and re-creates `dependencies/`.
|