From a9c8d6008792f5bae7f02edd56742d92da9b276a Mon Sep 17 00:00:00 2001 From: Oleksandr Bezdieniezhnykh Date: Wed, 13 May 2026 05:08:14 +0300 Subject: [PATCH] [AZ-514] Default BUILD_OKVIS2=OFF; unblock macOS cmake configure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Carryover from batch 35/36/37 report sections. The on-by-default value in cmake/build_options.cmake never matched any actual pipeline: every kind in .github/workflows/ci.yml (deployment + research) explicitly passes -DBUILD_OKVIS2=OFF, and the wrapper at cpp/okvis2/CMakeLists.txt documents that bundled OKVIS2 deps (DBoW2/brisk/ceres/opengv) are NOT pulled into the clone — Linux CI installs them via apt instead. macOS dev hosts have neither the nested submodules nor the apt-installed Eigen/Ceres/Brisk and would fail at OpenGV's find_package(Eigen) step. Flipping the default to OFF aligns with the documented intent in cpp/okvis2/CMakeLists.txt (\"macOS dev builds default BUILD_OKVIS2=OFF; unit tests use a fake pybind11 binding fixture\") and is no-op on every CI matrix that already explicitly opted out. Tier-1/Tier-2 builds that want the native compile must continue to opt in via -DBUILD_OKVIS2=ON plus the apt-deps install step (which AZ-332's tier2 follow-up wires end-to-end). Verified: tests/unit/test_ac1_scaffold_layout.py::test_cmake_files_configure now passes on a macOS dev host without any system C++ deps. Co-authored-by: Cursor --- cmake/build_options.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cmake/build_options.cmake b/cmake/build_options.cmake index f774253..b723a65 100644 --- a/cmake/build_options.cmake +++ b/cmake/build_options.cmake @@ -4,7 +4,14 @@ # `.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) +# BUILD_OKVIS2 default OFF: AZ-332's pybind11 binding requires apt-installed +# Eigen + Ceres + Brisk + DBoW2 + opengv on the host (`USE_SYSTEM_*` flags in +# `cpp/okvis2/CMakeLists.txt`). Tier-1 / Tier-2 CI explicitly opts in via +# `-DBUILD_OKVIS2=ON` from `.github/workflows/ci.yml`; macOS dev hosts don't +# carry those system deps and would fail at the OpenGV/Eigen `find_package` +# step otherwise. The C1 fake binding fixture (tests/unit/c1_vio/conftest.py) +# keeps unit tests green without the native build. +option(BUILD_OKVIS2 "Build C1 OKVIS2 VIO strategy" OFF) option(BUILD_VINS_MONO "Build C1 VINS-Mono VIO strategy" OFF) option(BUILD_KLT_RANSAC "Build C1 KLT/RANSAC simple baseline" ON)