config: windows: dependencies: # We only run `choco` when not in CI env because it's pretty unreliable and slow. # The Chocolatey mirror cannot be 100% reliable (according to docs) so it will often fail # with an error `503 (Service Unavailable: Back-end server is at capacity)` which causes # the nightly CI to fail intermittently. command-elevated: if not defined CI (choco install Chocolatey.config -y) # We only run `winget` when not in CI env; it's not available on the GitHub Windows runner. # It's simpler to solve dependencies like Ninja with a GitHub workflow action, and cmake is # already installed on the Windows runner. command: if not defined CI (winget install ninja-build.ninja cmake) qt: version: 6.7.2 mirror: https://qt.mirror.constant.com/ base-dir: ./deps/qt mac: dependencies: command: brew bundle --file=Brewfile qt: version: 6.7.2 mirror: https://qt.mirror.constant.com/ base-dir: ./deps/qt linux: debian: &debian dependencies: command-pre: sudo apt-get update command: | sudo apt-get install -y \ cmake \ make \ ninja-build \ g++ \ file \ xorg-dev \ libx11-dev \ libxtst-dev \ libssl-dev \ libglib2.0-dev \ libgdk-pixbuf-2.0-dev \ libnotify-dev \ libxkbfile-dev \ qt6-base-dev \ qt6-tools-dev \ libgtk-3-dev \ libgtest-dev \ libgmock-dev \ libpugixml-dev \ libei-dev \ libportal-dev \ libtomlplusplus-dev \ libcli11-dev optional: [libei-dev, libportal-dev, libtomlplusplus-dev] linuxmint: <<: *debian ubuntu: <<: *debian fedora: &fedora dependencies: &fedora_deps command-pre: sudo dnf check-update command: | sudo dnf install -y \ cmake \ make \ ninja-build \ gcc-c++ \ rpm-build \ openssl-devel \ glib2-devel \ gdk-pixbuf2-devel \ libXtst-devel \ libnotify-devel \ libxkbfile-devel \ qt6-qtbase-devel \ qt6-qttools-devel \ gtk3-devel \ gtest-devel \ gmock-devel \ pugixml-devel \ libei-devel \ libportal-devel \ tomlplusplus-devel \ cli11-devel optional: [libei-devel, libportal-devel] # RHEL is not actually supported yet, since it doesn't have Qt6 libs. # We simply use it as a base for Alma Linux and Rocky Linux. rhel: &rhel <<: *fedora dependencies: &rhel_deps <<: *fedora_deps command-pre: | sudo dnf check-update; sudo dnf install -y epel-release; dnf config-manager --set-enabled crb rocky: <<: *rhel dependencies: <<: *rhel_deps almalinux: <<: *rhel dependencies: <<: *rhel_deps opensuse-tumbleweed: &opensuse-tumbleweed dependencies: command-pre: sudo zypper refresh command: sudo zypper install -y --force-resolution \ cmake \ make \ ninja \ gcc-c++ \ rpm-build \ libopenssl-devel \ glib2-devel \ gdk-pixbuf-devel \ libXtst-devel \ libnotify-devel \ libxkbfile-devel \ qt6-base-devel \ qt6-tools-devel \ gtk3-devel \ googletest-devel \ googlemock-devel \ pugixml-devel \ libei-devel \ libportal-devel \ tomlplusplus-devel \ cli11-devel arch: &arch dependencies: command: sudo pacman -Syu --noconfirm \ base-devel \ cmake \ ninja \ gcc \ openssl \ glib2 \ gdk-pixbuf2 \ libxtst \ libnotify \ libxkbfile \ gtest \ pugixml \ libei \ libportal \ qt6-base \ qt6-tools \ gtk3 \ tomlplusplus \ cli11 manjaro: <<: *arch subprojects: libei: dependencies: debian: &debian_libei | sudo apt-get install -y \ python3-attr \ python3-jinja2 \ libsystemd-dev && pip install attrs jinja2 ubuntu: *debian_libei linuxmint: *debian_libei fedora: &fedora_libei | sudo dnf install -y \ python3-attrs \ python3-jinja2 \ systemd-devel && pip install attrs jinja2 rhel: *fedora_libei rocky: *fedora_libei almalinux: *fedora_libei libportal: dependencies: debian: &debian_libportal | sudo apt-get install -y \ python3-dbusmock \ python3-pytest \ valac \ protobuf-c-compiler \ protobuf-compiler \ libglib2.0 \ libgtk-3-dev \ libprotobuf-c-dev \ libsystemd-dev \ libgirepository1.0-dev ubuntu: *debian_libportal linuxmint: *debian_libportal