C++ cross-plattform template  8cb176f
boilerplate for C++ projects
C++ cross-plattform template

CMake and CTest CodeQL Codecov Coveralls doxygen ![GitHub License](https://img.shields.io/github/license/314rs/cpp_cross_plattform_template) GitHub Tag

Some boilerplate for my C++ projects.

with:

  • conan
  • cmake
  • ctest + googletest
  • doxygen
  • github actions
    • cmake + ctest
    • doxygen -> github pages
    • CodeQL

For demo purposes this template contains a very simple main and a fizz-buzz implementation. On top there is a ton of CI/CD stuff.

The version tag is auto generated with git describe --tags --always --dirty=-dev, which produces something of the form tag-hash(-dev) (e.g. v2.3.3-2-g28ed396-dev). This string is used as a suffix for executables and in doxygen. Therefore tags with semantic versioning are encuraged.

Download

Download the program for your platform from the latest build action.

Build yourself

Dependencies

  • CMake
  • Conan
    • boost (program_options)
    • gtest

Build

conan install conanfile.txt --build=missing
cmake -DCMAKE_TOOLCHAIN_FILE=./build/generators/conan_toolchain.cmake -S. -B./build -G "YourGeneratorHere"
cmake --build build

Testing

cd build
ctest

Doxygen

Doxygen documentation can be found here.

Or build it yourself:

git clone https://github.com/jothepro/doxygen-awesome-css.git docs/doxygen-awesome-css
echo "PROJECT_NUMBER = $(git describe --tags --always --dirty=-dev)" > docs/PROJECT_NUMBER # important, always do this before running doxygen
doxygen

Wiki

For further information check out the wiki.

License

This software is open source and released under the MIT License.