diff --git a/CMakeLists.txt b/CMakeLists.txt index 42f1660..c297cdd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,7 @@ option(BUILD_TESTING "Build tests") option(BUILD_FUZZING "Build tests") option(LIBCLANG_PATH "Use custom path for libclang") option(LIBLLDB_PATH "Use custom path for liblldb") +option(FLATPAK_SANDBOX "Runs from within a flatpak sandbox") # This is forwarded to the tiny-process-library submodule find_package(Boost 1.54 COMPONENTS REQUIRED filesystem serialization) find_package(ASPELL REQUIRED) diff --git a/jucipp.yaml b/jucipp.yaml new file mode 100644 index 0000000..ced0cff --- /dev/null +++ b/jucipp.yaml @@ -0,0 +1,234 @@ +id: com.gitlab.cppit.jucipp +command: juci + +# Install via: flatpak install flathub org.gnome.Platform//42 org.gnome.Sdk//42 +runtime: org.gnome.Platform +runtime-version: '42' +sdk: org.gnome.Sdk +sdk-extensions: + # Install via: flatpak install flathub org.freedesktop.Sdk.Extension.llvm14 + - org.freedesktop.Sdk.Extension.llvm14 + +rename-desktop-file: juci.desktop +rename-icon: juci +finish-args: + - --socket=x11 + - --share=ipc # somewhat required by X11 + - --socket=wayland + - --share=network # Unix sockets are e.g. used by X11 + - --filesystem=host:rw # access all files on the host + - --filesystem=home:rw # access all files on the host + - --talk-name=org.freedesktop.Flatpak # allows to run processes outside of flatpak sandbox + - --persist=.juci # persist configuration + +modules: + - name: boost + buildsystem: simple + sources: + - type: archive + url: https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2 + sha256: 475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39 + build-commands: + - ./bootstrap.sh --prefix="${FLATPAK_DEST}" --with-libraries=filesystem,serialization + - ./b2 -j $FLATPAK_BUILDER_N_JOBS install + cleanup: + - /include + - '/lib/libboost_*.a' + - /lib/cmake + - /lib/debug + - /lib/pkgconfig + + - name: mm-common # build-dependency of gtkmm + sources: + - type: archive + url: https://download.gnome.org/sources/mm-common/1.0/mm-common-1.0.4.tar.xz + sha256: e954c09b4309a7ef93e13b69260acdc5738c907477eb381b78bb1e414ee6dbd8 + cleanup: + - '*' + + - name: sigc++-2 # dependency of gtkmm + buildsystem: autotools + config-opts: + - --disable-documentation + sources: + - type: archive + url: https://download.gnome.org/sources/libsigc%2B%2B/2.10/libsigc%2B%2B-2.10.8.tar.xz + sha256: 235a40bec7346c7b82b6a8caae0456353dc06e71f14bc414bcc858af1838719a + cleanup: + - /include + - /lib/debug + - /lib/sigc++-2.0 + - /lib/pkgconfig + - /lib/libsigc-2.0.la + + - name: glibmm # dependency of gtkmm + buildsystem: meson + sources: + - type: archive + url: https://download.gnome.org/sources/glibmm/2.66/glibmm-2.66.2.tar.xz + sha256: b2a4cd7b9ae987794cbb5a1becc10cecb65182b9bb841868625d6bbb123edb1d + cleanup: + - /include + - /lib/debug + - /lib/giomm-2.4 + - /lib/glibmm-2.4 + - /lib/pkgconfig + + - name: cairomm # dependency of gtkmm + buildsystem: autotools + config-opts: + - --disable-documentation + sources: + - type: archive + url: https://www.cairographics.org/releases/cairomm-1.14.3.tar.xz + sha256: 0d37e067c5c4ca7808b7ceddabfe1932c5bd2a750ad64fb321e1213536297e78 + cleanup: + - /include + - /lib/cairomm-1.0 + - /lib/debug + - /lib/pkgconfig + - /lib/libcairomm-1.0.la + + - name: pangomm # dependency of gtkmm + buildsystem: meson + sources: + - type: archive + url: https://download.gnome.org/sources/pangomm/2.46/pangomm-2.46.2.tar.xz + sha256: 57442ab4dc043877bfe3839915731ab2d693fc6634a71614422fb530c9eaa6f4 + cleanup: + - /include + - /lib/debug + - /lib/pangomm-1.4 + - /lib/pkgconfig + + - name: atkmm # dependency of gtkmm + buildsystem: meson + sources: + - type: archive + url: https://download.gnome.org/sources/atkmm/2.28/atkmm-2.28.2.tar.xz + sha256: a0bb49765ceccc293ab2c6735ba100431807d384ffa14c2ebd30e07993fd2fa4 + cleanup: + - /include + - /lib/atkmm-1.6 + - /lib/debug + - /lib/pkgconfig + + - name: gtkmm + buildsystem: meson + sources: + - type: archive + url: https://download.gnome.org/sources/gtkmm/3.24/gtkmm-3.24.5.tar.xz + sha256: 856333de86689f6a81c123f2db15d85db9addc438bc3574c36f15736aeae22e6 + cleanup: + - /include + - /lib/debug + - /lib/gdkmm-3.0 + - /lib/gtkmm-3.0 + - /lib/pkgconfig + + - name: gtksourceview # dependency of gtksourceviewmm + buildsystem: autotools + config-opts: + - --disable-documentation + sources: + - type: archive + url: https://download.gnome.org/sources/gtksourceview/3.24/gtksourceview-3.24.11.tar.xz + sha256: 691b074a37b2a307f7f48edc5b8c7afa7301709be56378ccf9cc9735909077fd + cleanup: + - /include + - /lib/debug + - /lib/pkgconfig + - /lib/libgtksourceview-3.0.la + - /share/gtk-doc + - /share/vala + + - name: gtksourceviewmm + buildsystem: autotools + config-opts: + - --disable-documentation + sources: + - type: archive + url: https://download.gnome.org/sources/gtksourceviewmm/3.21/gtksourceviewmm-3.21.3.tar.xz + sha256: dbb00b1c28e0407cc27d8b07a2ed0b4ea22f92e4b3e3006431cbd6726b6256b5 + cleanup: + - /include + - /lib/debug + - /lib/gtksourceviewmm-3.0 + - /lib/pkgconfig + - /lib/libgtksourceviewmm-3.0.la + + - name: ncurses # build-depencendy of aspell (required to build aspell executable) + buildsystem: autotools + sources: + - type: archive + url: https://ftp.gnu.org/gnu/ncurses/ncurses-6.3.tar.gz + sha256: 97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059 + cleanup: + - '*' + + - name: aspell + buildsystem: autotools + sources: + - type: archive + url: https://ftp.gnu.org/gnu/aspell/aspell-0.60.8.tar.gz + sha256: f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2 + cleanup: + - /bin + - /include + - /lib/debug + - /lib/pkgconfig + - /lib/libaspell.la + - '/lib/libpspell.*' + - /share/info + - /share/man + + - name: aspell-en + buildsystem: simple + sources: + - type: archive + url: https://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2020.12.07-0.tar.bz2 + sha256: 4c8f734a28a088b88bb6481fcf972d0b2c3dc8da944f7673283ce487eac49fb3 + build-commands: + - ./configure + - make -j $FLATPAK_BUILDER_N_JOBS + - make install + + - name: libgit2 + buildsystem: cmake + config-opts: + - -DBUILD_TESTS=OFF + sources: + - type: archive + url: https://github.com/libgit2/libgit2/archive/refs/tags/v1.4.3.tar.gz + sha256: f48b961e463a9e4e7e7e58b21a0fb5a9b2a1d24d9ba4d15870a0c9b8ad965163 + cleanup: + - /include + - /lib/debug + - /lib/pkgconfig + + - name: jucipp + buildsystem: simple + build-options: + append-path: /usr/lib/sdk/llvm14/bin + prepend-ld-library-path: /usr/lib/sdk/llvm14/lib + sources: + - type: git + branch: gcc11_fix + url: https://gitlab.com/cppit/jucipp.git + build-commands: + - cp -r /usr/lib/sdk/llvm14/lib/* /app/lib/ + - cp -r /usr/lib/sdk/llvm14/include/* /app/include/ + - cmake -DCMAKE_INSTALL_PREFIX=${FLATPAK_DEST} -DFLATPAK_SANDBOX=ON . + - cmake --build . -- -j $FLATPAK_BUILDER_N_JOBS + - make install + cleanup: + - /include + - /lib/clang + - /lib/cmake + - /lib/debug/lib + - /lib/libear + - /lib/libscanbuild + - /lib/python3.9 + - '/lib/libLTO.*' + - '/lib/libRemarks.*' + - /lib/LLVMgold.so