1
0
Fork 0
mirror of https://github.com/TheLartians/ModernCppStarter.git synced 2025-08-30 21:51:12 +02:00
ModernCppStarter/README.md
Lars Melchior c94580f25c init
2020-04-11 12:31:08 +02:00

54 lines
1.8 KiB
Markdown

[![Actions Status](https://github.com/TheLartians/Greeter/workflows/MacOS/badge.svg)](https://github.com/TheLartians/Greeter/actions)
[![Actions Status](https://github.com/TheLartians/Greeter/workflows/Windows/badge.svg)](https://github.com/TheLartians/Greeter/actions)
[![Actions Status](https://github.com/TheLartians/Greeter/workflows/Ubuntu/badge.svg)](https://github.com/TheLartians/Greeter/actions)
[![Actions Status](https://github.com/TheLartians/Greeter/workflows/Style/badge.svg)](https://github.com/TheLartians/Greeter/actions)
# Greeter
A best-practice git template for modern C++ libraries and projects.
## Features
- Modern CMakeLists.txt
- Suited for single header libraries and larger projects
- Creates a library that can be installed or included locally
- Integrated test suite
- Code formatting via clang-format via [Format.cmake](https://github.com/TheLartians/Format.cmake)
- Continuous integration via GitHub Workflows
- Reliable dependency management via [CPM.cmake](https://github.com/TheLartians/CPM.cmake)
- Check compiler warnings
## Roadmap
- Add code coverage checks
- Add a script to automatically rename project / switch to single-header mode
## Usage
### Adjust the template to your needs
- Copy this repo and replace all occurrences of "Greeter" in the CMakeLists and Readme with project's name.
- Note the comments in the CMakeLists for single-header libraries
- Have fun!
### Build and run test suite
```bash
cmake -Htest -Bbuild
cmake --build build
CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test
# or simply call the executable:
./build/GreeterTests
```
### Run clang-format
```bash
cmake -Htest -Bbuild
# view changes
cmake --build build --target format
# apply changes
cmake --build build --target fix-format
```
See [Format.cmake](https://github.com/TheLartians/Format.cmake) for more options.