app-id: eu.lastviking.lgx runtime: org.kde.Platform runtime-version: "6.10" sdk: org.kde.Sdk command: lgx # LGX is packaged as a Flatpak for distribution convenience, updates, and # installation comfort. It is not intended to be meaningfully sandboxed. # The app is a system-level developer tool and needs broad host integration. finish-args: # Full filesystem access for arbitrary log files and project trees - --filesystem=host # Normal desktop integration - --socket=wayland - --socket=fallback-x11 - --share=ipc # Host command execution for docker, adb, journalctl, shell pipelines, and similar tools - --talk-name=org.freedesktop.Flatpak modules: # Boost headers-only library (not included in org.kde.Sdk). # LGX uses boost/unordered which requires only header files. # We also install a minimal BoostConfig.cmake so CMake's find_package(Boost) # can locate Boost in config mode (required by newer CMake versions that no # longer ship FindBoost.cmake). - name: boost-headers buildsystem: simple build-commands: - mkdir -p /app/include /app/lib/cmake/Boost-1.90.0 - cp -r boost-src/boost /app/include/boost - | cat > /app/lib/cmake/Boost-1.90.0/BoostConfig.cmake << 'CMEOF' set(Boost_FOUND TRUE) set(Boost_VERSION "1.90.0") if(NOT TARGET Boost::headers) add_library(Boost::headers INTERFACE IMPORTED) set_target_properties(Boost::headers PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "/app/include") endif() if(NOT TARGET Boost::boost) add_library(Boost::boost INTERFACE IMPORTED) set_target_properties(Boost::boost PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "/app/include") endif() CMEOF - | cat > /app/lib/cmake/Boost-1.90.0/BoostConfigVersion.cmake << 'CMEOF' set(PACKAGE_VERSION "1.90.0") if(PACKAGE_FIND_VERSION VERSION_GREATER "1.90.0") set(PACKAGE_VERSION_COMPATIBLE FALSE) else() set(PACKAGE_VERSION_COMPATIBLE TRUE) endif() CMEOF sources: - type: archive url: https://github.com/boostorg/boost/releases/download/boost-1.90.0/boost-1.90.0-b2-nodocs.tar.gz sha256: e848446c6fec62d8a96b44ed7352238b3de040b8b9facd4d6963b32f541e00f5 dest: boost-src strip-components: 1 - name: lgx buildsystem: simple build-commands: - | cmake -S . -B _build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/app \ -DCMAKE_PREFIX_PATH=/app \ -DLGX_QCORO_SOURCE_DIR="$(pwd)/third_party/qcoro" \ -DLGX_LOGFAULT_SOURCE_DIR="$(pwd)/third_party/logfault" \ -DLGX_ENABLE_TESTS=OFF \ -DLGX_ENABLE_SYSTEMD_SOURCE=ON - cmake --build _build --parallel - install -Dm755 _build/bin/lgx /app/bin/lgx - install -Dm644 images/lgxicon.svg /app/share/icons/hicolor/scalable/apps/eu.lastviking.lgx.svg - install -Dm644 flatpak/eu.lastviking.lgx.desktop /app/share/applications/eu.lastviking.lgx.desktop - install -Dm644 _build/flatpak/eu.lastviking.lgx.metainfo.xml /app/share/metainfo/eu.lastviking.lgx.metainfo.xml sources: # Main LGX source tree - type: dir path: .. # qcoro — fetched offline so flatpak-builder clones it before the build # cmake is told where to find it via LGX_QCORO_SOURCE_DIR. # For reproducible / Flathub builds, replace the tag with the exact commit SHA: # git ls-remote https://github.com/qcoro/qcoro.git refs/tags/v0.12.0 - type: git url: https://github.com/qcoro/qcoro.git tag: v0.12.0 dest: third_party/qcoro # logfault — same pattern. # For Flathub, replace tag with the exact commit SHA: # git ls-remote https://github.com/jgaa/logfault.git refs/tags/v0.8.5 - type: git url: https://github.com/jgaa/logfault.git tag: v0.8.5 dest: third_party/logfault