blob: da37df6874aab934fb4efb7284520f5f61109ae0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# RelWithDebInfo sets -Og -g
CMAKE_BUILD_TYPE=Release
LUA_COMPAT=( lua5-{1..2} luajit )
inherit cmake lua-single optfeature xdg
DESCRIPTION="Vim-fork focused on extensibility and agility"
HOMEPAGE="https://neovim.io"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/neovim/neovim.git"
else
SRC_URI="https://github.com/neovim/neovim/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
fi
LICENSE="Apache-2.0 vim"
SLOT="0"
IUSE="+lto +nvimpager test +tui"
REQUIRED_USE="${LUA_REQUIRED_USE}"
# Upstream say the test library needs LuaJIT
# https://github.com/neovim/neovim/blob/91109ffda23d0ce61cec245b1f4ffb99e7591b62/CMakeLists.txt#L377
REQUIRED_USE="test? ( lua_single_target_luajit )"
# TODO: Get tests running
RESTRICT="!test? ( test ) test"
# Upstream build scripts invoke the Lua interpreter
BDEPEND="${LUA_DEPS}
>=dev-util/gperf-3.1
>=sys-devel/gettext-0.20.1
virtual/libiconv
virtual/libintl
virtual/pkgconfig
"
# Check https://github.com/neovim/neovim/blob/master/third-party/CMakeLists.txt for
# new dependency bounds and so on on bumps (obviously adjust for right branch/tag).
DEPEND="${LUA_DEPS}
>=dev-lua/luv-1.44.2[${LUA_SINGLE_USEDEP}]
$(lua_gen_cond_dep '
dev-lua/lpeg[${LUA_USEDEP}]
dev-lua/mpack[${LUA_USEDEP}]
')
$(lua_gen_cond_dep '
dev-lua/LuaBitOp[${LUA_USEDEP}]
' lua5-{1,2})
>=dev-libs/libuv-1.44.2:=
>=dev-libs/libvterm-0.3
>=dev-libs/msgpack-3.0.0:=
>=dev-libs/tree-sitter-0.20.2:=
tui? (
>=dev-libs/libtermkey-0.22
>=dev-libs/unibilium-2.0.0:0=
)
"
RDEPEND="
${DEPEND}
app-eselect/eselect-vi
"
BDEPEND="
test? (
$(lua_gen_cond_dep 'dev-lua/busted[${LUA_USEDEP}]')
)
"
PATCHES=()
if [[ ${PV} == 9999 ]]; then
PATCHES+=(
"${FILESDIR}/${PN}-9999-cmake_lua_version.patch"
"${FILESDIR}/${PN}-9999-cmake-darwin.patch"
)
else
PATCHES+=(
"${FILESDIR}/${PN}-9999-cmake_lua_version.patch"
"${FILESDIR}/${PN}-9999-cmake-darwin.patch"
)
fi
src_prepare() {
# Use our system vim dir
sed -e "/^# define SYS_VIMRC_FILE/s|\$VIM|${EPREFIX}/etc/vim|" \
-i src/nvim/globals.h || die
# https://forums.gentoo.org/viewtopic-p-8750050.html
xdg_environment_reset
cmake_src_prepare
}
src_configure() {
# Upstream default to LTO on non-debug builds
# Let's expose it as a USE flag because upstream
# have preferences for how we should use LTO
# if we want it on (not just -flto)
# ... but allow turning it off.
# TODO: Investigate USE_BUNDLED, doesn't seem to be needed right now
local mycmakeargs=(
-DENABLE_LTO=$(usex lto)
-DFEAT_TUI=$(usex tui)
-DPREFER_LUA=$(usex lua_single_target_luajit no "$(lua_get_version)")
-DLUA_PRG="${ELUA}"
-DMIN_LOG_LEVEL=3
)
cmake_src_configure
}
src_install() {
cmake_src_install
# install a default configuration file
insinto /etc/vim
doins "${FILESDIR}"/sysinit.vim
# conditionally install a symlink for nvimpager
if use nvimpager; then
dosym ../share/nvim/runtime/macros/less.sh /usr/bin/nvimpager
fi
}
pkg_postinst() {
xdg_pkg_postinst
optfeature "clipboard support" x11-misc/xsel x11-misc/xclip gui-apps/wl-clipboard
optfeature "Python plugin support" dev-python/pynvim
optfeature "Ruby plugin support" dev-ruby/neovim-ruby-client
optfeature "remote/nvr support" dev-python/neovim-remote
}
|