1. Development Environment
Prerequisites
Required baseline:
CMake 3.20+
C++20-capable compiler
Python 3.8+
Optional components by feature area:
MPI for multi-rank execution
CUDA/HIP for GPU backends
Fortran compiler for Fortran bindings
Repository setup
Clone and configure from repo root:
git clone <repo-url>
cd dtl
cmake -S . -B build-dev -DDTL_ENABLE_MPI=OFF -DDTL_BUILD_TESTS=ON
cmake --build build-dev -j6
Local build profiles
Core C++ only:
cmake -S . -B build-core \
-DDTL_ENABLE_MPI=OFF \
-DDTL_BUILD_TESTS=ON
cmake --build build-core -j6
C + Python + Fortran bindings:
cmake -S . -B build-bindings \
-DDTL_ENABLE_MPI=OFF \
-DDTL_BUILD_C_BINDINGS=ON \
-DDTL_BUILD_PYTHON=ON \
-DDTL_BUILD_FORTRAN=ON \
-DDTL_BUILD_TESTS=ON
cmake --build build-bindings -j6
Docs-enabled profile:
cmake -S . -B build-docs \
-DDTL_ENABLE_MPI=OFF \
-DDTL_BUILD_DOCS=ON
cmake --build build-docs --target docs -j6
Build safety policy
Do not exceed -j6 for any build or test command in this environment.
Recommended day-to-day loop
Configure once per profile.
Build incrementally with
-j6.Run focused tests first, then broader sweeps.
Regenerate docs when touching public APIs.