- Updated README dependencies table

- Separated git command in dependencies for installing submodules
This commit is contained in:
2026-01-02 16:21:40 -05:00
parent 6c78ecbeb1
commit 93b58ea197

View File

@@ -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:
`<APP_NAME>_`. 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: `<APP_NAME>_<DIRECTORY_PATH>_<FILE_NAME>_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: `<APP_NAME>_<DIRECTORY_PATH>_<FILE_NAME>_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:
<br><br>
<a id="f1"></a>
<sup>[1]</sup> If we were to use the exception paradigm for all erroneous behaviour, we couldn't guarantee
<sup>[[1]](#f1)</sup> 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. |
<br>
<a id="dependencies"></a>
### 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 |
| glew | OpenGL Extension Wrangler, necessary for modern OpenGL |
| Volk <sup>[__*__](#opt)</sup> | 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 | Doxygen is required for building the documentation for fennec. This is an optional dependency |
| Graphviz | Graphviz is a required dependency for Doxygen |
| Doxygen <sup>[__*__](#opt)</sup> | Doxygen is required for building the documentation for fennec. |
| Graphviz <sup>[__*__](#opt)</sup> | Graphviz is a required dependency for Doxygen |
<a id="opt"></a>
<sup>[__*__](#opt)</sup> Optional Dependency
<br>
@@ -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
```
<a id="debian"></a>
#### 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: