Skip to content

Latest commit

 

History

History
132 lines (97 loc) · 6.45 KB

File metadata and controls

132 lines (97 loc) · 6.45 KB

Dependencies

Quick Check: Run python3 scripts/tool.py setup --check to verify all dependencies at once.

Install Missing: Run python3 scripts/tool.py setup --do-install --all to install system packages.


1. Critical Build Tools (required)

Dependency Min Version Ubuntu macOS (Homebrew) Windows
CMake 3.25+ sudo apt install cmake brew install cmake winget install Kitware.CMake
Ninja any sudo apt install ninja-build brew install ninja winget install Ninja-build.Ninja
Git any sudo apt install git brew install git winget install Git.Git
Python 3.8+ sudo apt install python3 brew install python winget install Python.Python.3.12

2. Compilers (at least one required)

Compiler Min Version Ubuntu macOS Windows
GCC 10+ sudo apt install build-essential N/A MinGW or WSL
Clang 12+ sudo apt install clang Xcode CLT winget install LLVM.LLVM
MSVC VS 2022 N/A N/A Visual Studio 2022

3. Installer Tools (recommended)

These tools are themselves dependencies — needed to install other dependencies.

Tool Purpose Ubuntu macOS Windows
pip3 Python package installer sudo apt install python3-pip Included with Python Included with Python
curl HTTP downloads sudo apt install curl brew install curl Included
wget HTTP downloads sudo apt install wget brew install wget winget install wget

4. Python Packages — Runtime

These packages are used by the scripts/ tooling at runtime.

Package Purpose Install
Jinja2 Template rendering for generated files pip install Jinja2
tomli TOML parsing (Python < 3.11 only) pip install tomli
pyyaml YAML config support pip install pyyaml

Note: Python 3.11+ includes tomllib in the stdlib, so tomli is only needed for older Python versions.

5. Python Packages — Development

Package Purpose Install
pytest Test framework pip install pytest
pytest-cov Coverage reporting pip install pytest-cov
ruff Python linter & formatter pip install ruff
conan C++ package manager pip install conan
textual TUI framework pip install textual
mypy Static type checking pip install mypy
# Install all dev dependencies at once:
pip install -r requirements-dev.txt

6. Optional Tools — Code Quality & Documentation

Tool Purpose Ubuntu macOS Windows
ccache Build caching sudo apt install ccache brew install ccache winget install ccache.ccache
clang-format C++ formatting sudo apt install clang-format brew install clang-format winget install LLVM.LLVM
clang-tidy Static analysis sudo apt install clang-tidy brew install llvm winget install LLVM.LLVM
cppcheck Additional static analysis sudo apt install cppcheck brew install cppcheck winget install Cppcheck.Cppcheck
doxygen API documentation sudo apt install doxygen brew install doxygen winget install DimitriVanHeesch.Doxygen
gcovr Coverage reports sudo apt install gcovr brew install gcovr pip install gcovr
lcov Coverage HTML sudo apt install lcov brew install lcov N/A
gitleaks Secret scanning sudo apt install gitleaks brew install gitleaks winget install Gitleaks.Gitleaks

7. Optional Tools — Platform-Specific

Tool Purpose Ubuntu macOS Windows
Valgrind Memory debugging sudo apt install valgrind N/A (Linux only) N/A
perf Performance profiling sudo apt install linux-tools-generic N/A N/A
Docker Containerized builds sudo apt install docker.io Docker Desktop Docker Desktop
osv-scanner CVE scanning go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest Same Same

8. Optional Libraries & Frameworks

Library Purpose CMake Flag Ubuntu
Qt 5/6 GUI applications ENABLE_QT=ON sudo apt install qt6-base-dev
Boost Utility libraries ENABLE_BOOST=ON sudo apt install libboost-all-dev

9. Cross-Compilation & Embedded

Toolchain Purpose Ubuntu
crossbuild-essential-i386 x86 cross-compile sudo apt install crossbuild-essential-i386
arm-none-eabi-gcc Embedded ARM builds sudo apt install gcc-arm-none-eabi
Emscripten WebAssembly builds emsdk install latest

10. Extension Build

Tool Purpose Install
Node.js + npm VS Code extension packaging sudo apt install nodejs npm
vsce Extension bundler npm install -g @vscode/vsce

Quick Reference

# Check all dependencies (categorized report)
python3 scripts/tool.py setup --check

# Check a specific category
python3 scripts/tool.py setup --check --category critical_build

# Show install commands for missing packages
python3 scripts/tool.py setup --install --all

# Auto-install missing packages
python3 scripts/tool.py setup --do-install --all

# Create Python venv + install dev packages
python3 scripts/tool.py setup --env --install-env

# Full project health check
python3 scripts/tool.py sol doctor

Note: Test frameworks (GoogleTest, Google Benchmark) are auto-downloaded via CMake FetchContent — no manual install needed.