Build#
Basic build steps#
# 1. Configure
cmake --preset <preset-name>
# 2. Build
cmake --build out/build/<preset-name>
Building individual targets#
# List all available targets
cmake --build out/build/<preset-name> --target help
# Build a specific target
cmake --build out/build/<preset-name> --target <target-name>
# Examples
cmake --build out/build/clang-debug --target fapi_sample
cmake --build out/build/clang-debug --target fronthaul_app
cmake --build out/build/clang-debug --target phy_ran_app
Available presets#
The main build presets are debug and release for the clang compiler:
clang-debug: Debug build with debug symbols and assertionsclang-release: Release build with optimizations suitable for deployment
Additional presets are available for static analysis and sanitizers, and the gcc compiler.
See the top-level CMakePresets.json for preset definitions. List all presets:
cmake --list-presets
Configuration options#
Common CMake options can be passed during configuration:
# Disable maintainer mode (relaxes strict checks)
cmake --preset clang-debug -DMAINTAINER_MODE=OFF
# Enable coverage reporting
cmake --preset clang-debug -DENABLE_COVERAGE=ON
# Disable static analysis (faster builds)
cmake --preset clang-debug -DENABLE_CLANG_TIDY=OFF
Common options:
MAINTAINER_MODE: Enable strict checks and warnings as errorsENABLE_COVERAGE: Enable code coverage reportingENABLE_CLANG_TIDY: Enable clang-tidy static analysisENABLE_CPPCHECK: Enable cppcheck static analysisENABLE_IWYU: Enable include-what-you-use analysisENABLE_MLIR_TRT: Enable MLIR-TensorRT for PHY JAX lowering
See cmake/ProjectOptions.cmake for the complete list of configuration options.
CMake helper modules#
The cmake/ directory contains helper modules for managing dependencies and build
configuration. See Dependencies for dependency management modules.
Build Utilities:
RanTrtPlugin.cmake: Custom TensorRT plugins for RAN processingCapPermissions.cmake: Linux capabilities for non-privileged execution (RT priority, DPDK)Tests.cmake: Test configuration and CTest integrationPython.cmake: Python environment and virtual environment management
See the individual CMake files in cmake/ for detailed documentation.
Troubleshooting#
See Troubleshooting for common build issues and solutions.