All Projects → johanLsp → CPP_Template

johanLsp / CPP_Template

Licence: other
C++ project template : CMake, Test, Travis CI, Appveyor, CodeCoverage, Doxygen

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to CPP Template

cpp14-project-template
A simple, cross-platform, and continuously integrated C++14 project template
Stars: ✭ 64 (+100%)
Mutual labels:  travis-ci, appveyor, doxygen, codecov
Ci helloworld
A simple example of how to setup a complete CI environment for C and C++
Stars: ✭ 357 (+1015.63%)
Mutual labels:  travis-ci, appveyor, doxygen, codecov
Kcov
Code coverage tool for compiled programs, Python and Bash which uses debugging information to collect and report data without special compilation options
Stars: ✭ 515 (+1509.38%)
Mutual labels:  coverage, travis-ci, codecov
travis-ci-tutorial-java
Just to learn how to use travis-ci in a java project!
Stars: ✭ 38 (+18.75%)
Mutual labels:  coverage, travis-ci, codecov
phpunit-travis-ci-coverage-example
phpUnit Testing on Travis-CI with Code Coverage on CodeCov
Stars: ✭ 30 (-6.25%)
Mutual labels:  coverage, travis-ci, codecov
Covr
Test coverage reports for R
Stars: ✭ 285 (+790.63%)
Mutual labels:  coverage, travis-ci, codecov
Cargo Make
Rust task runner and build tool.
Stars: ✭ 895 (+2696.88%)
Mutual labels:  coverage, travis-ci, appveyor
Cmake Scripts
A selection of useful scripts for use in CMake projects, include code coverage, sanitizers, and dependency graph generation.
Stars: ✭ 202 (+531.25%)
Mutual labels:  coverage, doxygen
Codecov Bash
Global coverage report uploader for Codecov
Stars: ✭ 220 (+587.5%)
Mutual labels:  coverage, codecov
ts-node-starter
GitHub template to get started with Node.js & TypeScript. ⚡
Stars: ✭ 28 (-12.5%)
Mutual labels:  coverage, codecov
cibuildwheel
🎡 Build Python wheels for all the platforms on CI with minimal configuration.
Stars: ✭ 1,350 (+4118.75%)
Mutual labels:  travis-ci, appveyor
Codecov Python
Python report uploader for Codecov
Stars: ✭ 162 (+406.25%)
Mutual labels:  coverage, codecov
Moderncppstarter
🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
Stars: ✭ 2,381 (+7340.63%)
Mutual labels:  coverage, codecov
scikit-ci
Simpler and centralized CI configuration for Python extensions.
Stars: ✭ 15 (-53.12%)
Mutual labels:  travis-ci, appveyor
Example Cpp11 Cmake
Stars: ✭ 129 (+303.13%)
Mutual labels:  coverage, codecov
Example Swift
Codecov: Swift coverage example
Stars: ✭ 121 (+278.13%)
Mutual labels:  coverage, codecov
HaxeCI
An example of using CI for Haxe projects.
Stars: ✭ 45 (+40.63%)
Mutual labels:  travis-ci, appveyor
floss
Unit-testing for those hard to reach places
Stars: ✭ 26 (-18.75%)
Mutual labels:  coverage, travis-ci
laravel-survey
Laravel 6 survey app.
Stars: ✭ 39 (+21.88%)
Mutual labels:  coverage, doxygen
example-objc
Codecov example for Xcode
Stars: ✭ 24 (-25%)
Mutual labels:  coverage, codecov

C++ Template

Jumpstart a C++ project in no time

Build Status Build status codecov

This is a cross-plateform (Linux/OSX/Windows) CMake based C++ template shipped with :

  • Continuous Integration with Travis CI & Appveyor
  • Unit testing with Catch
  • Documentation with Doxygen
  • Code coverage with CodeCov

Each of these features can be disabled / enabled if needed

Pre-requisites

You can skip this if you just want to use the CMake template without additional features. Otherwise, the following dependencies have to be installed :

doxygen
boost test-unit-framework
lcov

Usage

The template is shipped with extra features disabled. Just clone or fork the repository, and follow the usual CMake build from the project directory :

mkdir build
cd build
cmake ..
make

By default, two targets are generated: an executable in bin/, and a library in lib/ The CMake configuration accepts the following options :

  • -DENABLE_DOC=1 : Generates the documentation target
  • -DENABLE_TEST=1 : Turns on testing
  • -DENABLE_COVERAGE=1 : Generates the coverage build

Features

Documentation

cmake -DENABLE_DOC=1 ..
make doc

Generates the doxygen documentation in doc/html A base doxygen configuration is provided in doc/documentation-config.doxygen.in, along with a few page templates.

Unit testing

cmake -DENABLE_TESTING=1 ..
make test

Runs the tests defined in test

Code Coverage

cmake -DENABLE_COVERAGE=1 ..
make test

Enabling code coverage automatically enables unit testing. Running the test generates a coverage report

Travis CI

Integration with Travis CI is configured in .travis.yml The default configuration builds and run tests on different version of Ubuntu & OSX, and generate a coverage report

Appveyor

Integration with Appveyor is configured in appveyor.yml The default configuration builds and run tests on different Visual Studio generators

CodeCov

Integration with CodeCov is configured in .codecov.yml The default Travis configuration automatically push the coverage report to CodeCov.io

Contributing

If you think something is missing, feel free to open an issue or give me a hint. To contribute to the repository :

  1. Fork it (https://github.com/yourname/yourproject/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].