You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Note:** the project gracefully skips unavailable tools and emits a warning if optional tools aren't found.
84
84
85
-
### Build Presets and Tools
85
+
### Build Presets
86
86
87
87
This project uses [**CMake Presets**](https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to simplify and standardize configuration and build workflows. Each preset is tailored to a specific purpose.
88
88
@@ -99,6 +99,66 @@ Run to list all presets:
99
99
cmake --list-presets
100
100
```
101
101
102
+
### Building the Project
103
+
104
+
> All commands assume you are using CMake Presets, which are fully configured for this project.
105
+
106
+
#### Configure and Build
107
+
108
+
To configure and build using a preset:
109
+
```bash
110
+
cmake --preset gcc-RelWithDebInfo
111
+
cmake --build --preset gcc-RelWithDebInfo
112
+
```
113
+
114
+
### Run Tests
115
+
116
+
All tests are built with [GoogleTest](https://github.com/google/googletest). Enable them with the `ENABLE_TESTING` option (**enabled** by default).
117
+
118
+
```bash
119
+
cmake --preset gcc-RelWithDebInfo
120
+
cmake --build --preset gcc-RelWithDebInfo
121
+
ctest --preset gcc-RelWithDebInfo
122
+
```
123
+
124
+
### Sanitizers
125
+
126
+
The `Sanitize` build type enables runtime checks for memory errors (AddressSanitizer, UndefinedBehaviorSanitizer).
127
+
128
+
```bash
129
+
cmake --preset gcc-Sanitize
130
+
cmake --build --preset gcc-Sanitize
131
+
ctest --preset gcc-Sanitize
132
+
```
133
+
134
+
### Generate Code Coverage
135
+
136
+
Use the `Coverage` preset to instrument code and generate a coverage report (requires `lcov` and `genhtml`):
0 commit comments