- Updated README dependencies table
- Separated git command in dependencies for installing submodules
This commit is contained in:
31
README.md
31
README.md
@@ -16,6 +16,7 @@
|
|||||||
* [Coding Standards](#coding-standards)
|
* [Coding Standards](#coding-standards)
|
||||||
* [Building from Source](#building-from-source)
|
* [Building from Source](#building-from-source)
|
||||||
* [Building from Terminal](#building-from-terminal)
|
* [Building from Terminal](#building-from-terminal)
|
||||||
|
* [Git](#git) → `git`
|
||||||
* [Debian](#debian) → `apt`
|
* [Debian](#debian) → `apt`
|
||||||
* [Arch](#arch) → `pacman`
|
* [Arch](#arch) → `pacman`
|
||||||
* [Fedora](#fedora) → `dnf`
|
* [Fedora](#fedora) → `dnf`
|
||||||
@@ -65,8 +66,8 @@ fennec Standards:
|
|||||||
`<APP_NAME>_`. Macros that wrap C-Style functions may use normal `snake_case`.
|
`<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.
|
- 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`.
|
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`.
|
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.
|
* 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
|
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>
|
<br><br>
|
||||||
|
|
||||||
<a id="f1"></a>
|
<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
|
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.
|
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
|
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. |
|
| fennecdocs-clean | Cleans the generated html documentation files. |
|
||||||
| fennec-test | Test suite for verifying engine functionality. |
|
| fennec-test | Test suite for verifying engine functionality. |
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
<a id="dependencies"></a>
|
<a id="dependencies"></a>
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
| Dependency | Notes |
|
| Dependency | Notes |
|
||||||
|-------------------|----------------------------------------------------------------------------------------------------------|
|
|-----------------------------------|----------------------------------------------------------------------------------------------------------|
|
||||||
| C/C++ Compiler | GCC/G++ is the compiler that fennec is designed around, however, Clang, MSVC, and MinGW may also be used |
|
| 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 |
|
| 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 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. |
|
| 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 |
|
| Doxygen <sup>[__*__](#opt)</sup> | Doxygen is required for building the documentation for fennec. |
|
||||||
| Graphviz | Graphviz is a required dependency for Doxygen |
|
| Graphviz <sup>[__*__](#opt)</sup> | Graphviz is a required dependency for Doxygen |
|
||||||
|
|
||||||
|
|
||||||
|
<a id="opt"></a>
|
||||||
|
<sup>[__*__](#opt)</sup> Optional Dependency
|
||||||
|
|
||||||
<br>
|
<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.
|
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.
|
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>
|
<a id="debian"></a>
|
||||||
#### Debian
|
#### 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:
|
On Debian-based distributions, you can install dependencies using the following command:
|
||||||
```shell
|
```shell
|
||||||
sudo apt install build-essential cmake ninja-build valgrind libvulkan-volk-dev vulkan-validationlayers
|
sudo apt install build-essential cmake ninja-build valgrind libvulkan-volk-dev vulkan-validationlayers
|
||||||
git submodule update --force --init --recursive --remote
|
|
||||||
```
|
```
|
||||||
|
|
||||||
for Doxygen run:
|
for Doxygen run:
|
||||||
@@ -175,7 +188,6 @@ sudo apt install doxygen graphviz
|
|||||||
On Arch-based distributions, you can install dependencies using the following command:
|
On Arch-based distributions, you can install dependencies using the following command:
|
||||||
```shell
|
```shell
|
||||||
sudo pacman -S base-devel cmake ninja valgrind vulkan-devel
|
sudo pacman -S base-devel cmake ninja valgrind vulkan-devel
|
||||||
git submodule update --force --init --recursive --remote
|
|
||||||
```
|
```
|
||||||
|
|
||||||
for Doxygen run:
|
for Doxygen run:
|
||||||
@@ -189,7 +201,6 @@ sudo pacman -S doxygen graphviz
|
|||||||
On Fedora-based distributions, you can install dependencies using the following command:
|
On Fedora-based distributions, you can install dependencies using the following command:
|
||||||
```shell
|
```shell
|
||||||
sudo dnf install build-essential g++ cmake ninja-build valgrind vulkan-volk-devel vulkan-validation-layers
|
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:
|
for Doxygen run:
|
||||||
|
|||||||
Reference in New Issue
Block a user