- name: Install build dependencies become: yes apt: state: latest install_recommends: false name: # General - build-essential - cmake - meson # Hyprland - libwayland-dev - wayland-protocols - libpango1.0-dev - libtomlplusplus-dev - libdrm-dev - libxkbcommon-dev - libinput-dev # xdg-desktop-portal-hyprland - qtbase5-dev - libspa-0.2-dev - libpipewire-0.3-dev - name: Create source folders become: yes file: path: "/usr/local/src/{{ item }}" state: directory owner: "{{ ansible_user_id }}" group: "{{ ansible_user_id }}" loop: - "Hyprland" - "hyprlang" - "xdg-desktop-portal-hyprland" - name: Checkout Hyprland repo ansible.builtin.git: repo: 'https://github.com/hyprwm/Hyprland.git' dest: /usr/local/src/Hyprland version: v0.35.0 force: true recursive: true - name: Checkout hyprlang repo ansible.builtin.git: repo: 'https://github.com/hyprwm/hyprlang.git' dest: /usr/local/src/hyprlang version: v0.4.0 force: true recursive: true - name: Checkout xdg-desktop-portal-hyprland repo ansible.builtin.git: repo: 'https://github.com/hyprwm/xdg-desktop-portal-hyprland.git' dest: /usr/local/src/xdg-desktop-portal-hyprland version: v1.3.1 force: true recursive: true - name: Build Hyprland community.general.make: chdir: /usr/local/src/Hyprland target: all - name: Install Hyprland become: true community.general.make: chdir: /usr/local/src/Hyprland target: install - name: Build hyprlang ansible.builtin.command: cmd: "{{ item }}" chdir: /usr/local/src/hyprlang loop: - "cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B build" - "cmake --build build --config Release --target hyprlang -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`" - name: Install hyprlang become: yes ansible.builtin.command: cmd: "cmake --install build" chdir: /usr/local/src/hyprlang - name: Build xdg-desktop-portal-hyprland ansible.builtin.command: cmd: "{{ item }}" chdir: /usr/local/src/xdg-desktop-portal-hyprland loop: - "cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build" - "cmake --build build" - name: Install xdg-desktop-portal-hyprland become: yes ansible.builtin.command: cmd: "cmake --install build" chdir: /usr/local/src/xdg-desktop-portal-hyprland - name: Move xdg-desktop-portal-hyprland.service into place become: yes ansible.builtin.copy: src: /usr/lib/x86_64-linux-gnu/systemd/user/xdg-desktop-portal-hyprland.service dest: /usr/lib/systemd/user/xdg-desktop-portal-hyprland.service - name: Reload systemd ansible.builtin.systemd_service: daemon_reload: true