# Contributor: Daniel Sabogal <dsabogalcc@gmail.com>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
#
# secfixes:
#   0.1.6-r1:
#     - CVE-2016-1248
#   0.2.0-r0:
#     - CVE-2017-5953
#     - CVE-2017-6349
#     - CVE-2017-6350
#   0.3.6-r0:
#     - CVE-2019-12735

# TODO: Try to trim the base package to include only common syntax files etc.
pkgname=neovim
pkgver=0.4.3
pkgrel=1
pkgdesc="Vim-fork focused on extensibility and agility"
url="https://neovim.io"
arch="all !s390x" # s390x: needs luajit
license="Apache-2.0 custom"
makedepends="cmake gettext-dev gperf libtermkey-dev libuv-dev libvterm-dev
	lua5.1-lpeg lua5.1-mpack msgpack-c-dev unibilium-dev libluv-dev"
# Build neovim with lua instead of luajit on aarch64
# See https://github.com/neovim/neovim/issues/7879
case "$CARCH" in
	aarch64) makedepends="$makedepends lua5.1-dev lua5.1-bitop" ;;
	*) makedepends="$makedepends luajit-dev" ;;
esac
subpackages="$pkgname-lang $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/neovim/neovim/archive/v$pkgver.tar.gz
	nodoc.txt
	"

build() {
	mkdir -p "$builddir"/build
	cd "$builddir"/build

	local cmakeoptions=
	case "$CARCH" in
		aarch64) cmakeoptions="-DPREFER_LUA=ON" ;;
	esac

	cmake .. \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DENABLE_JEMALLOC=FALSE \
		-DCMAKE_VERBOSE_MAKEFILE=TRUE \
		$cmakeoptions
	make
}

package() {
	cd "$builddir"/build
	make DESTDIR="$pkgdir" install
}

doc() {
	default_doc

	pkgdesc="$pkgdesc (documentation and help pages)"
	replaces="$pkgname"
	local docdir="usr/share/nvim/runtime/doc"

	mkdir -p "$subpkgdir"/$docdir
	mv "$pkgdir"/$docdir/*.txt "$subpkgdir"/$docdir/

	# When user execute ":help <pattern>", neovim will open nodoc.txt
	# with information why docs are not available and how to install them.
	install -D "$srcdir"/nodoc.txt \
		"$pkgdir"/$docdir/nodoc.txt
	local f; for f in "$subpkgdir"/$docdir/*.txt; do
		ln -s nodoc.txt "$pkgdir"/$docdir/$(basename $f)
	done
}

sha512sums="e13853fa296eda8618f389c71b6cbbd6f01d561615e80cc92959131dd10e395b1c6732a7d9ef6dbb9fe3ea9da4c11485b464547e2d46b22e59b8a20214e861f5  neovim-0.4.3.tar.gz
72ab288f53acddc088c567aafe8c5afa6835325fab7879e782d1d62f87a662f3a6bac123c450debbae1b32336cc60b2830b429838ee3dfcc7524773b5069f4f0  nodoc.txt"
