- fmt
- Catch2
- boost (due to the size of the library we require the lib using CMakeList.txt instead of using git submodules)
- Build a docker image aoc2022cpp:
docker build --pull --rm -f "Dockerfile" -t aoc2022cpp:latest "."
- Run your image as an interactive container using:
docker run -i -t aoc2022cpp:latest
- Compile the code using the following commands:
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_MSAN=ON .. && make -j$(nproc) && cd ..
- Static check with cppcheck:
cppcheck --enable=all --suppress=unusedFunction --std=c++20 -I src/include/ src/
- Dynamic check with Catch2 and valgrind:
cd build/test/ && valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=valgrind-out.txt ./tests && cd ../..
- Run the tests with Catch2:
cd build/test/ && ./tests && cd ../..