@@ -47,20 +47,23 @@ The following are dependencies for building and running the project:
47
47
- [ CMake] ( https://cmake.org/ )
48
48
- ** macOS**
49
49
- [ GNU Make] ( https://www.gnu.org/software/make/ )
50
- - [ Clang Format] ( https://clang.llvm.org/docs/ClangFormat.html ) (Linux & MacOS)
50
+ - [ Clang Format] ( https://clang.llvm.org/docs/ClangFormat.html )
51
+ - [ Xcode Command Line Tools] ( https://developer.apple.com/download/ ) (via ` xcode-select --install ` )
51
52
- ** Windows**
52
53
- [ MinGW32 Make] ( https://www.mingw-w64.org/ )
53
54
- [ Visual Studio Build Tools] ( https://visualstudio.microsoft.com/downloads/ )
54
55
- ** Linux**
55
- - For linux environments the following packages are required for building the dependencies:
56
+ - [ Clang Format] ( https://clang.llvm.org/docs/ClangFormat.html )
57
+ - The following packages are required for building the dependencies:
58
+ - ` git `
59
+ - ` build-essential `
56
60
- ` libx11-xcb-dev `
57
61
- ` libxkbcommon-dev `
58
62
- ` libwayland-dev `
59
63
- ` libxrandr-dev `
60
64
- ` libasound2-dev `
61
65
- ` mesa-common-dev `
62
66
- ` libx11-dev `
63
- - ` libxrandr-dev `
64
67
- ` libxi-dev `
65
68
- ` xorg-dev `
66
69
- ` libgl1-mesa-dev `
@@ -69,12 +72,11 @@ The following are dependencies for building and running the project:
69
72
These can be installed using ` apt-get ` or an equivalent package manager for your Linux distribution:
70
73
71
74
``` console
72
- // Only required if not building with the Vulkan SDK
73
75
$ sudo apt-get update
74
76
$ sudo apt-get install git build-essential libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-dev
75
77
76
78
// Required for building GLFW
77
- $ sudo apt install libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev
79
+ $ sudo apt-get install libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev
78
80
```
79
81
80
82
### Setup
@@ -93,9 +95,9 @@ $ sudo apt install libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi
93
95
94
96
3. This should install all required dependencies. Once completed a `.env` file will be generated with all required variables. If the build is completed with no issue then you can proceed to build the project.
95
97
96
- #### Building With Validation Layers
98
+ #### Setup With Validation Layers
97
99
98
- If you want to build with validation layers then the setup scripts should be run by passing the `--include- validation- layers` flag:
100
+ If you want to build with validation layers then the setup scripts should be run instead by passing the validation layers include flag:
99
101
100
102
```console
101
103
// Linux & macOS
@@ -117,14 +119,14 @@ Assuming all dependencies have been satisfied, the project can be built using th
117
119
$ make
118
120
119
121
// Linux and macOS (with validation layers)
120
- $ make CXXFLAGS=" -DENABLE_VALIDATION_LAYERS=1 "
122
+ $ make CXXFLAGS=" -DENABLE_VALIDATION_LAYERS"
121
123
```
122
124
``` console
123
125
// Windows
124
126
> mingw32-make
125
127
126
128
// Windows (with validation layers)
127
- > mingw32-make CXXFLAGS=" -DENABLE_VALIDATION_LAYERS=1 "
129
+ > mingw32-make CXXFLAGS=" -DENABLE_VALIDATION_LAYERS"
128
130
```
129
131
130
132
Once it completes, all targets should be built and ready to run from the newly generated ` output ` directory.
@@ -137,13 +139,13 @@ You can see examples of this in any of the application targets under `examples`.
137
139
138
140
#### Compile Options
139
141
140
- | Option | Default Value | Description |
141
- | ------------------------------ | ---------------- | -------------------------------------------------------------------------------- |
142
- | ** DEBUG** | ` 1 ` | When set to ` 1 ` , will compile in debug mode, and default ** CC_LOG_LEVEL** to ` 2 ` |
143
- | ** CC_LOG_LEVEL** | ` 2 ` | Sets the logging verbosity to ` info ` (` 2 ` ), ` warning ` (` 1 ` ), and ` error ` (` 0 ` ) |
144
- | ** ENABLE_VALIDATION_LAYERS** | ` 0 ` | When set to ` 1 ` , will enable Vulkan validation layers for the executable |
145
- | ** CXX** | ` g++ ` /` clang++ ` | Sets the compiler to use during build steps (default differs per-platform) |
146
- | ** CXXFLAGS** | N/A | Allows for the specification of compile directives, such as macro definitions |
142
+ | Option | Default Value | Description |
143
+ | ---------------------------- | ------------------ | ---------------------------------------------------------------------------------- |
144
+ | ** DEBUG** | ` 1 ` | When set to ` 1 ` , will compile in debug mode, and default ** CC_LOG_LEVEL** to ` 2 ` |
145
+ | ** CC_LOG_LEVEL** | ` 2 ` | Sets the logging verbosity to ` info ` (` 2 ` ), ` warning ` (` 1 ` ), and ` error ` (` 0 ` ) |
146
+ | ** ENABLE_VALIDATION_LAYERS** | N/A | When set, will enable Vulkan validation layers for the executable |
147
+ | ** CXX** | ` g++ ` /` clang++ ` | Sets the compiler to use during build steps (default differs per-platform) |
148
+ | ** CXXFLAGS** | N/A | Allows for the specification of compile directives, such as macro definitions |
147
149
148
150
## Project Structure
149
151
@@ -152,6 +154,7 @@ You can see examples of this in any of the application targets under `examples`.
152
154
├─[engine]
153
155
│ ├─[core] <- the engine's core library
154
156
│ ├─[render] <- the engine's renderer
157
+ │ ├─[window] <- the engine's windowing and input library
155
158
│ ├─[utils] <- the engine's utils library
156
159
│
157
160
├─[examples]
0 commit comments