Skip to content
/ cpp-project Public template
forked from bsamseth/cpp-project

Boiler plate for C++ projects, with CMake, Doctest, Travis CI, Appveyor and coverage reports.

License

Notifications You must be signed in to change notification settings

cctvbtx/cpp-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status license Project Status: Inactive - The project has reached a stable, usable state but is no longer being actively developed; support/maintenance will be provided as time allows.

Boiler plate for C++ projects

This is a boiler plate for C++ projects. What you get:

Structure

Sources go in src/, header files in include/, main programs in app/, tests go in tests/ (compiled in unit_tests.x by default). Due to the magic of CMake, the only thing that ever has to be changed if you add more files, is to add a target for the executable. Examples of this is in CMakeLists.txt.

Ignored files are Emacs backup files, executables (here defined as .x extensions) and the build/ directory.

Building

Build by making a build directory (i.e. build/), run cmake in that dir, and then use make to build the desired target.

Example:

$ mkdir build && cd build
$ cmake .. # argument is location of CMakelists.txt
$ make
$ ./unit_tests.x

Setup

When starting a new project, you probably don't want the history of this repository. To start fresh, with just the files and no history, you simply delete the .git/ directory and start a new one:

$ rm -rf .git
$ git init
$ git commit -am "Added C++ Boiler Plate"

The result is a fresh Git repository with one commit adding all files from the boiler plate.

Services

If repository is activated with Travis-CI, then unit tests will be built and executed on each commit.

If repository is activated with Coveralls, then deployment to Travis will also calculate code coverage and upload this to Coveralls.io.

About

Boiler plate for C++ projects, with CMake, Doctest, Travis CI, Appveyor and coverage reports.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CMake 90.9%
  • C++ 6.9%
  • Shell 2.2%