Reputation: 964
Is there a predefined C macro for detecting the version of OS X? I know __APPLE__
and __MACH__
exist, but those are binary. Is there a specific value for __APPLE_CC__
that indicates Lion?
In particular, Lion added a definition of getline()
to <stdio.h>
in Lion and it would be nice to be able to detect whether or not code was compiling on Lion or not to work around compilation errors.
Specifically, I'm referring to building Unix C code in Bash (outside of XCode).
Upvotes: 7
Views: 5798
Reputation: 754520
Check in /usr/include/AvailabilityMacros.h
- it contains macros such as:
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
#define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER DEPRECATED_ATTRIBUTE
#else
#define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER
#endif
I came across this stuff because 'openssl/sha1.h' has been slathered with 'deprecated' attributes for Lion, so compiling git
gets warnings galore.
Upvotes: 4