/ProjectBoilerplate

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

This is a quick boilerplate to get a c++ project going

Project Technologies

- CMake (Build System)
- GoogleTest (Testing Framework)
- Doxygen (Documentation Generator)

Quick Start

- Packages to install on your computer
    - Install the newest version of cmake
    - Install the newest stable version of gcc and gdb
      - On my machine I had gcc 10 installed.
- Git operations
  - Grab testing framework from google: git submodule update --init
- How to build on linux/osx from bash/terminal
    1. mkdir build
    2. cd build
    3. cmake ..
    4. make -j 
- How to build from vscode
    - Install C++ extension package
    - Configure the project within the cmake extension and compile
    - You can also debug from the main menu now
- Options to run
  - Run binaries directly from build/bin
  - Run from vscode using gdb from the play button and add more launch options from .vscode/launch.json
- Generate documentation:
  - doxygen doxyfile
  - Edit the mainpage.md in order to change the homepage for your project the docs can be accessed with ./docs/html/index.html
- CI support can be edited in the .github folder and will be run by github actions
  - Your tests in tests/ will run on the server and you can check the actions tab for more info on what failed/passed

Project layout

- .vscode/
  - This holds all the configuration for building and debugging in the editor
- test/
  - This is where you can write unit tests for the code you write in the main project
- include/
  - Put all your .h/.hpp files here
- src/
  - Write all your code here. I usually throw main in here if its a small project. 
- build/
  - This is where all the makefiles/obj files/executables are located

Resources