commit:     30204c8313bb3349fa208f7a56f8539fa9c392f9
Author:     Brahmajit Das <brahmajit.xyz <AT> gmail <DOT> com>
AuthorDate: Thu Dec 26 15:39:07 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec 27 12:05:46 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30204c83

app-editors/neovim: add 0.10.3

Signed-off-by: Brahmajit Das <brahmajit.xyz <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/39841
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-editors/neovim/Manifest                        |   1 +
 ...-POST_BUILD-when-using-add_custom_command.patch |  43 +++++++
 app-editors/neovim/neovim-0.10.3.ebuild            | 128 +++++++++++++++++++++
 3 files changed, 172 insertions(+)

diff --git a/app-editors/neovim/Manifest b/app-editors/neovim/Manifest
index 9bb3dfe5a003..f3c8ec9d0320 100644
--- a/app-editors/neovim/Manifest
+++ b/app-editors/neovim/Manifest
@@ -1,2 +1,3 @@
 DIST neovim-0.10.1.tar.gz 12796966 BLAKE2B 
85d98abe03f69ab03d09dc1b39783974af392f707deddef4640b6953ad574f9a455897217c2431c6c2fadb56568b55ac18ed06bbfcc7bbe1c6ab013991e99ee6
 SHA512 
37e9d45041b059a26fe02717eae7cdbde58f0a35560c590764f5888de67cfa04bee76d6b359ab14b020ac5a661d64908960283347381d334106308504c0df908
 DIST neovim-0.10.2.tar.gz 12801272 BLAKE2B 
0cba241ec6466639044decf26728b6c17c3be7970c85b6938fceb05c329d2832c8c46d0113d83aedee458991e4cb27dfad67b3d7b84080a23035ca85ccd57e36
 SHA512 
6478c53bddff0bf042388464fa1c5114e8fe75c7c41b22e5426783bd2f8406bd3297ffd4bc895ea13e573f0cd28a64755c1f5c063531bb8de477c4e439384418
+DIST neovim-0.10.3.tar.gz 12804352 BLAKE2B 
4196154a1f2415f72ed4cdebbde67804212d9be0f364fdb4c053ba0fb608eddad457fd360d7ce764615651288f5890b3283b180fc2ed726208a19fbc6c9fb9c4
 SHA512 
f1286c42bf0a119fea4575ae64043e43f36cd569d339ced15700c45441e8d8952ea7eac2250063a5aff4552632f0ca7696b442d4d8ffa4f5fce25ddbee0e861b

diff --git 
a/app-editors/neovim/files/neovim-0.10.3-specify-POST_BUILD-when-using-add_custom_command.patch
 
