This is a boiler plate for C++ projects. What you get:
- Sources, headers and mains separated in distinct folders
- Access to Google Tests
- Use of CMake for much easier compiling
- Code documentation with Doxygen
- Continuous testing with Travis-CI
- Code coverage with Coveralls.io
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.
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
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.
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.