From 2d5cf8d6d6f137bb10b2a63823fc5382d7c78602 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Sun, 15 Feb 2026 13:54:21 -0600 Subject: Replace Python build deps with uv across all build paths Use uv as the single Python package manager for Docker, source, and Flatpak builds. Python 3.13 and pybind11==2.13.6 are now consistent across all three paths. - Docker: install uv + build venv instead of python3-dev/pip/pybind11-dev - CMake: bootstrap pyvenv with uv (REQUIRED/FATAL_ERROR) when no explicit Python provided; pin pybind11==2.13.6, add sip - Flatpak: remove pybind11 cmake module, use uv pip install --target for build deps, uv for portable Python packages - build-inner.sh: use BUILD_PY throughout, uv pip install for portable runtime packages, simplify embed check to direct Python invocation - VFS helper: fall back to shared libfuse3 when static .a unavailable Co-Authored-By: Claude Opus 4.6 --- src/src/CMakeLists.txt | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/src/CMakeLists.txt b/src/src/CMakeLists.txt index 664b236..699dfae 100644 --- a/src/src/CMakeLists.txt +++ b/src/src/CMakeLists.txt @@ -130,12 +130,25 @@ if(NOT WIN32) vfs/mo2filesystem.cpp vfs/inodetable.cpp vfs/overwritemanager.cpp) - # Statically link libfuse3 so the helper is fully self-contained (runs on - # the host via flatpak-spawn where the Flatpak SDK's .so files don't exist). + # Prefer static libfuse3 so the helper is fully self-contained (Flatpak + # runs it on the host via flatpak-spawn where SDK .so files don't exist). + # Fall back to shared linking for source builds where libfuse3.a isn't + # available (the helper still works since libfuse3.so is on the host). + find_library(_fuse3_static libfuse3.a PATHS ${FUSE3_LIBRARY_DIRS} NO_DEFAULT_PATH) + if(NOT _fuse3_static) + find_library(_fuse3_static libfuse3.a) + endif() target_link_directories(mo2-vfs-helper PRIVATE ${FUSE3_LIBRARY_DIRS}) - target_link_libraries(mo2-vfs-helper PRIVATE - -Wl,-Bstatic -lfuse3 -Wl,-Bdynamic - Threads::Threads) + if(_fuse3_static) + target_link_libraries(mo2-vfs-helper PRIVATE + -Wl,-Bstatic -lfuse3 -Wl,-Bdynamic + Threads::Threads) + else() + message(STATUS "libfuse3.a not found, linking mo2-vfs-helper against shared libfuse3") + target_link_libraries(mo2-vfs-helper PRIVATE + PkgConfig::FUSE3 + Threads::Threads) + endif() target_include_directories(mo2-vfs-helper PRIVATE ${FUSE3_INCLUDE_DIRS}) target_compile_definitions(mo2-vfs-helper PRIVATE FUSE_USE_VERSION=35) target_compile_features(mo2-vfs-helper PRIVATE cxx_std_23) @@ -262,6 +275,12 @@ if(NOT WIN32) endif() endif() + # ── Deploy bundled stylesheets (themes) ── + add_custom_command(TARGET organizer POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${CMAKE_CURRENT_SOURCE_DIR}/stylesheets" + "$/stylesheets") + # Keep only the canonical Fallout NV plugin filename on Linux (case-sensitive FS). add_custom_command(TARGET organizer POST_BUILD COMMAND ${CMAKE_COMMAND} -E rm -f "$/plugins/libgame_falloutnv.so") -- cgit v1.3.1