- name: Remove existing install {{ pkg }} when: - hyprland_clean become: "{{ ext_become }}" loop: "{{ xdg_desktop_portal_hyprland.installed_files }}" loop_control: loop_var: file ansible.builtin.file: state: absent path: "{{ hyprland.prefix }}/{{ file }}" - name: Check for installed {{ pkg }} register: stat_xdg_desktop_portal_hyprland_bin ansible.builtin.stat: path: "{{ hyprland.prefix }}/bin/hyprland-share-picker" - name: Build and install {{ pkg }} when: - not stat_xdg_desktop_portal_hyprland_bin.stat.exists block: - name: Clone git repository {{ pkg }} ansible.builtin.git: depth: 1 dest: "{{ xdg_desktop_portal_hyprland.git_path }}" recursive: true repo: "{{ xdg_desktop_portal_hyprland.repo }}" version: "{{ xdg_desktop_portal_hyprland.vers }}" - name: Configure {{ pkg }} ansible.builtin.command: creates: "{{ xdg_desktop_portal_hyprland.git_path }}/build" chdir: "{{ xdg_desktop_portal_hyprland.git_path }}" argv: - cmake - -DCMAKE_INSTALL_LIBEXECDIR={{ hyprland.prefix }}/lib - -DCMAKE_INSTALL_PREFIX={{ hyprland.prefix }} - -B - ./build - name: Build {{ pkg }} ansible.builtin.command: creates: "{{ xdg_desktop_portal_hyprland.git_path }}/build/xdg-desktop-portal-hyprland" chdir: "{{ xdg_desktop_portal_hyprland.git_path }}" argv: - cmake - --build - ./build - --config - Release - --target - all - -j - "{{ ansible_processor_nproc|int }}" - name: Install {{ pkg }} become: true ansible.builtin.command: creates: "{{ path.bin }}/hyprland-share-picker" chdir: "{{ xdg_desktop_portal_hyprland.git_path }}" argv: - cmake - --install - ./build