about summary refs log tree commit diff
path: root/pkgs/applications/editors/vim/macvim.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/vim/macvim.nix')
-rw-r--r--pkgs/applications/editors/vim/macvim.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix
new file mode 100644
index 000000000000..feafa7b99777
--- /dev/null
+++ b/pkgs/applications/editors/vim/macvim.nix
@@ -0,0 +1,93 @@
+{ stdenv, stdenvAdapters, gccApple, fetchFromGitHub, ncurses, gettext,
+  pkgconfig, cscope, python, ruby, tcl, perl, luajit
+}:
+
+let inherit (stdenvAdapters.overrideGCC stdenv gccApple) mkDerivation;
+in mkDerivation rec {
+  name = "macvim-${version}";
+
+  version = "7.4.355";
+
+  src = fetchFromGitHub {
+    owner = "genoma";
+    repo = "macvim";
+    rev = "c18a61f9723565664ffc2eda9179e96c95860e25";
+    sha256 = "190bngg8m4bwqcia7w24gn7mmqkhk0mavxy81ziwysam1f652ymf";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = [
+    gettext ncurses pkgconfig luajit ruby tcl perl python
+  ];
+
+  patches = [ ./macvim.patch ];
+
+  postPatch = ''
+    substituteInPlace src/MacVim/mvim --replace "# VIM_APP_DIR=/Applications" "VIM_APP_DIR=$out/Applications"
+
+    # Don't create custom icons.
+    substituteInPlace src/MacVim/icons/Makefile --replace '$(MAKE) -C makeicns' ""
+    substituteInPlace src/MacVim/icons/make_icons.py --replace "dont_create = False" "dont_create = True"
+
+    # Full path to xcodebuild
+    substituteInPlace src/Makefile --replace "xcodebuild" "/usr/bin/xcodebuild"
+  '';
+
+  configureFlags = [
+      #"--enable-cscope" # TODO: cscope doesn't build on Darwin yet
+      "--enable-fail-if-missing"
+      "--with-features=huge"
+      "--enable-gui=macvim"
+      "--enable-multibyte"
+      "--enable-nls"
+      "--enable-luainterp=dynamic"
+      "--enable-pythoninterp=dynamic"
+      "--enable-perlinterp=dynamic"
+      "--enable-rubyinterp=dynamic"
+      "--enable-tclinterp=yes"
+      "--with-luajit"
+      "--with-lua-prefix=${luajit}"
+      "--with-ruby-command=${ruby}/bin/ruby"
+      "--with-tclsh=${tcl}/bin/tclsh"
+      "--with-tlib=ncurses"
+      "--with-compiledby=Nix"
+  ];
+
+  preConfigure = ''
+    DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer
+    configureFlagsArray+=(
+      "--with-developer-dir=$DEV_DIR"
+    )
+  '';
+
+  postInstall = ''
+    mkdir -p $out/Applications
+    cp -r src/MacVim/build/Release/MacVim.app $out/Applications
+
+    rm $out/bin/{Vimdiff,Vimtutor,Vim,ex,rVim,rview,view}
+
+    cp src/MacVim/mvim $out/bin
+    cp src/vimtutor $out/bin
+
+    for prog in "vimdiff" "vi" "vim" "ex" "rvim" "rview" "view"; do
+      ln -s $out/bin/mvim $out/bin/$prog
+    done
+
+    # Fix rpaths
+    exe="$out/Applications/MacVim.app/Contents/MacOS/Vim"
+    libperl=$(dirname $(find ${perl} -name "libperl.dylib"))
+    install_name_tool -add_rpath ${luajit}/lib $exe
+    install_name_tool -add_rpath ${tcl}/lib $exe
+    install_name_tool -add_rpath ${python}/lib $exe
+    install_name_tool -add_rpath $libperl $exe
+    install_name_tool -add_rpath ${ruby}/lib $exe
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Vim - the text editor - for Mac OS X";
+    homepage    = https://github.com/b4winckler/macvim;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms   = platforms.darwin;
+  };
+}