diff options
-rw-r--r-- | gnu/packages/vim.scm | 156 |
1 files changed, 81 insertions, 75 deletions
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 21a22570ad..caf9ea85b3 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -659,84 +659,89 @@ are detected, the user is notified."))) (package (name "neovim") (version "0.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/neovim/neovim") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1m7xmry66pn27gvk7qj9di83xa1h7zjp4c6ygnf218pqhr08x06g")))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/neovim/neovim") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1m7xmry66pn27gvk7qj9di83xa1h7zjp4c6ygnf218pqhr08x06g")))) (build-system cmake-build-system) (arguments - `(#:modules ((srfi srfi-26) - (guix build cmake-build-system) - (guix build utils)) - #:configure-flags - (list ,@(if (member (if (%current-target-system) - (gnu-triplet->nix-system (%current-target-system)) - (%current-system)) - (package-supported-systems luajit)) - '() - '("-DPREFER_LUA:BOOL=YES"))) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-lua-paths - (lambda* (#:key inputs #:allow-other-keys) - (let* ((lua-version "5.1") - (lua-cpath-spec - (lambda (prefix) - (let ((path (string-append prefix "/lib/lua/" lua-version))) - (string-append path "/?.so;" path "/?/?.so")))) - (lua-path-spec - (lambda (prefix) - (let ((path (string-append prefix "/share/lua/" lua-version))) - (string-append path "/?.lua;" path "/?/?.lua")))) - (lua-inputs (map (cute assoc-ref inputs <>) - '("lua" - "lua-luv" - "lua-lpeg" - "lua-bitop" - "lua-libmpack")))) - (setenv "LUA_PATH" - (string-join (map lua-path-spec lua-inputs) ";")) - (setenv "LUA_CPATH" - (string-join (map lua-cpath-spec lua-inputs) ";")) - #t))) - (add-after 'unpack 'prevent-embedding-gcc-store-path - (lambda _ - ;; nvim remembers its build options, including the compiler with - ;; its complete path. This adds gcc to the closure of nvim, which - ;; doubles its size. We remove the refirence here. - (substitute* "cmake/GetCompileFlags.cmake" - (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc")) - #t))))) - (inputs - `(("libuv" ,libuv-for-luv) - ("msgpack" ,msgpack) - ("libtermkey" ,libtermkey) - ("libvterm" ,libvterm) - ("unibilium" ,unibilium) - ("jemalloc" ,jemalloc) - ("lua" ,(if (member (if (%current-target-system) - (gnu-triplet->nix-system (%current-target-system)) - (%current-system)) - (package-supported-systems luajit)) - luajit - lua-5.1)) - ("lua-luv" ,lua5.1-luv) - ("lua-lpeg" ,lua5.1-lpeg) - ("lua-bitop" ,lua5.1-bitop) - ("lua-libmpack" ,lua5.1-libmpack) - ("tree-sitter" ,tree-sitter))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("gettext" ,gettext-minimal) - ("gperf" ,gperf))) + (list #:modules + '((srfi srfi-26) (guix build cmake-build-system) + (guix build utils)) + #:configure-flags + #~(list #$@(if (member (if (%current-target-system) + (gnu-triplet->nix-system (%current-target-system)) + (%current-system)) + (package-supported-systems luajit)) + '() + '("-DPREFER_LUA:BOOL=YES"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-lua-paths + (lambda* _ + (let* ((lua-version "5.1") + (lua-cpath-spec (lambda (prefix) + (let ((path (string-append + prefix + "/lib/lua/" + lua-version))) + (string-append + path + "/?.so;" + path + "/?/?.so")))) + (lua-path-spec (lambda (prefix) + (let ((path (string-append prefix + "/share/lua/" + lua-version))) + (string-append path "/?.lua;" + path "/?/?.lua")))) + (lua-inputs (list (or #$(this-package-input "lua") + #$(this-package-input "luajit")) + #$lua5.1-luv + #$lua5.1-lpeg + #$lua5.1-bitop + #$lua5.1-libmpack))) + (setenv "LUA_PATH" + (string-join (map lua-path-spec lua-inputs) ";")) + (setenv "LUA_CPATH" + (string-join (map lua-cpath-spec lua-inputs) ";")) + #t))) + (add-after 'unpack 'prevent-embedding-gcc-store-path + (lambda _ + ;; nvim remembers its build options, including the compiler with + ;; its complete path. This adds gcc to the closure of nvim, which + ;; doubles its size. We remove the refirence here. + (substitute* "cmake/GetCompileFlags.cmake" + (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc")) + #t))))) + (inputs (list libuv-for-luv + msgpack + libtermkey + libvterm + unibilium + jemalloc + (if (member (if (%current-target-system) + (gnu-triplet->nix-system (%current-target-system)) + (%current-system)) + (package-supported-systems luajit)) + luajit + lua-5.1) + lua5.1-luv + lua5.1-lpeg + lua5.1-bitop + lua5.1-libmpack + tree-sitter)) + (native-inputs (list pkg-config gettext-minimal gperf)) (home-page "https://neovim.io") (synopsis "Fork of vim focused on extensibility and agility") - (description "Neovim is a project that seeks to aggressively + (description + "Neovim is a project that seeks to aggressively refactor Vim in order to: @itemize @@ -744,7 +749,8 @@ refactor Vim in order to: @item Split the work between multiple developers @item Enable advanced external UIs without modifications to the core @item Improve extensibility with a new plugin architecture -@end itemize\n") +@end itemize +") ;; Neovim is licensed under the terms of the Apache 2.0 license, ;; except for parts that were contributed under the Vim license. (license (list license:asl2.0 license:vim)))) |