aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/editors/vim/macvim.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/vim/macvim.nix')
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/macvim.nix40
1 files changed, 30 insertions, 10 deletions
diff --git a/nixpkgs/pkgs/applications/editors/vim/macvim.nix b/nixpkgs/pkgs/applications/editors/vim/macvim.nix
index 9eabadae3b0..93ec48e54e0 100644
--- a/nixpkgs/pkgs/applications/editors/vim/macvim.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/macvim.nix
@@ -27,13 +27,13 @@ in
stdenv.mkDerivation {
pname = "macvim";
- version = "8.2.319";
+ version = "8.2.539";
src = fetchFromGitHub {
owner = "macvim-dev";
repo = "macvim";
- rev = "snapshot-162";
- sha256 = "1mg55jlrz533wlqrx028fyv86rfhdzvm5kdi8xlf67flc5hh9vrp";
+ rev = "snapshot-163";
+ sha256 = "0ibc6h7zmk81dygkxd8a2rcq72zbqmr9kh64xhsm9h0p70505cdk";
};
enableParallelBuilding = true;
@@ -66,7 +66,6 @@ stdenv.mkDerivation {
"--with-tlib=ncurses"
"--with-compiledby=Nix"
"--disable-sparkle"
- "LDFLAGS=-headerpad_max_install_names"
];
makeFlags = ''PREFIX=$(out) CPPFLAGS="-Wno-error"'';
@@ -81,11 +80,6 @@ stdenv.mkDerivation {
# This is unfortunate, but we need to use the same compiler as Xcode,
# but Xcode doesn't provide a way to configure the compiler.
- #
- # If you're willing to modify the system files, you can do this:
- # http://hamelot.co.uk/programming/add-gcc-compiler-to-xcode-6/
- #
- # But we don't have that option.
preConfigure = ''
CC=/usr/bin/clang
@@ -101,8 +95,34 @@ stdenv.mkDerivation {
''
;
+ # Because we're building with system clang, this means we're building against Xcode's SDK and
+ # linking against system libraries. The configure script is picking up Nix Libsystem (via ruby)
+ # so we need to patch that out or we'll get linker issues. The MacVim binary built by Xcode links
+ # against the system anyway so it doesn't really matter that the Vim binary will too. If we
+ # decide that matters, we can always patch it back to the Nix libsystem post-build.
+ # It also picks up libiconv, libunwind, and objc4 from Nix. These seem relatively harmless but
+ # let's strip them out too.
+ #
+ # Note: If we do add a post-build install_name_tool patch, we need to add the
+ # "LDFLAGS=-headerpad_max_install_names" flag to configureFlags and either patch it into the
+ # Xcode project or pass it as a flag to xcodebuild as well.
postConfigure = ''
- substituteInPlace src/auto/config.mk --replace "PERL_CFLAGS =" "PERL_CFLAGS = -I${darwin.libutil}/include"
+ substituteInPlace src/auto/config.mk \
+ --replace "PERL_CFLAGS =" "PERL_CFLAGS = -I${darwin.libutil}/include" \
+ --replace " -L${stdenv.cc.libc}/lib" "" \
+ --replace " -L${darwin.libobjc}/lib" "" \
+ --replace " -L${darwin.libunwind}/lib" "" \
+ --replace " -L${darwin.libiconv}/lib" ""
+
+ # All the libraries we stripped have -osx- in their name as of this time.
+ # Assert now that this pattern no longer appears in config.mk.
+ ( # scope variable
+ while IFS="" read -r line; do
+ if [[ "$line" == LDFLAGS*-osx-* ]]; then
+ echo "WARNING: src/auto/config.mk contains reference to Nix osx library" >&2
+ fi
+ done <src/auto/config.mk
+ )
substituteInPlace src/MacVim/vimrc --subst-var-by CSCOPE ${cscope}/bin/cscope
'';