b/app-editors/neovim/files/neovim-0.10.3-specify-POST_BUILD-when-using-add_custom_command.patch
new file mode 100644
index 000000000000..e7e498e56b03
--- /dev/null
+++ 
b/app-editors/neovim/files/neovim-0.10.3-specify-POST_BUILD-when-using-add_custom_command.patch
@@ -0,0 +1,43 @@
+https://github.com/neovim/neovim/pull/31121
+From: dundargoc <[email protected]>
+Date: Fri, 8 Nov 2024 17:16:43 +0100
+Subject: [PATCH] build: specify POST_BUILD when using add_custom_command
+
+This is needed specifically for the second signature of
+add_custom_command, which appends an operation to an existing target.
+This will prevent the cmake warning CMP0175.
+
+Reference: https://cmake.org/cmake/help/latest/policy/CMP0175.html
+--- a/cmake/Util.cmake
++++ b/cmake/Util.cmake
+@@ -61,6 +61,7 @@ function(add_glob_target)
+   if(NOT ARG_COMMAND)
+     add_custom_target(${ARG_TARGET})
+     add_custom_command(TARGET ${ARG_TARGET}
++      POST_BUILD
+       COMMAND ${CMAKE_COMMAND} -E echo "${ARG_TARGET} SKIP: ${ARG_COMMAND} 
not found")
+     return()
+   endif()
+--- a/src/nvim/CMakeLists.txt
++++ b/src/nvim/CMakeLists.txt
+@@ -750,6 +750,7 @@ add_custom_target(nvim_runtime_deps)
+ if(WIN32)
+   # Copy DLLs and third-party tools to bin/ and install them along with nvim
+   add_custom_command(TARGET nvim_runtime_deps
++    POST_BUILD
+     COMMAND ${CMAKE_COMMAND} -E ${COPY_DIRECTORY} 
${PROJECT_BINARY_DIR}/windows_runtime_deps/
+       ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+   install(DIRECTORY ${PROJECT_BINARY_DIR}/windows_runtime_deps/
+@@ -791,7 +792,10 @@ file(MAKE_DIRECTORY ${BINARY_LIB_DIR})
+ 
+ # install treesitter parser if bundled
+ if(EXISTS ${DEPS_PREFIX}/lib/nvim/parser)
+-  add_custom_command(TARGET nvim_runtime_deps COMMAND ${CMAKE_COMMAND} -E 
${COPY_DIRECTORY} ${DEPS_PREFIX}/lib/nvim/parser ${BINARY_LIB_DIR}/parser)
++  add_custom_command(
++    TARGET nvim_runtime_deps
++    POST_BUILD
++    COMMAND ${CMAKE_COMMAND} -E ${COPY_DIRECTORY} 
${DEPS_PREFIX}/lib/nvim/parser ${BINARY_LIB_DIR}/parser)
+ endif()
+ 
+ install(DIRECTORY ${BINARY_LIB_DIR}
+

diff --git a/app-editors/neovim/neovim-0.10.3.ebuild 
b/app-editors/neovim/neovim-0.10.3.ebuild
new file mode 100644
index 000000000000..1152c196ed96
--- /dev/null
+++ b/app-editors/neovim/neovim-0.10.3.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2024 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 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos"
+fi
+
+LICENSE="Apache-2.0 vim"
+SLOT="0"
+IUSE="+nvimpager test"
+
+# Upstream say the test library needs LuaJIT
+# 
https://github.com/neovim/neovim/blob/91109ffda23d0ce61cec245b1f4ffb99e7591b62/CMakeLists.txt#L377
+REQUIRED_USE="${LUA_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).
+# List of required tree-sitter parsers is taken from cmake.deps/deps.txt
+DEPEND="${LUA_DEPS}
+       >=dev-lua/luv-1.45.0[${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/libutf8proc-2.9.0:=
+       >=dev-libs/libuv-1.46.0:=
+       >=dev-libs/libvterm-0.3.3
+       >=dev-libs/msgpack-3.0.0:=
+       >=dev-libs/tree-sitter-0.22.6:=
+       =dev-libs/tree-sitter-c-0.21*
+       =dev-libs/tree-sitter-lua-0.1*
+       =dev-libs/tree-sitter-markdown-0.2*
+       =dev-libs/tree-sitter-query-0.4*
+       =dev-libs/tree-sitter-vim-0.4*
+       =dev-libs/tree-sitter-vimdoc-3*
+       >=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=(
+       "${FILESDIR}/${PN}-0.9.0-cmake_lua_version.patch"
+       
"${FILESDIR}/${PN}-0.10.3-specify-POST_BUILD-when-using-add_custom_command.patch"
+       "${FILESDIR}/${PN}-9999-cmake-darwin.patch"
+)
+
+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() {
+       # TODO: Investigate USE_BUNDLED, doesn't seem to be needed right now
+       local mycmakeargs=(
+               # appends -flto
+               -DENABLE_LTO=OFF
+               -DPREFER_LUA=$(usex lua_single_target_luajit no 
"$(lua_get_version)")
+               -DLUA_PRG="${LUA}"
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       # install a default configuration file
+       insinto /etc/vim
+       doins "${FILESDIR}"/sysinit.vim
+
+       # symlink tree-sitter parsers
+       dodir /usr/share/nvim/runtime
+       for parser in c lua markdown query vim vimdoc; do
+               dosym ../../../../$(get_libdir)/libtree-sitter-${parser}.so 
/usr/share/nvim/runtime/parser/${parser}.so
+       done
+
+       # 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
+}

Reply via email to