Skip to content

Instantly share code, notes, and snippets.

@AlanQuatermain
Created November 2, 2010 15:34
Show Gist options
  • Save AlanQuatermain/659782 to your computer and use it in GitHub Desktop.
Save AlanQuatermain/659782 to your computer and use it in GitHub Desktop.
A fix for iOS 4.2 builds against the iOS Simulator: some APIs (look at AVFoundation) are marked as available for 10.7. Sadly the Simulator SDK version of Availability.h doesn't define the 10.7 macros, so it results in horrible compiler errors on all such
#import <Availability.h>
// Fix a bug in the current iOS 4.2 beta SDK where 10.7 version isn't defined
#ifndef __MAC_10_7
#define __MAC_10_7 1070
#if !defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || (__MAC_OS_X_VERSION_MAX_ALLOWED == __MAC_10_6)
#ifdef __MAC_OS_X_VERSION_MAX_ALLOWED
#undef __MAC_OS_X_VERSION_MAX_ALLOWED
#endif
#define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_10_7
#endif
#if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_7
#define __AVAILABILITY_INTERNAL__MAC_10_7 __AVAILABILITY_INTERNAL_UNAVAILABLE
#elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_7
#define __AVAILABILITY_INTERNAL__MAC_10_7 __AVAILABILITY_INTERNAL_WEAK_IMPORT
#else
#define __AVAILABILITY_INTERNAL__MAC_10_7 __AVAILABILITY_INTERNAL_REGULAR
#endif
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_7
#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7 __AVAILABILITY_INTERNAL_DEPRECATED
#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7 __AVAILABILITY_INTERNAL_DEPRECATED
#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7 __AVAILABILITY_INTERNAL_DEPRECATED
#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7 __AVAILABILITY_INTERNAL_DEPRECATED
#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7 __AVAILABILITY_INTERNAL_DEPRECATED
#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7 __AVAILABILITY_INTERNAL_DEPRECATED
#else
#define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7 __AVAILABILITY_INTERNAL__MAC_10_0
#define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7 __AVAILABILITY_INTERNAL__MAC_10_1
#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7 __AVAILABILITY_INTERNAL__MAC_10_2
#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7 __AVAILABILITY_INTERNAL__MAC_10_3
#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7 __AVAILABILITY_INTERNAL__MAC_10_4
#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7 __AVAILABILITY_INTERNAL__MAC_10_5
#endif
#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_7
#endif /* !defined(__MAC_10_7) */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment