Repository navigation
volrover3: include the libcvc state API from <cvc/state/...> (libcvc 3.5.0) - #48
Merged
Merged
Conversation
…3.5.0) libcvc 3.5.0 moved the state subsystem out of cvc/core/ into cvc/state/ as a hard cutover (transfix/libcvc#577, #578): <cvc/core/state*.h> and <cvc/core/state_exec/*.h> no longer exist, and volrover3 consumes libcvc as an unpinned external SDK, so it cannot compile against 3.5.0 without this. Rewrites the 41 includes in 25 files (cvc/core/state -> cvc/state/state). Path change only; volrover has no .clang-format, so includes stay in place.
transfix
force-pushed
the
fix/libcvc-3.5-state-paths
branch
from
October 9, 2026 16:49
eb9e138 to
3a5c0d8
Compare
transfix
added a commit
to transfix/libcvc
that referenced
this pull request
Oct 9, 2026
…d_units' si_value, macro-proof MIN/MAX (#588) glibc's <signal.h> defines `#define si_value _sifields._rt.si_sigval`, so any TU that includes it before <cvc/core/world_units.h> fails: world_units.h:147:28: error: expected ',' or '...' before '.' token Seen building volrover3's GeometryDialog/IsosurfaceDialog/ ProceduralGeometryDialog/SDFDialog against the installed 3.5.0 prefix (transfix/volrover#48). - world_units::to_display/format: rename the `si_value` parameter to `canonical_value` (pairs with from_display's `display_value`; no si_* prefix, which glibc/musl reserve for siginfo_t accessor macros). Parameter names only, so no ABI/API change; docs updated to match. - utility.h: an audit of every identifier in inc/ against the macros defined by ~50 glibc/POSIX headers found one more clash: the cvc::MIN / cvc::MAX templates break after <sys/param.h> (also macOS, GLib), whose function-like MIN(a,b)/MAX(a,b) expand the declarations. Parenthesize the declarator names; existing callers are unchanged. - New system_macro_headers_test: includes <signal.h>, <sys/param.h>, <sys/stat.h>, <sys/types.h> (POSIX) or <windows.h> (the repo's WIN32_LEAN_AND_MEAN + NOMINMAX pattern) before a representative public header from every cvc module, so a regression fails the build.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
libcvc 3.5.0 moved its state subsystem from
cvc/core/tocvc/state/as a hard cutover (transfix/libcvc#577, #578), so<cvc/core/state*.h>and<cvc/core/state_exec/*.h>no longer exist. volrover3 consumes libcvc as an unpinned external SDK (find_package(cvc CONFIG REQUIRED)), so it can't compile against 3.5.0 without this.This rewrites the 41 includes in 25 files (
cvc/core/state→cvc/state/state). It only changes paths. volrover has no.clang-format, so the includes stay where they are.Verification
A full local configure wasn't possible: volrover3 needs Python
Development.Embed, and there are no Python dev headers on the build box. Checked against a native libcvc 3.5.0+cvc.2 prefix instead:g++ -MM -MGover all 25 changed files. Everycvc/state/...include resolves to an installed 3.5.0 header.CameraController,CameraSettingsDialog,GridOptionsDialog,InputState,Settings,StateDashboardWidgetandVolumeDialogcompile cleanly. The tests andTransferFunctionWidgetstop only on missing local tooling (gtest, the automoc-generated.moc).Not fixed here: a separate libcvc bug
GeometryDialog,IsosurfaceDialog,ProceduralGeometryDialogandSDFDialogstill fail to compile on Linux. libcvc'scvc/core/world_units.hnames a parametersi_value, and glibc's<signal.h>definessi_valueas a macro (_sifields._rt.si_sigval). That header didn't move, so this is unrelated to the state paths and has to be fixed in libcvc.volrover's CI has been red since at least 2026-09-16, before the state move, so CI won't validate this PR either.