This fixes build breaks on older Xcode versions (e.g. Xcode 8, on macOS 10.11). Fixes a couple issues:
Vim's os_mac.h has an improperly specified backwards compatibility ifdef (https://github.com/vim/vim/pull/10549). It's just checking for existence of MAC_OS_X_VERSION_10_12 instead of actually comparing it against MAC_OS_X_VERSION_MAX_ALLOWED. The previous code that it was fixing was comparing it against MAC_OS_X_VERSION_MIN_REQUIRED which was also wrong as the "min" just means the deploy target, whereas the "max" indicates the SDK you are compiling against.
Unfortunately, the @available syntax for checking runtime version was only introduced in Xcode 9. To make the code compilable in earlier Xcode versions, introduce a new macro AVAILABLE_MAC_OS which will use @available if compiling on Xcode 9+ (which is the vast majority of cases), and use NSAppKitVersion checks on Xcode 8 or below. We would like to still use @available checks if possible because the compiler can optimize that out if it detects that you are deploying to a higher target than what you are checking.
Some typedefs in MacVim are also introduced in 10.13+. Add those typedefs to MacVim.h
This fixes build breaks on older Xcode versions (e.g. Xcode 8, on macOS 10.11). Fixes a couple issues:
MAC_OS_X_VERSION_10_12
instead of actually comparing it againstMAC_OS_X_VERSION_MAX_ALLOWED
. The previous code that it was fixing was comparing it againstMAC_OS_X_VERSION_MIN_REQUIRED
which was also wrong as the "min" just means the deploy target, whereas the "max" indicates the SDK you are compiling against.@available
syntax for checking runtime version was only introduced in Xcode 9. To make the code compilable in earlier Xcode versions, introduce a new macroAVAILABLE_MAC_OS
which will use@available
if compiling on Xcode 9+ (which is the vast majority of cases), and use NSAppKitVersion checks on Xcode 8 or below. We would like to still use@available
checks if possible because the compiler can optimize that out if it detects that you are deploying to a higher target than what you are checking.Fix #1342