Skip to content

This project aims to guide the way beginners make their c++ projects.

License

Notifications You must be signed in to change notification settings

jiaxiyang/cpp_project_guideline

Repository files navigation

Project Status: Active license CI Percentage of issues still open

overview

This project aims to guide the way beginners make their cpp projects.

basic workflow

workflow

run this project

git clone https://github.com/jiaxiyang/cpp_project_guideline.git
cd cpp_project_guideline
pixi run all

project layout

  1. ✅ The main difference between the two methods is whether include and test are in the same folder as the module src.

build system generator

  1. cmake
  2. ✅ using compile options -Wall -Wextra -Werror

package management

  1. pixi
  2. ✅ make log more readble cfonts

commit guidelines

  1. Angular gudelines

MR guidelines

  1. first-contributions

code review

  1. awesome-code-review

SCA(Static Code Analysis)

  1. ✅ code format check run-clang-format
  2. cpplint
  3. clang-tidy

DCA(Dynamic Code Analysis)

  1. asan
    • memcheck
    • thread
  2. valgrind

valgrind result

unit test

  1. gtest
  2. show results on github ci

unit test result

coverage test

  1. gcovr

    coverage test result

  2. 🔲 upload result to coveralls or codecov

profiling

  1. perf
  2. flamegraph
  3. gprof2dot

doc

  1. doxygen

docxygen

changelog

  1. changlog
  2. tensorrt release notes
  3. rerun
  4. mmsegmentation
  5. glog

CI/CD

  1. integrate the parts above using github actions
  2. 🔲 release artifacts to github

reference

  1. together c & c++ discord
  2. better c++ discord
  3. golang-standards/project-layout

TODO

  1. ✅ Draw flow chart excalidraw
  2. 🔲 Post diagram

About

This project aims to guide the way beginners make their c++ projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published