Skip to content

Commit 207a928

Browse files
authored
Update README.md
1 parent 4f5300d commit 207a928

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
11
# Overview
2+
3+
Template repository to be used as a base for creating C++ libraries built with CMake. This repository provides:
4+
* Commonly accepted directory layout: `cmake` for CMake utilities and package config, `include/<libname>` for public headers, `src` for library sources and private headers, `examples` and `tests` for library examples and tests correspondingly.
5+
* `CMakeLists.txt` files thoroughly implemented with the following ideas in mind:
6+
* user should be able to build library both as subproject (probably fetched with CMake's [FetchContent_MakeAvailable](https://cmake.org/cmake/help/latest/module/FetchContent.html)) and as a stand-alone project
7+
* user should be able to build examples/tests as part of the library build or as a stand-alone projects
8+
* multi-configuration CMake generators should be supported
9+
* package systems (conan, vcpkg and others) should be respected, which means that library `CMakeLists.txt` file should contain only **build requirements**, i.e. should not hardcode any compiler/linker flags unless they are absolutely required to build the library
10+
* Basic [preset](https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) file `CMakePresets.json` which is a modern way (since CMake 3.19) for specifying build options (instead of hardcoding them in the `CMakeLists.txt` or setting on the command line)
11+
* My personal `.clang-format` for code-style worth trying

0 commit comments

Comments
 (0)