Skip to content

ci(nfft): consume libcvc-deps v1.1.0 NFFT/FFTW on Linux+macOS#34

Merged
transfix merged 2 commits into
masterfrom
feature/f3dock-phase5-libcvc-deps-nfft
May 21, 2026
Merged

ci(nfft): consume libcvc-deps v1.1.0 NFFT/FFTW on Linux+macOS#34
transfix merged 2 commits into
masterfrom
feature/f3dock-phase5-libcvc-deps-nfft

Conversation

@transfix

Copy link
Copy Markdown
Owner

Phase 5 task 3 — CI plumbing.

Wires F2Dock CI to pull the prebuilt libcvc-deps v1.1.0 bundle on Linux + macOS via a new fetch-libcvc-deps composite action (copied from libcvc, default version bumped to 1.1.0). When the bundle resolves, the Unix Configure step prepends its root to CMAKE_PREFIX_PATH and PKG_CONFIG_PATH and exports LD_LIBRARY_PATH/DYLD_LIBRARY_PATH so libnfft3 + libfftw3 are visible at configure, build, and test time.

libcvc-deps v1.1.0 ships libnfft3 + nfft3.pc + libfftw3, so F2Dock's existing pkg_check_modules(NFFT) activates F2DOCK_HAVE_NFFT=1 on those runners. The CMake STATUS message added here (F2Dock: NFFT3 <version> detected via pkg-config; F2DOCK_HAVE_NFFT enabled) makes the activation observable in CI logs.

Scope: CI infrastructure + diagnostic only. No source changes to f3dock-nfft or fft-utils. FastGaussianSum::is_accelerated() still returns false because NFFT3's fastsum applications module is not built/installed into libnfft3.so by upstream. That sub-blocker will be filed upstream against transfix/libcvc-deps as a follow-up.

Windows: continues to use vcpkg (no NFFT). libcvc-deps integration there is a separate follow-up.

Docs: F3DOCK_MIGRATION_MATRIX.md Phase 5 task 3 updated to reflect partial unblock and the remaining fastsum-not-in-libnfft3 sub-blocker.

Adds a fetch-libcvc-deps composite action (copied from libcvc and bumped to v1.1.0) and wires it into the Unix CI path. When the bundle is fetched successfully, the Configure step prepends its root to CMAKE_PREFIX_PATH and PKG_CONFIG_PATH and exports LD_LIBRARY_PATH/DYLD_LIBRARY_PATH for downstream build+test steps. libcvc-deps v1.1.0 ships libnfft3 + nfft3.pc + libfftw3, so F2Dock's existing pkg_check_modules(NFFT) now activates F2DOCK_HAVE_NFFT=1 on those runners. Surfaces a CMake STATUS message on detection so CI logs make the activation observable. Windows continues to use vcpkg; libcvc-deps integration there is a follow-up. Updates doc/F3DOCK_MIGRATION_MATRIX.md Phase 5 task 3 to record partial unblock and the remaining NFFT3-fastsum-not-in-libnfft3 sub-blocker (to be filed upstream against libcvc-deps).
macOS-arm64 libcvc-deps bundle ships its own Boost which shadows brew's on CMAKE_PREFIX_PATH and triggers Boost multi_array concept-check failures inside libcvc's sources during the macos-latest jobs. Linux is unaffected (no system Boost on PATH ahead of bundle Boost in the relevant headers). Restrict the fetch to Linux until macOS bundle compatibility is sorted out upstream; F2DOCK_HAVE_NFFT activation on Linux is still the immediate goal of this PR.

Updates F3DOCK_MIGRATION_MATRIX.md Phase 5 task 3 wording accordingly.
@transfix transfix merged commit 0883fd3 into master May 21, 2026
10 checks passed
@transfix transfix deleted the feature/f3dock-phase5-libcvc-deps-nfft branch May 21, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant