Skip to content

Commit 0b1a497

Browse files
authored
Update README.md
1 parent 1998ac5 commit 0b1a497

File tree

1 file changed

+19
-23
lines changed

1 file changed

+19
-23
lines changed

README.md

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,18 @@
3232

3333
## Features
3434

35-
- **Modern C++20+**: Fully enabled C++20 with support for upgrading to C++23
36-
- **CMake Presets**: Unified and reproducible builds via `CMakePresets.json`
37-
- **Testing**: Integrated with GoogleTest using `gtest_discover_tests()`
38-
- **Benchmarking**: Optional benchmarks with Google Benchmark
35+
- **Modern C++20+**: fully enabled C++20 with support for upgrading to C++23
36+
- **CMake Presets**: unified and reproducible builds via `CMakePresets.json`
37+
- **Testing**: integrated with GoogleTest using `gtest_discover_tests()`
38+
- **Benchmarking**: optional benchmarks with Google Benchmark
3939
- **Sanitizers & Coverage**:
4040
- Address/UB sanitizers for runtime checks
4141
- `lcov` + `genhtml` support for coverage analysis
4242
- **Developer Tooling**:
4343
- `clang-format`, `clang-tidy`, `cppcheck`
4444
- Configurable via pre-commit hook and CI
45-
- **Doxygen Docs**: Auto-generated API docs with optional target
46-
- **Installable Library**: Provides `find_package(...)` integration
45+
- **Doxygen Docs**: auto-generated API docs with optional target
46+
- **Installable Library**: provides `find_package(...)` integration
4747
- **CI-Ready**: GitHub Actions for builds, linting, testing, and formatting
4848

4949
## Getting Started
@@ -71,30 +71,30 @@ modern-cpp-project-template/
7171
### Prerequisites
7272

7373
Before building the project, make sure the following tools are installed on your system:
74-
| Tool | Required | Notes |
75-
| :--------------------------------- | :-------- |:-------------------------------------------------------- |
76-
| CMake | _Yes_ | Version ≥ 3.23 (required for presets) |
77-
| C++ Compiler | _Yes_ | GCC (≥ 10) or Clang (≥ 12) recommended |
78-
| Ninja | _Optional_ | Used as the default build system (set via CMake presets) |
79-
| Doxygen | _Optional_ | For generating documentation (only if `BUILD_DOCS=ON`) |
80-
| lcov / gentml | _Optional_ | For code coverage reports (`Coverage` build type) |
81-
| cppcheck, clang-format, clang-tidy | _Optional_ | For static analysis and formatting checks |
74+
| Tool | Required | Notes |
75+
| :--------------------------------- | :-------- |:------------------------------------------------------ |
76+
| CMake | | Version ≥ 3.23 (required for presets) |
77+
| C++ Compiler | | GCC (≥ 10) or Clang (≥ 12) recommended |
78+
| Ninja | Optional | Used as the default build system (set via CMake presets) |
79+
| Doxygen | Optional | For generating documentation (only if `BUILD_DOCS=ON`) |
80+
| lcov / genhtml | Optional | For code coverage reports (`Coverage` build type) |
81+
| cppcheck, clang-format, clang-tidy | Optional | For static analysis and formatting checks |
8282

8383
> The project gracefully skips unavailable tools and emits a warning if optional tools aren't found.
8484
8585
### Build Presets
8686

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.
87+
This project uses [**CMake Presets**](https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) to simplify configuration.
8888

8989
| Build Type | Purpose |
9090
| :------------------ |:------------------------------------------------------ |
9191
| `Debug` | Debugging with no optimizations |
9292
| `Release` | Optimized builds without debug symbols |
93-
| `RelWithDebInfo` | Optimized build with debug symbols (recommended) |
94-
| `Sanitize` | Builds with runtime checks enabled (ASan, UBSan, etc.) |
93+
| `RelWithDebInfo` | Optimized build with debug symbols (**recommended**) |
94+
| `Sanitize` | Builds with runtime checks enabled |
9595
| `Coverage` | Builds instrumented for coverage reporting |
9696

97-
Run to list all presets:
97+
List available presets:
9898
```bash
9999
cmake --list-presets
100100
```
@@ -121,8 +121,6 @@ ctest --preset gcc-Sanitize
121121

122122
## Developer Tooling
123123

124-
This project includes several tools to ensure code quality and maintainability. All tools are integrated as CMake targets and run independently from the build system.
125-
126124
### Code Formatting
127125

128126
Format all C++ files using `.clang-format`.
@@ -161,12 +159,10 @@ cmake --preset gcc-RelWithDebInfo -DBUILD_DOCS=ON
161159
cmake --build --preset gcc-RelWithDebInfo --target docs
162160
```
163161

164-
> Output will be generated in `build/<preset>/docs/html/`
162+
> Output will be generated in `build/gcc-RelWithDebInfo/docs/html/`
165163
166164
## Installation
167165

168-
This project supports CMake's standard installation flow and can be consumed by other CMake-based projects using `find_package()`.
169-
170166
### Install the Library
171167

172168
To install the library (headers, compiled `.a`/`.so`, CMake config files):

0 commit comments

Comments
 (0)