CMake and linking

Canonical Grok16 Field CMake + g16-ld mandate for speed_demo and all field targets.

CMake configure build link pipeline
Configure → g16 compile → g16-ld link with field mandate flags

speed_demo CMake project

examples/speed-demo/CMakeLists.txt builds grok16_speed_demo from speed_demo.cpp.

Host plane

cmake -S examples/speed-demo -B build/host \
  -DCMAKE_CXX_COMPILER=$(which g++) \
  -DGROK16_HOST_PLANE=ON
cmake --build build/host -j$(nproc)

G16 belt plane

cmake -S examples/speed-demo -B build/g16 \
  -DCMAKE_TOOLCHAIN_FILE=$G16_PREFIX/cmake/grok16-toolchain.cmake \
  -DGROK16_PROFILE=belt_2_0
cmake --build build/g16 -j$(nproc)

Toolchain file

cmake/grok16-toolchain.cmake sets:

Linking mandate

FileRole
cmake/g16-linker-mandate.cmakeField link flags, -pie, shared rules
cmake/g16-field-mandate.cmakeG16_FIELD_SAFETY_MANDATE_v1 on field targets
forge/g16-linker.pyg16-ld backend — 16 target families

Full linker manual: Linker

Bench with CMake row

SPEED_DEMO_TARGET_SEC=3 ./scripts/grok16-toolchain.sh exec-full-bench
./scripts/field-exec-stage.py

CMake runner included in speed bench report v5.0.0. Versions: data/grok16-speed-bench-version.json