______ ______ ______
/\ ___\ /\ __ \ /\ __ \
\ \ __\ \ \ \/\ \ \ \ \/\ \
\ \_\ \ \_____\ \ \_____\
\/_/ \/_____/ \/_____/
The foo is a personal roadmap for learning programming, like a demo. Its main purpose is to use the C++ language to implement or improve some common basic functions. It also contains detailed comments for easy summary and archive. The goal is to develop good programming habits while improving programming skills with best practices.
- Specific application of the following:
- Related to algorithm.
- Related to design pattern.
- Related to data structure.
- Related to numeric.
- Other utility functions.
-
Get the code:
git clone https://github.com/ryftchen/foo.git
-
Prepare the environment:
docker-compose -f foo/docker/docker-compose.yml up -d docker exec -it -w /workspaces/foo foo_dev /bin/bash
For environment dependencies and container construction, see the Compose file.
The build script contains a number of parameters, please use the --help option first for detailed instructions.
./script/build.sh --help
-
Build by default:
./script/build.sh
The binary and the libraries will be created in the
./build
directory. Then execute the binary, such as:./build/bin/foo --help
Configuration information is stored in
$HOME/.foo/config/foo.json
, and the executed log is also written to$HOME/.foo/log/foo.log
. -
The parameters are provided for building or static analysis. Build with options such as --lint, --query, etc.
The run script contains a number of parameters, please use the --help option first for detailed instructions.
./script/run.py --help
-
Run all cases by default:
./script/run.py
Also, add the --build option to support building before running. The result of running will also be written to
./report/foo_run.log
and the analysis will be generated in./report/foo_run.report
. -
The parameters are provided for running or dynamic analysis. Run with options such as --check cov, --check mem, etc.
The project documentation can be found on the GitHub Pages. When using local documentation via script, ./document
is used as the generation directory.
Copyright (c) 2022-2024 ryftchen. Released under the MIT License.