mirror of
https://github.com/neovim/neovim.git
synced 2024-12-26 14:11:15 -07:00
192ea01edd
Install the icon of the application in the hicolor XDG icon theme; this way it can be properly loaded by XDG menus in the currently set XDG icon theme, without looking in the legacy pixmaps location.
90 lines
3.5 KiB
YAML
90 lines
3.5 KiB
YAML
name: nvim
|
|
base: core18
|
|
adopt-info: nvim
|
|
summary: Vim-fork focused on extensibility and agility.
|
|
description: |
|
|
Neovim is a project that seeks to aggressively refactor Vim in order to:
|
|
|
|
Simplify maintenance and encourage contributions
|
|
Split the work between multiple developers
|
|
Enable the implementation of new/modern user interfaces without any modifications to the core source
|
|
Improve extensibility with a new plugin architecture
|
|
For lots more details, see the wiki!
|
|
|
|
grade: stable # must be 'stable' to release into candidate/stable channels
|
|
confinement: classic
|
|
|
|
apps:
|
|
nvim:
|
|
command: usr/bin/nvim
|
|
environment:
|
|
HOME: /home/$USER
|
|
VIM: $SNAP/usr/share/nvim
|
|
VIMRUNTIME: $SNAP/usr/share/nvim/runtime
|
|
desktop: usr/share/applications/nvim.desktop
|
|
|
|
parts:
|
|
nvim:
|
|
source: https://github.com/neovim/neovim.git
|
|
override-pull: |
|
|
snapcraftctl pull
|
|
latest_tag="$(git tag -l --sort=refname|head -1)"
|
|
git checkout "${latest_tag}"
|
|
major="$(awk '/NVIM_VERSION_MAJOR/{gsub(")","",$2); print $2}' CMakeLists.txt)"
|
|
minor="$(awk '/NVIM_VERSION_MINOR/{gsub(")","",$2); print $2}' CMakeLists.txt)"
|
|
patch="$(awk '/NVIM_VERSION_PATCH/{gsub(")","",$2); print $2}' CMakeLists.txt)"
|
|
version_prefix="v$major.$minor.$patch"
|
|
git_described="$(git describe --first-parent --dirty 2> /dev/null | perl -lpe 's/v\d.\d.\d-//g')"
|
|
git_described="${git_described:-$(git describe --first-parent --tags --always --dirty)}"
|
|
if [ "${version_prefix}" != "${git_described}" ]; then
|
|
VERSION="${version_prefix}-${git_described}-${latest_tag}"
|
|
else
|
|
VERSION="${version_prefix}-${latest_tag}"
|
|
fi
|
|
snapcraftctl set-version "${VERSION}"
|
|
plugin: make
|
|
make-parameters:
|
|
- CMAKE_BUILD_TYPE=RelWithDebInfo
|
|
- CMAKE_INSTALL_PREFIX=/usr
|
|
- CMAKE_FLAGS=-DPREFER_LUA=ON
|
|
- DEPS_CMAKE_FLAGS="-DUSE_BUNDLED_LUA=ON -DUSE_BUNDLED_LUAJIT=OFF"
|
|
override-build: |
|
|
echo "Building on $SNAP_ARCH"
|
|
set -x
|
|
case "$SNAP_ARCH" in
|
|
"arm64" | "ppc64el" | "s390x")
|
|
make -j"${SNAPCRAFT_PARALLEL_BUILD_COUNT}" \
|
|
CMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
CMAKE_INSTALL_PREFIX=/usr \
|
|
CMAKE_FLAGS=-DPREFER_LUA=ON \
|
|
DEPS_CMAKE_FLAGS="-DUSE_BUNDLED_LUA=ON -DUSE_BUNDLED_LUAJIT=OFF"
|
|
;;
|
|
*)
|
|
make -j"${SNAPCRAFT_PARALLEL_BUILD_COUNT}" \
|
|
CMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
CMAKE_INSTALL_PREFIX=/usr
|
|
;;
|
|
esac
|
|
make DESTDIR="$SNAPCRAFT_PART_INSTALL" install
|
|
# Fix Desktop file
|
|
sed -i 's|^Exec=nvim|Exec=/snap/bin/nvim.nvim|' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/nvim.desktop
|
|
sed -i 's|^TryExec=nvim|TryExec=/snap/bin/nvim.nvim|' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/nvim.desktop
|
|
sed -i 's|^Icon=.*|Icon=${SNAP}/usr/share/icons/hicolor/128x128/apps/nvim.png|' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/nvim.desktop
|
|
build-packages:
|
|
- ninja-build
|
|
- libtool
|
|
- libtool-bin
|
|
- autoconf
|
|
- automake
|
|
- cmake
|
|
- gawk
|
|
- g++
|
|
- git
|
|
- gettext
|
|
- pkg-config
|
|
- unzip
|
|
- wget
|
|
prime:
|
|
- -usr/share/man
|
|
|