Set Up Your Environment

Manual Setup

If you prefer manual setup or cannot use containers, follow the instructions below.

Build prerequisites

  • Windows: Download and install CMake from https://cmake.org/download (select the Windows installer) or install using Chocolatey:

    choco install cmake
    
  • Linux (Ubuntu/Debian): Install using package manager:

    sudo apt update
    sudo apt install -y cmake
    
  • macOS: Install using Homebrew:

    brew update
    brew install cmake
    

Code Style Analysis

Please follow the Google C++ Style Guide.

Code style is checked using the clang-format tool.

Optional tools (clang-tidy, gcovr)

Install these to match the CI toolchain for static analysis and coverage reports.

  • Linux (Ubuntu/Debian):

    # clang-tidy 21 (recommended)
    sudo apt update && sudo apt install -y clang-tidy-21
    # gcovr via pip (or use your distro package)
    python3 -m pip install gcovr
    # GCC 14 coverage helper (used in CI)
    which gcov-14 || echo "Install GCC 14 to use gcov-14"
    
  • macOS (Homebrew):

    brew install llvm gcovr
    # clang-tidy path (if not on PATH):
    echo "$(brew --prefix)/opt/llvm/bin/clang-tidy"
    
  • Windows:

    choco install llvm
    py -m pip install gcovr
    # Ensure clang-tidy.exe is available in PATH
    

Parallel Programming Technologies

MPI

  • Windows (MSVC):

    Installers link. You have to install msmpisdk.msi and msmpisetup.exe.

  • Linux (gcc and clang):

    sudo apt install -y mpich openmpi-bin libopenmpi-dev
    
  • MacOS (apple clang):

    brew install open-mpi
    

OpenMP

OpenMP is included in gcc and msvc, but some components should be installed additionally:

  • Linux (gcc and clang):

    sudo apt install -y libomp-dev
    
  • MacOS (llvm):

    brew install llvm
    brew install libomp
    brew link libomp --overwrite --force
    

TBB

  • Windows (MSVC), Linux (gcc and clang), MacOS (apple clang): Build as 3rdparty in the current project.

std::thread

std::thread is included in STL libraries.