Skip to content

Boiler plate for C++ projects, with CMake, Catch2 Test, Travis CI and coverage reports.

License

Notifications You must be signed in to change notification settings

stelro/cpp-boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status Codacy Badge license

Boiler plate for C++ projects

This is a boiler plate C++ project. Inspired by bsamseth and Jason Turner

Structure

.
├── CMakeLists.txt
├── app
│   └── main.cpp
├── include
│   ├── example.h
│   └── exampleConfig.h.in
├── src
│   └── example.cpp
└── tests
    ├── dummy.cpp
    └── main.cpp

Sources go in src/, header files in include/, main programs in app/, and tests go in tests/ (compiled to unit_tests.x by default).

If you add a new executable, say app/hello.cpp, you only need to add the following two lines to CMakeLists.txt:

add_executable(main.x app/main.cpp)   # Name of exec. and location of file.
target_link_libraries(main.x PRIVATE engine)  # Link the executable to `engine` (if it uses it).
                                              # `engine` is the default name of the library built from src/*.cpp

You can find the example source code that builds the main.x executable in app/main.cpp under the Build section in CMakeLists.txt. If the executable you made does not use the library in src/, then only the first line is needed.

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 .. -DCMAKE_BUILD_TYPE=[Debug | Release]
> make
> ./main.x
> make catch     # Makes and runs the tests.
> make doc       # Generate html documentation.

.gitignore

The .gitignore file is a copy of the Github C++.gitignore file, with the addition of ignoring the build directory (build/).

About

Boiler plate for C++ projects, with CMake, Catch2 Test, Travis CI and coverage reports.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published