Skip to content

Latest commit

 

History

History
55 lines (32 loc) · 2.07 KB

DeveloperGuide.md

File metadata and controls

55 lines (32 loc) · 2.07 KB

Developer Guide

Compile from source

BuildOnLinux.md: Guide to install dependencies and compile on Linux (Centos, Fedora, Ubuntu), build instructions.

BuildOnWindows.md: Guide to install dependencies via conda, and compile from source on Windows.

BuildOnMacOS.md: Guide to install dependencies via Homebrew, and compile from source on MacOS.

CondaBuildGuide.md: Guide and notes to build binary conda packages for windows and Linux.

Guide to packaging

Packaging.md deb/rpm package generation by CPack, distribution strategy.

Guide to documentation

Documentation.md: write and publish documentation


Software Architecture

ArchitectureDesign.md: Software architecture design, component selection, parallel computation strategy

Code structure

CodeStructure.md: Module design and one-line description for each header files

Parallel computation design

ParallelDesign.md strategies for CPU, GPU and MPI parallel. In short, CPU-MPI is the focus of this framework, there are plenty framework for GPU acceleration.

Guide to module designer

DesignNewModule.md: describes how to design a new module or extend the existing module


Quality assurance

Code style

  • Qt style naming, function name begins with lower case letter, diff from OCCT, VTK
  • private or protected class member is named as myVariable it is OCCT style
  • clang-format for auto formatting, default LLVM
  • spell check: command line can be made into git hook or vscode task
  • code guideline/standard: https://github.com/qingfengxia/awesome-cpp#coding-style

Static code analysis

  • compiler: treating warning as error, setup in cmake target_compile_options(MyLib PRIVATE -Werror -Wall -Wextra)

static code analysis by cppcheck, clang-tidy, similarity check

  • cppcheck --enable=all --std=c++11 --suppress=*:third-party/json.hpp src/