nixpkgs/pkgs/applications/editors/vim/macvim.patch
Lily Ballard 4563496375 macvim: fix compatibility with Xcode 11
This fixes several Xcode 11 incompatibilities with MacVim, including an
issue where it wasn't inheriting the deployment target correctly to
begin with.
2019-09-11 20:13:36 -07:00

252 lines
10 KiB
Diff

diff --git a/src/MacVim/MacVim.xcodeproj/project.pbxproj b/src/MacVim/MacVim.xcodeproj/project.pbxproj
index e519018de..556a4127d 100644
--- a/src/MacVim/MacVim.xcodeproj/project.pbxproj
+++ b/src/MacVim/MacVim.xcodeproj/project.pbxproj
@@ -1007,6 +1007,7 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = "";
ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = "-headerpad_max_install_names";
PRODUCT_BUNDLE_IDENTIFIER = org.vim.MacVim;
PRODUCT_NAME = MacVim;
VERSIONING_SYSTEM = "apple-generic";
@@ -1039,6 +1040,7 @@
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = "";
ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = "-headerpad_max_install_names";
PRODUCT_BUNDLE_IDENTIFIER = org.vim.MacVim;
PRODUCT_NAME = MacVim;
VERSIONING_SYSTEM = "apple-generic";
diff --git a/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m b/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m
index 6f1a06e46..a12e2cea4 100644
--- a/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m
+++ b/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m
@@ -13,7 +13,9 @@
#import "PSMTabDragAssistant.h"
-@implementation PSMTabBarCell
+@implementation PSMTabBarCell {
+ id _controlView;
+}
#pragma mark -
#pragma mark Creation/Destruction
diff --git a/src/MacVim/vimrc b/src/MacVim/vimrc
index 23a06bf37..dfb10fe94 100644
--- a/src/MacVim/vimrc
+++ b/src/MacVim/vimrc
@@ -14,35 +14,5 @@ set backspace+=indent,eol,start
" translated to English).
set langmenu=none
-" Python2
-" MacVim is configured by default to use the pre-installed System python2
-" version. However, following code tries to find a Homebrew, MacPorts or
-" an installation from python.org:
-if exists("&pythondll") && exists("&pythonhome")
- if filereadable("/usr/local/Frameworks/Python.framework/Versions/2.7/Python")
- " Homebrew python 2.7
- set pythondll=/usr/local/Frameworks/Python.framework/Versions/2.7/Python
- elseif filereadable("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python")
- " MacPorts python 2.7
- set pythondll=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python
- elseif filereadable("/Library/Frameworks/Python.framework/Versions/2.7/Python")
- " https://www.python.org/downloads/mac-osx/
- set pythondll=/Library/Frameworks/Python.framework/Versions/2.7/Python
- endif
-endif
-
-" Python3
-" MacVim is configured by default to use Homebrew python3 version
-" If this cannot be found, following code tries to find a MacPorts
-" or an installation from python.org:
-if exists("&pythonthreedll") && exists("&pythonthreehome") &&
- \ !filereadable(&pythonthreedll)
- if filereadable("/opt/local/Library/Frameworks/Python.framework/Versions/3.7/Python")
- " MacPorts python 3.7
- set pythonthreedll=/opt/local/Library/Frameworks/Python.framework/Versions/3.7/Python
- elseif filereadable("/Library/Frameworks/Python.framework/Versions/3.7/Python")
- " https://www.python.org/downloads/mac-osx/
- set pythonthreedll=/Library/Frameworks/Python.framework/Versions/3.7/Python
- endif
-endif
-
+" Default cscopeprg to the Nix-installed path
+set cscopeprg=@CSCOPE@
diff --git a/src/Makefile b/src/Makefile
index 32810d0a7..13a05f349 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1385,7 +1385,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \
MacVim/MacVim.m
MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o \
objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o
-MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
+MACVIMGUI_DEFS = -DMACOS_X_DARWIN -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe
MACVIMGUI_IPATH =
MACVIMGUI_LIBS_DIR =
MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon
diff --git a/src/auto/configure b/src/auto/configure
index 9e6a82f4a..3c6d1a89b 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -4705,10 +4705,8 @@ fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
else
- if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
- macosx_deployment_target=`/usr/bin/sw_vers -productVersion|/usr/bin/sed -e 's/^\([0-9]*\.[0-9]*\).*/\1/'`
+ macosx_deployment_target=${MACOSX_DEPLOYMENT_TARGET:-10.12}
XCODEFLAGS="$XCODEFLAGS MACOSX_DEPLOYMENT_TARGET=$macosx_deployment_target"
- fi
fi
@@ -5829,10 +5829,7 @@ $as_echo "not found" >&6; }
for path in "${vi_cv_path_mzscheme_pfx}/lib" "${SCHEME_LIB}"; do
if test "X$path" != "X"; then
- if test "x$MACOS_X" = "xyes"; then
- MZSCHEME_LIBS="-framework Racket"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
- elif test -f "${path}/libmzscheme3m.a"; then
+ if test -f "${path}/libmzscheme3m.a"; then
MZSCHEME_LIBS="${path}/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${path}/libracket3m.a"; then
@@ -6217,23 +6214,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
fi
if test "x$MACOS_X" = "xyes"; then
- dir=/System/Library/Perl
- darwindir=$dir/darwin
- if test -d $darwindir; then
- PERL=/usr/bin/perl
- else
- dir=/System/Library/Perl/5.8.1
- darwindir=$dir/darwin-thread-multi-2level
- if test -d $darwindir; then
- PERL=/usr/bin/perl
- fi
- fi
- if test -n "$PERL"; then
- PERL_DIR="$dir"
- PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
- PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
- PERL_LIBS="-L$darwindir/CORE -lperl"
- fi
PERL_LIBS=`echo "$PERL_LIBS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
PERL_CFLAGS=`echo "$PERL_CFLAGS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
fi
@@ -6456,13 +6436,7 @@ __:
eof
eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
rm -f -- "${tmp_mkf}"
- if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \
- "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
- vi_cv_path_python_plibs="-framework Python"
- if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
- vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python"
- fi
- else
+
vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
if test -n "${python_LINKFORSHARED}" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t].*/\1/'`
@@ -6477,7 +6451,6 @@ eof
fi
vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
- fi
fi
@@ -6556,13 +6529,6 @@ rm -f core conftest.err conftest.$ac_objext \
$as_echo "no" >&6; }
fi
- if test -n "$MACSDK"; then
- PYTHON_CFLAGS=
- PYTHON_LIBS=-framework Python
- PYTHON_CONFDIR=
- PYTHON_GETPATH_CFLAGS=
- fi
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compile and link flags for Python are sane" >&5
$as_echo_n "checking if compile and link flags for Python are sane... " >&6; }
cflags_save=$CFLAGS
@@ -7456,11 +7422,7 @@ $as_echo "$tclver - OK" >&6; };
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of Tcl include" >&5
$as_echo_n "checking for location of Tcl include... " >&6; }
- if test "x$MACOS_X" != "xyes"; then
tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
- else
- tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
- fi
TCL_INC=
for try in $tclinc; do
if test -f "$try/tcl.h"; then
@@ -7478,12 +7440,8 @@ $as_echo "<not found>" >&6; }
if test -z "$SKIP_TCL"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of tclConfig.sh script" >&5
$as_echo_n "checking for location of tclConfig.sh script... " >&6; }
- if test "x$MACOS_X" != "xyes"; then
tclcnf=`echo $tclinc | sed s/include/lib/g`
tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
- else
- tclcnf="/System/Library/Frameworks/Tcl.framework"
- fi
for try in $tclcnf; do
if test -f "$try/tclConfig.sh"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $try/tclConfig.sh" >&5
@@ -7673,10 +7631,6 @@ $as_echo "$rubyhdrdir" >&6; }
if test -f "$rubylibdir/$librubya"; then
librubyarg="$librubyarg"
RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
- elif test "$vi_cv_path_ruby" = "/usr/bin/ruby" -a -d "/System/Library/Frameworks/Ruby.framework"; then
- RUBY_LIBS="-framework Ruby"
- RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
- librubyarg=
fi
if test "X$librubyarg" != "X"; then
diff --git a/src/vim.h b/src/vim.h
index cb5be6c97..b703b31cd 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -241,18 +241,6 @@
# define SUN_SYSTEM
#endif
-/* If we're compiling in C++ (currently only KVim), the system
- * headers must have the correct prototypes or nothing will build.
- * Conversely, our prototypes might clash due to throw() specifiers and
- * cause compilation failures even though the headers are correct. For
- * a concrete example, gcc-3.2 enforces exception specifications, and
- * glibc-2.2.5 has them in their system headers.
- */
-#if !defined(__cplusplus) && defined(UNIX) \
- && !defined(MACOS_X) /* MACOS_X doesn't yet support osdef.h */
-# include "auto/osdef.h" /* bring missing declarations in */
-#endif
-
#ifdef AMIGA
# include "os_amiga.h"
#endif
diff --git a/src/vimtutor b/src/vimtutor
index 1e8769b25..47078b0e7 100755
--- a/src/vimtutor
+++ b/src/vimtutor
@@ -16,7 +16,7 @@ seq="vim vim81 vim80 vim8 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi"
if test "$1" = "-g"; then
# Try to use the GUI version of Vim if possible, it will fall back
# on Vim if Gvim is not installed.
- seq="gvim gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
+ seq="mvim gvim gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
shift
fi