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
Copy file name to clipboardExpand all lines: README.md
+10-18Lines changed: 10 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,10 +25,10 @@ This repository implements `std::optional` extensions targeting C++26. The `Bema
25
25
*[Compiler Support](#compiler-support)
26
26
*[Dependencies](#dependencies)
27
27
*[Instructions](#instructions)
28
-
*[Default Build and Test Flow](#default-build-and-test-flow)
29
-
*[More Complex Cases](#more-complex-cases)
30
-
*[Step by Step Build: Build and Run Tests](#step-by-step-build-build-and-run-tests)
31
-
*[Step by Step Build: Build Production and Skip Tests](#step-by-step-build-build-production-and-skip-tests)
28
+
*[Preset CMake Flows](#preset-cmake-flows)
29
+
*[Custom CMake Flows](#custom-cmake-flows)
30
+
*[Buildand Run Tests](#build-and-run-tests)
31
+
*[BuildProduction, but Skip Tests](#build-production-but-skip-tests)
32
32
*[Papers](#papers)
33
33
34
34
## License
@@ -141,7 +141,7 @@ apt-get install \
141
141
142
142
Full set of supported toolchains can be found in [.github/workflows/ci.yml](.github/workflows/ci.yml).
143
143
144
-
#### Default Build and Test Flow
144
+
#### Preset CMake Flows
145
145
146
146
This project strives to be as normal and simple a CMake project as possible. This build workflow in particular will work, producing a static `beman_optional26` library, ready to package:
147
147
@@ -186,17 +186,9 @@ Total Test time (real) = 0.09 sec
186
186
187
187
This should build and run the tests with GCC 14 with the address and undefined behavior sanitizers enabled.
188
188
189
-
#### More Complex Cases
189
+
#### Custom CMake Flows
190
190
191
-
The CMake preset system suffers from combinitorial explosion. There is a makefile in the root of the repository to aid in running more configurations.
192
-
193
-
```shell
194
-
make -k TOOLCHAIN=clang-18 CONFIG=Tsan VERBOSE=1
195
-
```
196
-
197
-
The makefile will use your system compiler, `c++`, if no toolchain name is provided, otherwise it will use the toolchain in the etc/ directory to perform the build. The Ninja multi config generator is used, with configurations for `RelWithDebugInfo`, `Debug`, `Tsan`, and `Asan` configured by default.
198
-
199
-
#### Step by Step Build: Build and Run Tests
191
+
##### Build and Run Tests
200
192
201
193
CI current build and test flows:
202
194
@@ -222,7 +214,7 @@ Test project /path/to/Optional26/.build
222
214
Total Test time (real) = 0.67 sec
223
215
```
224
216
225
-
####Step by Step Build: Build Production and Skip Tests
217
+
##### BuildProduction, but Skip Tests
226
218
227
219
By default, we build and run tests. You can provide `-DBUILD_TESTING=OFF` and completely disable building tests:
228
220
@@ -240,8 +232,8 @@ $ cmake --build .build --config Asan --target all -- -k 0
240
232
241
233
# Check that tests are not built/installed.
242
234
$ ctest --build-config Asan --output-on-failure --test-dir .build
243
-
Internal ctest changing into directory: /home/dariusn/git/Beman/Beman.Optional26/.build
244
-
Test project /home/dariusn/git/Beman/Beman.Optional26/.build
235
+
Internal ctest changing into directory: /path/to/Beman.Optional26/.build
0 commit comments