diff --git a/DeployMacros.cmake b/DeployMacros.cmake index a110e1b..0863c33 100644 --- a/DeployMacros.cmake +++ b/DeployMacros.cmake @@ -978,7 +978,7 @@ macro(deploy_target _T) COMMAND mkdir ${_VERB} -p "${_flatpak_build_dir}" COMMAND "${CMAKE_COMMAND}" -DFULLNAME=${_flatpak_app_id} -DFLATPAK_RUNTIME=${_flatpak_runtime} -DFLATPAK_RUNTIME_VER=${_flatpak_runtime_ver} -DFLATPAK_SDK=${_flatpak_sdk} -DTARGET_NAME=${_flatpak_bin_name} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -DFLATPAK_FINISH_ARGS="${_flatpak_finish_args}" -DTEMPLATE=${_modules_dir}/DeployTargetFlatpak.yml.in -DOUTPUT=${_flatpak_manifest} -P ${_modules_dir}/DeployTargetFlatpak.yml.cmake COMMAND mkdir ${_VERB} -p "${_DESTINATION}" - COMMAND ${FLATPAK_BUILDER} --install-deps-from=flathub --force-clean --repo=${_flatpak_repo} "${_flatpak_build_dir}" "${_flatpak_manifest}" + COMMAND ${FLATPAK_BUILDER} --install-deps-from=flathub --force-clean --state-dir="${_flatpak_build_dir}/.flatpak-builder" --repo=${_flatpak_repo} "${_flatpak_build_dir}" "${_flatpak_manifest}" COMMAND flatpak build-bundle "${_flatpak_repo}" "${_DESTINATION}/${_flatpak_name}" "${_flatpak_app_id}" ) diff --git a/DeployTargetFlatpak.yml.in b/DeployTargetFlatpak.yml.in index fd631a1..92c0478 100644 --- a/DeployTargetFlatpak.yml.in +++ b/DeployTargetFlatpak.yml.in @@ -1,43 +1,35 @@ app-id: @FULLNAME@ -runtime: @FLATPAK_RUNTIME@ -runtime-version: "@FLATPAK_RUNTIME_VER@" -sdk: @FLATPAK_SDK@ +runtime: org.kde.Platform +runtime-version: "5.15-24.08" +sdk: org.kde.Sdk command: @TARGET_NAME@ finish-args: - - --socket=pulseaudio + - --share=ipc + - --socket=fallback-x11 - --socket=wayland - - --socket=x11 + - --socket=pulseaudio - --filesystem=home - --device=dri @@FLATPAK_FINISH_ARGS@@ modules: - - name: qt5-modules + - name: libsodium buildsystem: simple - build-commands: [] + build-commands: + - ./autogen.sh && ./configure --prefix=/app --enable-shared --disable-static && make && make install sources: - - type: apt - suites: - - jammy - architectures: - - amd64 - packages: - - qtbase5-dev - - qtbase5-dev-tools - - libqt5svg5-dev - - libqt5sql5-sqlite - - libqt5x11extras5-dev - - qmakeqt5 + - type: git + url: https://github.com/jedisct1/libsodium.git + tag: 1.0.18 + commit: 45b09a607d596e40adbff9ab812e47d85175c053 - name: shstk buildsystem: simple build-commands: - mkdir -p _build && cd _build && cmake -G Ninja .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/app -DINSTALL_DIR=/app -DLOCAL=1 -DSHSTKPROJECT=1 -DROOT_DIR=/run/build/shstk -DUTILS=OFF -DDESIGNER_PLUGINS=OFF -DQGLVIEW=OFF -DQGLENGINE=OFF -DICU=OFF && ninja && ninja install - - mkdir -p /app/lib /app/bin - for f in /app/lib/*.so*; do patchelf --set-rpath /app/lib "$f" 2>/dev/null || true; done sources: - - type: git - url: https://git.shstk.ru/SHS/shstk.git - branch: master + - type: dir + path: /home/andrey/work/shstk cleanup: [] - name: @TARGET_NAME@ @@ -45,11 +37,24 @@ modules: builddir: true config-opts: - -DCMAKE_BUILD_TYPE=Release - - -DCMAKE_PREFIX_PATH=/app;/usr - - -DCMAKE_MODULE_PATH=/app/cmake;/run/build/shstk/cmake + - -DCMAKE_TOOLCHAIN_FILE=/app/cmake/flatpak-toolchain.cmake + - -DBUILD_STAND=OFF + - -DBUILD_BSM=OFF + - -DBUILD_TSS=OFF + - -DPIP_CMG=/app/bin/pip_cmg + - -DPIP_RC=/app/bin/pip_rc + - -DPIP_TR=/app/bin/pip_tr + - -DPIP_DEPLOY_TOOL=/app/bin/deploy_tool + build-commands: + - ninja + - mkdir -p /app/bin /app/bin/lang /app/bin/uds_scripts + - cp -f gui/AWRCANFlasherGUI /app/bin/ + - cp -f gui/qt5/*.qm /app/bin/lang/ 2>/dev/null || true + - cp -rf uds_scripts/* /app/bin/uds_scripts/ 2>/dev/null || true env: - CMAKE_PREFIX_PATH: /app;/usr - PKG_CONFIG_PATH: /app/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig + CMAKE_PREFIX_PATH: /app + PKG_CONFIG_PATH: /app/lib/pkgconfig + PATH: /app/bin:/usr/bin:/bin sources: - type: dir - path: @SOURCE_DIR@ + path: @SOURCE_DIR@/.. diff --git a/flatpak-toolchain.cmake b/flatpak-toolchain.cmake new file mode 100644 index 0000000..f1d0dfe --- /dev/null +++ b/flatpak-toolchain.cmake @@ -0,0 +1,22 @@ +# CMake toolchain for flatpak builds +# Usage: -DCMAKE_TOOLCHAIN_FILE=flatpak-toolchain.cmake + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR x86_64) + +# Install prefix inside flatpak sandbox +set(CMAKE_INSTALL_PREFIX /app CACHE PATH "Install prefix" FORCE) +set_property(CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE /app) +set(INSTALL_DIR /app CACHE PATH "Install dir for cmake modules" FORCE) + +# Search paths inside flatpak +set(CMAKE_PREFIX_PATH /app CACHE PATH "Prefix path" FORCE) + +# CMake module path +list(APPEND CMAKE_MODULE_PATH /app/cmake) + +# Skip system paths +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)