fix(ci): decouple CGAL tests from viewer — add WITH_CGAL_TESTS flag
Root cause: -DWITH_CGAL=ON implied -DWITH_VIEWER=ON, which pulled in GLFW, which requires wayland-scanner — not present in the headless CI container (ubuntu:22.04 ARM64). Fix: new CMake option -DWITH_CGAL_TESTS=ON builds conformallab_cgal_tests without touching the viewer, GLFW, libigl, or any display dependency. Only Boost headers are required (already in the Docker image). Changes ─────── code/CMakeLists.txt - Add WITH_CGAL_TESTS option (OFF by default) - find_package(Boost REQUIRED) now shared between WITH_CGAL and WITH_CGAL_TESTS - WITH_CGAL still implies WITH_VIEWER (for local full builds) - Remove duplicate find_package(Boost) inside the WITH_CGAL block code/tests/CMakeLists.txt - cgal/ subdirectory added for WITH_CGAL OR WITH_CGAL_TESTS .gitea/workflows/cpp-tests.yml - test-cgal job: -DWITH_CGAL=ON → -DWITH_CGAL_TESTS=ON README.md - Build modes table: three rows (default / CGAL_TESTS / CGAL full) - Quick-start: separate headless and full-local sections - Prerequisite table updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,24 +7,42 @@ message(STATUS "Configuring ${PROJECT_NAME}...")
|
||||
|
||||
# ── Build modes ────────────────────────────────────────────────────────────────
|
||||
#
|
||||
# Default (CI / tests-only): only Eigen + GTest are required.
|
||||
# Default (CI fast / pure-math tests):
|
||||
# cmake -S code -B build
|
||||
# Only Eigen + GTest required. 36 non-CGAL tests.
|
||||
#
|
||||
# -DWITH_CGAL=ON builds the conformallab_core CLI app (needs CGAL).
|
||||
# Automatically enables WITH_VIEWER because the app uses
|
||||
# the viewer library for mesh visualisation.
|
||||
# -DWITH_CGAL_TESTS=ON CGAL test suite only — no viewer, no CLI app.
|
||||
# cmake -S code -B build -DWITH_CGAL_TESTS=ON
|
||||
# Requires: system Boost headers (apt install libboost-dev).
|
||||
# Builds: conformallab_cgal_tests (158 tests).
|
||||
# Does NOT require wayland-scanner, GLFW, libigl or a display.
|
||||
# Use this in headless CI.
|
||||
#
|
||||
# -DWITH_VIEWER=ON builds the viewer library standalone (libigl/GLFW/GLAD).
|
||||
# -DWITH_CGAL=ON Full build: CLI app + viewer + examples + CGAL tests.
|
||||
# cmake -S code -B build -DWITH_CGAL=ON
|
||||
# Requires: Boost + Wayland/X11 dev headers (wayland-scanner, libx11-dev …).
|
||||
# Automatically enables WITH_VIEWER.
|
||||
# Use this for local development with the interactive viewer.
|
||||
#
|
||||
# -DWITH_VIEWER=ON Viewer library only (libigl / GLFW / GLAD).
|
||||
#
|
||||
# ──────────────────────────────────────────────────────────────────────────────
|
||||
option(WITH_CGAL "Build conformallab_core app (requires CGAL + Viewer)" OFF)
|
||||
option(WITH_VIEWER "Build viewer library (libigl / GLFW / GLAD)" OFF)
|
||||
option(WITH_CGAL_TESTS "Build CGAL test suite without viewer/CLI (headless CI)" OFF)
|
||||
option(WITH_CGAL "Build conformallab_core CLI app + viewer + CGAL tests" OFF)
|
||||
option(WITH_VIEWER "Build viewer library (libigl / GLFW / GLAD)" OFF)
|
||||
|
||||
# The CLI app always needs the viewer; enable it implicitly.
|
||||
# WITH_CGAL_TESTS is a strict subset of WITH_CGAL — no viewer, no CLI.
|
||||
# WITH_CGAL (full build) implies WITH_VIEWER.
|
||||
if(WITH_CGAL AND NOT WITH_VIEWER)
|
||||
message(STATUS "WITH_CGAL implies WITH_VIEWER – enabling automatically.")
|
||||
set(WITH_VIEWER ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
|
||||
# Propagate Boost requirement for both CGAL modes.
|
||||
if(WITH_CGAL OR WITH_CGAL_TESTS)
|
||||
find_package(Boost REQUIRED)
|
||||
endif()
|
||||
|
||||
# ── Standard settings ──────────────────────────────────────────────────────────
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
@@ -85,11 +103,6 @@ endif()
|
||||
|
||||
# ── Core CLI app (optional, requires CGAL + Viewer) ───────────────────────────
|
||||
if(WITH_CGAL)
|
||||
# CGAL 6.x still needs Boost.Config headers unconditionally.
|
||||
# Install via: brew install boost (macOS)
|
||||
# apt install libboost-dev (Debian/Ubuntu)
|
||||
find_package(Boost REQUIRED)
|
||||
|
||||
add_executable(${PROJECT_NAME} src/apps/v0/conformallab_cli.cpp)
|
||||
target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deps/single_includes
|
||||
|
||||
Reference in New Issue
Block a user