From 93b58ea197331d3fe727c23ee596c49d015bd467 Mon Sep 17 00:00:00 2001 From: Medusa Slockbower Date: Fri, 2 Jan 2026 16:21:40 -0500 Subject: [PATCH] - Updated README dependencies table - Separated git command in dependencies for installing submodules --- README.md | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 441a63f..d92fa35 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ * [Coding Standards](#coding-standards) * [Building from Source](#building-from-source) * [Building from Terminal](#building-from-terminal) + * [Git](#git) → `git` * [Debian](#debian) → `apt` * [Arch](#arch) → `pacman` * [Fedora](#fedora) → `dnf` @@ -65,8 +66,8 @@ fennec Standards: `_`. Macros that wrap C-Style functions may use normal `snake_case`. - Header Guards should be implemented using `#ifndef`, `#define`, and `#endif` for portability. - The naming convention for Header Guards is as follows: `___H`. - I.E. the engine file `fennec/lang/utility.h` has the Header Guard `FENNEC_LANG_UTILITY_H`. + The naming convention for Header Guards is as follows: `___H`, + e.g. the engine file `fennec/lang/utility.h` has the Header Guard `FENNEC_LANG_UTILITY_H`. * Helper Functions, in the case of classes, should be private. In the case of global functions, helpers should be placed in a similarly named file in a subdirectory and namespace @@ -80,7 +81,7 @@ fennec Standards:

-[1] If we were to use the exception paradigm for all erroneous behaviour, we couldn't guarantee +[[1]](#f1) If we were to use the exception paradigm for all erroneous behaviour, we couldn't guarantee that the state will not be corrupted when an exception is thrown. The behaviour afterward is undefined because of this, and we also don't really know when, how, or where that exception will be handled. The assertion paradigm is better at handling this because you are defining erroneous behaviour in the @@ -127,17 +128,24 @@ is also a viable IDE but involves some extra setup. | fennecdocs-clean | Cleans the generated html documentation files. | | fennec-test | Test suite for verifying engine functionality. | - +
-| Dependency | Notes | -|-------------------|----------------------------------------------------------------------------------------------------------| -| C/C++ Compiler | GCC/G++ is the compiler that fennec is designed around, however, Clang, MSVC, and MinGW may also be used | -| CMake | The build manager used by the engine | -| glew | OpenGL Extension Wrangler, necessary for modern OpenGL | -| A build system | Any build system will work, however, `build.sh` uses Ninja by default. | -| A memory debugger | Any memory debugger will work, however, `test.sh` uses Valgrind by default. | -| Doxygen | Doxygen is required for building the documentation for fennec. This is an optional dependency | -| Graphviz | Graphviz is a required dependency for Doxygen | + +### Dependencies + +| Dependency | Notes | +|-----------------------------------|----------------------------------------------------------------------------------------------------------| +| C/C++ Compiler | GCC/G++ is the compiler that fennec is designed around, however, Clang, MSVC, and MinGW may also be used | +| CMake | The build manager used by the engine | +| Volk [__*__](#opt) | The Vulkan loader Volk, includes necessary headers for Vulkan. | +| A build system | Any build system will work, however, `build.sh` uses Ninja by default. | +| A memory debugger | Any memory debugger will work, however, `test.sh` uses Valgrind by default. | +| Doxygen [__*__](#opt) | Doxygen is required for building the documentation for fennec. | +| Graphviz [__*__](#opt) | Graphviz is a required dependency for Doxygen | + + + +[__*__](#opt) Optional Dependency
@@ -154,6 +162,12 @@ build scripts to use another build manager, see the [CMake documentation for ava using specific toolchains for specific platforms that necessitate this. The primary examples would be Android and iOS. If you wish to build for Windows *and* Linux, your options are WSL or Dual Boot. I recommend Dual Boot over WSL. +#### Git + +Install git dependencies with the following command: +```shell +git submodule update --force --init --recursive --remote +``` #### Debian @@ -161,7 +175,6 @@ If you wish to build for Windows *and* Linux, your options are WSL or Dual Boot. On Debian-based distributions, you can install dependencies using the following command: ```shell sudo apt install build-essential cmake ninja-build valgrind libvulkan-volk-dev vulkan-validationlayers -git submodule update --force --init --recursive --remote ``` for Doxygen run: @@ -175,7 +188,6 @@ sudo apt install doxygen graphviz On Arch-based distributions, you can install dependencies using the following command: ```shell sudo pacman -S base-devel cmake ninja valgrind vulkan-devel -git submodule update --force --init --recursive --remote ``` for Doxygen run: @@ -189,7 +201,6 @@ sudo pacman -S doxygen graphviz On Fedora-based distributions, you can install dependencies using the following command: ```shell sudo dnf install build-essential g++ cmake ninja-build valgrind vulkan-volk-devel vulkan-validation-layers -git submodule update --force --init --recursive --remote ``` for Doxygen run: