# Per-binary build-time exclusion (ADR-002).
#
# Single source of truth for the BUILD_* flag set referenced from
# `.github/workflows/ci.yml` and the composition-root validator in
# `src/gps_denied_onboard/runtime_root.py`.

option(BUILD_OKVIS2                 "Build C1 OKVIS2 VIO strategy"              ON)
option(BUILD_VINS_MONO              "Build C1 VINS-Mono VIO strategy"          OFF)
option(BUILD_KLT_RANSAC             "Build C1 KLT/RANSAC simple baseline"      ON)

option(BUILD_VPR_ULTRA              "Build C2 UltraVPR (primary)"               ON)
option(BUILD_VPR_MEGALOC            "Build C2 MegaLoc"                         OFF)
option(BUILD_VPR_MIXVPR             "Build C2 MixVPR"                          OFF)
option(BUILD_VPR_SELAVPR            "Build C2 SelaVPR"                         OFF)
option(BUILD_VPR_EIGENPLACES        "Build C2 EigenPlaces"                     OFF)
option(BUILD_VPR_NETVLAD            "Build C2 NetVLAD baseline"                 ON)
option(BUILD_VPR_SALAD              "Build C2 SALAD"                           OFF)

option(BUILD_TENSORRT_RUNTIME       "Build C7 TensorRT inference runtime"       ON)
option(BUILD_PYTORCH_RUNTIME        "Build C7 PyTorch FP16 inference runtime"  OFF)

option(BUILD_C10_PROVISIONING       "Build C10 (operator-only)"                OFF)
option(BUILD_C11_TILE_MANAGER       "Build C11 (operator-only)"                OFF)
option(BUILD_C12_OPERATOR_TOOLING   "Build C12 (operator-only)"                OFF)

option(BUILD_GTSAM_BINDINGS         "Build cpp/gtsam_bindings (C4+C5)"          ON)
option(BUILD_FAISS_INDEX            "Build cpp/faiss_index (C6)"                ON)

option(BUILD_VIDEO_FILE_FRAME_SOURCE "Build replay video frame source (AZ-265)" OFF)
option(BUILD_TLOG_REPLAY_ADAPTER     "Build replay tlog FC adapter (AZ-265)"   OFF)
option(BUILD_REPLAY_SINK_JSONL       "Build replay JSONL sink (AZ-265)"        OFF)
option(BUILD_REPLAY_CLI              "Build replay CLI entrypoint (AZ-265)"    OFF)
option(BUILD_LIVE_CAMERA_FRAME_SOURCE "Build live camera frame source"          ON)

message(STATUS "BUILD_OKVIS2=${BUILD_OKVIS2} BUILD_VINS_MONO=${BUILD_VINS_MONO}")
message(STATUS "BUILD_TENSORRT_RUNTIME=${BUILD_TENSORRT_RUNTIME} BUILD_GTSAM_BINDINGS=${BUILD_GTSAM_BINDINGS}")
