Skip to content

perror/cpp-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

		boiler-plate project
		====================

This is just a boiler-plate project template to ease the start of new
projects.


CMake build modes (Release, Debug, Tests, Profile)
--------------------------------------------------
This CMake build comes with several modes:
 - 'Release' : Normal release of the software.
 - 'Debug' : Add all debug options (symbols, debug output, assert).
 - 'Tests' : Add all tests and code coverage (requires 'lcov').
 - 'Profile' : Add all profiling options to check software performance.

Activating a build mode:

$> mkdir Release
$> cd Release/
$> cmake [-DCMAKE_BUILD_TYPE=Release] ../
$> make

Or, to enable 'Debug', 'Tests' or 'Profile' (here 'Debug', but replace
'Debug' by one of the others if you want it):

$> mkdir Debug
$> cd Debug/
$> cmake -DCMAKE_BUILD_TYPE=Debug ../
$> make

$> mkdir Tests
$> cd Tests/
$> cmake -DCMAKE_BUILD_TYPE=Tests ../
$> make

$> mkdir Profile
$> cd Profile/
$> cmake -DCMAKE_BUILD_TYPE=Profile ../
$> make

Running tests and coverage
--------------------------
Requires: lcov, gprof

Running the tests:

$> mkdir Tests
$> cd Tests/
$> cmake -DCMAKE_BUILD_TYPE=Tests ../
$> make
$> make test
Running tests...
...
$> ctest -VV
...

Running for coverage and displaying it:

$> make coverage
$> firefox coverage/index.html

Using clang development tools
-----------------------------
Requires: clang-format, clang-tidy

* clang-format can automatically format your code to fullfill the
coding-style of the project. You just need to type:

$> make clang-format

* clang-tidy can automatically make a static-analysis of the code,
  looking for possible bugs and oddities that should be looked at. To
  get a full analysis of the code just type:

$> make clang-tidy

About

A template for a C++ boilerplate project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published