Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergeyklay/cpp-project-template
Repository Templates for C++ Projects
https://github.com/sergeyklay/cpp-project-template
boilerplate clang-format cmake cmake-examples conan cpp cpp-boilerplate cpp-library cpp17 cpp17-library cppcheck cpplint folder-structure github-actions hacktoberfest sqlite sqlite3 template-project
Last synced: 3 months ago
JSON representation
Repository Templates for C++ Projects
- Host: GitHub
- URL: https://github.com/sergeyklay/cpp-project-template
- Owner: sergeyklay
- License: apache-2.0
- Created: 2020-09-12T13:00:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T19:22:23.000Z (about 2 years ago)
- Last Synced: 2024-10-03T10:51:38.793Z (4 months ago)
- Topics: boilerplate, clang-format, cmake, cmake-examples, conan, cpp, cpp-boilerplate, cpp-library, cpp17, cpp17-library, cppcheck, cpplint, folder-structure, github-actions, hacktoberfest, sqlite, sqlite3, template-project
- Language: CMake
- Homepage:
- Size: 403 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Boilerplate for C++ projects
[![Build Status][build badge]][build link]
[![Analysis Status][analysis badge]][analysis link]
[![Code Analytics][codacy badge]][codacy link]This repository contains my personal boilerplate for C++ projects.
You can generate a new repository with the same directory structure
and files as an existing repository. For more see:- [Creating a repository from a template][gh-template]
## Features
- [x] Sources, headers and mains separated in distinct folders
- [x] [Modern CMake][modern-cmake] for much easier compiling
- [x] Continuous testing with GitHub Actions on all modern platforms, with support for C++17.
- [x] Setup for tests using Google's C++ test framework
- [ ] x86 and x64 builds
- [ ] Code coverage reports, including automatic upload to Codecov.io
- [ ] Code documentation with Doxygen
- [ ] Create releases and attach artifacts using GitHub Actions### Project Structure and Tools
- Source: multiple files
- Type: Shared Library (`so` on Linux, `dylib` on macOS and `dll` on Windows) with [Pimpl][pimpl] implementation
- C++ version: `C++17`
- Tested OS: Linux, macOS and Windows
- C++ compiler: [GCC][gcc], [Clang][clang], [Apple Clang][apple clang] or [Visual Studio][vs]
- Package manager: [Conan][conan]
- Build system: [CMake][cmake]
- Libraries: STL, [`sqlite3`][sqlite], [`spdlog`][spdlog]
- Formatting tools: [clang-format][clang-format]
- Static analysis tools: [Cpplint][cpplint], [Cppcheck][cppcheck]
- CI: [GitHub Actions][actions]## Getting Started
See [`docs/GettingStarted.md`](./docs/GettingStarted.md) for more.
## License
This project is open source software licensed under the Apache License 2.0.
See the [LICENSE][license] file for more information.[build link]: https://github.com/sergeyklay/cpp-project-template/actions?query=workflow%3Abuild
[build badge]: https://github.com/sergeyklay/cpp-project-template/workflows/build/badge.svg
[analysis link]: https://github.com/sergeyklay/cpp-project-template/actions?query=workflow%3Aanalysis
[analysis badge]: https://github.com/sergeyklay/cpp-project-template/workflows/analysis/badge.svg
[codacy badge]: https://app.codacy.com/project/badge/Grade/817c63485ffe441bbbdab2a4e2229ac1
[codacy link]: https://www.codacy.com/manual/klay/cpp-project-template/dashboard
[gh-template]: https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template
[pimpl]: https://en.cppreference.com/w/cpp/language/pimpl
[gcc]: https://gcc.gnu.org/
[clang]: https://clang.llvm.org/
[apple clang]: https://apps.apple.com/us/app/xcode/id497799835
[vs]: https://visualstudio.microsoft.com
[conan]: https://conan.io/
[cmake]: https://cmake.org/
[sqlite]: https://www.sqlite.org/index.html
[spdlog]: https://github.com/gabime/spdlog
[actions]: https://github.com/features/actions
[modern-cmake]: https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1
[cpplint]: https://github.com/cpplint/cpplint
[cppcheck]: https://github.com/danmar/cppcheck
[clang-format]: https://clang.llvm.org/docs/ClangFormat.html
[license]: https://github.com/sergeyklay/cpp-project-template/blob/master/LICENSE