2015-05-26 23:20:53 +00:00
|
|
|
{ stdenv, fetchFromGitHub, cmake, gettext, glib, libmsgpack
|
|
|
|
, libtermkey, libtool, libuv, lpeg, lua, luajit, luaMessagePack
|
|
|
|
, luabitop, ncurses, perl, pkgconfig, unibilium
|
|
|
|
, withJemalloc ? true, jemalloc }:
|
2014-11-27 20:04:28 +00:00
|
|
|
|
2015-05-26 23:20:53 +00:00
|
|
|
let version = "2015-05-26"; in
|
2014-11-27 20:04:28 +00:00
|
|
|
stdenv.mkDerivation rec {
|
2015-05-26 13:12:27 +00:00
|
|
|
name = "neovim-${version}";
|
2014-11-27 20:04:28 +00:00
|
|
|
|
2015-05-26 13:12:27 +00:00
|
|
|
src = fetchFromGitHub {
|
2015-05-26 23:20:53 +00:00
|
|
|
sha256 = "0sszpqlq0yp6r62zgcjcmnllc058wzzh9ccvgb2jh9k19ksszyhc";
|
|
|
|
rev = "5a9ad68b258f33ebd7fa0a5da47b308f50f1e5e7";
|
2015-05-26 13:12:27 +00:00
|
|
|
repo = "neovim";
|
|
|
|
owner = "neovim";
|
2014-11-27 20:04:28 +00:00
|
|
|
};
|
|
|
|
|
2015-05-26 23:20:53 +00:00
|
|
|
# FIXME: this is NOT the libvterm already in nixpkgs, but some NIH silliness:
|
|
|
|
neovimLibvterm = let version = "2015-02-23"; in stdenv.mkDerivation rec {
|
|
|
|
name = "neovim-libvterm-${version}";
|
2014-11-27 20:04:28 +00:00
|
|
|
|
2015-05-26 13:12:27 +00:00
|
|
|
src = fetchFromGitHub {
|
2015-05-26 23:20:53 +00:00
|
|
|
sha256 = "0i2h74jrx4fy90sv57xj8g4lbjjg4nhrq2rv6rz576fmqfpllcc5";
|
|
|
|
rev = "20ad1396c178c72873aeeb2870bd726f847acb70";
|
|
|
|
repo = "libvterm";
|
|
|
|
owner = "neovim";
|
2014-11-27 20:04:28 +00:00
|
|
|
};
|
|
|
|
|
2015-05-26 23:20:53 +00:00
|
|
|
buildInputs = [ libtool perl ];
|
|
|
|
|
|
|
|
makeFlags = "PREFIX=$(out)";
|
2014-11-27 20:04:28 +00:00
|
|
|
|
2015-05-26 13:12:27 +00:00
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
2014-11-27 20:04:28 +00:00
|
|
|
meta = with stdenv.lib; {
|
2015-05-26 23:20:53 +00:00
|
|
|
description = "VT220/xterm/ECMA-48 terminal emulator library";
|
|
|
|
homepage = http://www.leonerd.org.uk/code/libvterm/;
|
|
|
|
license = licenses.mit;
|
|
|
|
maintainers = with maintainers; [ nckx ];
|
|
|
|
platforms = platforms.unix;
|
2014-11-27 20:04:28 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
cmake
|
2015-05-26 23:20:53 +00:00
|
|
|
glib
|
|
|
|
libtermkey
|
|
|
|
libuv
|
2014-11-27 20:04:28 +00:00
|
|
|
luajit
|
|
|
|
lua
|
|
|
|
lpeg
|
|
|
|
luaMessagePack
|
|
|
|
luabitop
|
|
|
|
libmsgpack
|
2015-05-26 23:20:53 +00:00
|
|
|
ncurses
|
|
|
|
neovimLibvterm
|
|
|
|
pkgconfig
|
|
|
|
unibilium
|
|
|
|
] ++ stdenv.lib.optional withJemalloc jemalloc;
|
|
|
|
nativeBuildInputs = [
|
|
|
|
gettext
|
2014-11-27 20:04:28 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
LUA_CPATH="${lpeg}/lib/lua/${lua.luaversion}/?.so;${luabitop}/lib/lua/5.2/?.so";
|
|
|
|
LUA_PATH="${luaMessagePack}/share/lua/5.1/?.lua";
|
|
|
|
|
|
|
|
meta = with stdenv.lib; {
|
2015-05-26 13:12:27 +00:00
|
|
|
description = "Vim text editor fork focused on extensibility and agility";
|
|
|
|
longDescription = ''
|
|
|
|
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
|
|
|
|
'';
|
2015-05-26 23:20:53 +00:00
|
|
|
homepage = http://www.neovim.io;
|
2015-05-26 13:12:27 +00:00
|
|
|
# "Contributions committed before b17d96 by authors who did not sign the
|
|
|
|
# Contributor License Agreement (CLA) remain under the Vim license.
|
|
|
|
# Contributions committed after b17d96 are licensed under Apache 2.0 unless
|
|
|
|
# those contributions were copied from Vim (identified in the commit logs
|
|
|
|
# by the vim-patch token). See LICENSE for details."
|
|
|
|
license = with licenses; [ asl20 vim ];
|
|
|
|
maintainers = with maintainers; [ manveru nckx ];
|
2014-11-27 20:04:28 +00:00
|
|
|
platforms = platforms.unix;
|
|
|
|
};
|
|
|
|
}
|