# vim: set filetype=yaml.ansible : # ## Package: neovim ## Description: fork of vim focusing on modern development ## Version: v0.12.1 ## Methods: [source, system, appimage, archive] ## Helpers: [make, archive, appimage] --- - name: Set neovim default facts # {{{ ansible.builtin.set_fact: neovim: methods: default: [system, source, appimage, archive] pkgname: default: neovim build_deps: Archlinux: - base-devel - ninja - curl RedHat: - curl - gcc - gettext - glibc-gconv-extra - make - ninja-build Debian: - build-essential - curl - gettext - ninja-build Darwin: - curl - gettext - ninja Alpine: - build-base - coreutils - curl - gettext-dev - name: Finalise neovim default facts ansible.builtin.set_fact: neovim: methods: "{{ neovim.methods[os_family] | neovim.methods.default }}" git_repo: https://github.com/neovim/neovim appimage: base_url: https://github.com/neovim/neovim/releases/download pkg_deps: - cmake version: v0.12.1 pkgname: "{{ neovim.pkgname[os_family] | neovim.pkgname.default }}" build_files: - to: lib64/nvim - to: bin/nvim - to: share/nvim - to: share/applications/nvim.desktop - to: share/icons/hicolor/128x128/apps/nvim.png - to: share/man/man1/nvim.1 build_pkgdeps: - cmake - git build_deps: "{{ neovim.build_deps[os_family] | neovim.build_deps.default }}" # }}} - name: Configure neovim when: - "'neovim' not in __configured" block: - name: Set neovim install method when: - neovim_imethod is undefined ansible.builtin.set_fact: neovim_imethod: "{{ imethod if imethod in neovim.methods else neovim.methods[0] }}" - name: Configure neovim source install when: - neovim_imethod == "source" block: - name: Queue pkg build deps when: - neovim.build_pkgdeps is defined loop: "{{ neovim.build_pkgdeps }}" loop_control: loop_var: dep ansible.builtin.include_tasks: "pkgs/{{ dep }}.yml" - name: Set helper facts ansible.builtin.set_fact: neovim_src_install: path: "{{ d_cache.path }}/neovim" repo: "{{ neovim.git_repo }}" version: "{{ neovim.version }}" targets: build: name: "" do_become: false params: CMAKE_BUILD_TYPE: Release CMAKE_EXTRA_FLAGS: "-DCMAKE_INSTALL_PREFIX={{ install_prefix }}" install: name: install do_become: true - name: Append neovim to source install list ansible.builtin.set_fact: pkg_make: "{{ pkg_make + [neovim_src_install] }}" neovim_install: "{{ neovim_imethod }}={{ neovim_src_install }}" - name: Finalized neovim configuration ansible.builtin.set_fact: __configured: "{{ __configured | combine( { 'neovim': neovim_imethod } ) }}"