Ticket #37418: AvailabilityInternal.h

File AvailabilityInternal.h, 11.0 KB (added by ryandesign (Ryan Carsten Schmidt), 12 years ago)

AvailabilityInternal.h from Leopard i386

Line 
1/*
2    File:       AvailabilityInternal.h
3 
4    Copyright:  (c) 2007-2008 by Apple Inc., all rights reserved.
5
6    Contains:   implementation details of __OSX_AVAILABLE_* macros from <Availability.h>
7     
8
9*/
10#ifndef __AVAILABILITY_INTERNAL__
11#define __AVAILABILITY_INTERNAL__
12
13
14// if we want to support some compiler that does not support these
15// attributes, we can test for the compiler version before defining these
16#define __AVAILABILITY_INTERNAL_DEPRECATED         __attribute__((deprecated))
17#define __AVAILABILITY_INTERNAL_UNAVAILABLE        __attribute__((unavailable))
18#define __AVAILABILITY_INTERNAL_WEAK_IMPORT        __attribute__((weak_import))
19
20
21#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED
22    #ifdef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
23        // compiler sets __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ when -miphoneos-version-min is used
24        #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
25    #else
26        // hack until compiler with -miphoneos-version-min is rolled out
27        #if __arm__
28            #define __IPHONE_OS_VERSION_MIN_REQUIRED 20000
29        #endif
30    #endif
31#endif
32
33
34#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
35    // make sure a default max version is set
36    #ifndef __IPHONE_OS_VERSION_MAX_ALLOWED
37        #define __IPHONE_OS_VERSION_MAX_ALLOWED    __IPHONE_2_0
38    #endif
39    // make sure a valid min is set
40    #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
41        #undef __IPHONE_OS_VERSION_MIN_REQUIRED
42        #define __IPHONE_OS_VERSION_MIN_REQUIRED    __IPHONE_2_0
43    #endif
44
45    // set up internal macros
46    #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_2_0
47        #define __AVAILABILITY_INTERNAL__IPHONE_2_0          __AVAILABILITY_INTERNAL_UNAVAILABLE
48    #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
49        #define __AVAILABILITY_INTERNAL__IPHONE_2_0          __AVAILABILITY_INTERNAL_WEAK_IMPORT
50    #else
51        #define __AVAILABILITY_INTERNAL__IPHONE_2_0
52    #endif
53    #define __AVAILABILITY_INTERNAL__IPHONE_NA                     __AVAILABILITY_INTERNAL_UNAVAILABLE
54    #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA     __AVAILABILITY_INTERNAL__IPHONE_2_0
55    #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0    __AVAILABILITY_INTERNAL_DEPRECATED
56    #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA      __AVAILABILITY_INTERNAL_UNAVAILABLE
57   
58#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
59    // compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
60    #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
61    // make sure a default max version is set
62    #ifndef __MAC_OS_X_VERSION_MAX_ALLOWED
63        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_10_6
64    #endif
65
66    // set up internal macros
67    #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_6
68        #define __AVAILABILITY_INTERNAL__MAC_10_6        __AVAILABILITY_INTERNAL_UNAVAILABLE
69    #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6
70        #define __AVAILABILITY_INTERNAL__MAC_10_6        __AVAILABILITY_INTERNAL_WEAK_IMPORT
71    #else   
72        #define __AVAILABILITY_INTERNAL__MAC_10_6
73    #endif
74    #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_5
75        #define __AVAILABILITY_INTERNAL__MAC_10_5        __AVAILABILITY_INTERNAL_UNAVAILABLE
76    #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_5
77        #define __AVAILABILITY_INTERNAL__MAC_10_5        __AVAILABILITY_INTERNAL_WEAK_IMPORT
78    #else
79        #define __AVAILABILITY_INTERNAL__MAC_10_5
80    #endif
81    #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_4
82        #define __AVAILABILITY_INTERNAL__MAC_10_4        __AVAILABILITY_INTERNAL_UNAVAILABLE
83    #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_4
84        #define __AVAILABILITY_INTERNAL__MAC_10_4        __AVAILABILITY_INTERNAL_WEAK_IMPORT
85    #else
86        #define __AVAILABILITY_INTERNAL__MAC_10_4
87    #endif
88    #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_3
89        #define __AVAILABILITY_INTERNAL__MAC_10_3        __AVAILABILITY_INTERNAL_UNAVAILABLE
90    #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_3
91        #define __AVAILABILITY_INTERNAL__MAC_10_3        __AVAILABILITY_INTERNAL_WEAK_IMPORT
92    #else
93        #define __AVAILABILITY_INTERNAL__MAC_10_3
94    #endif
95    #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_2
96        #define __AVAILABILITY_INTERNAL__MAC_10_2        __AVAILABILITY_INTERNAL_UNAVAILABLE
97    #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_2
98        #define __AVAILABILITY_INTERNAL__MAC_10_2        __AVAILABILITY_INTERNAL_WEAK_IMPORT
99    #else   
100        #define __AVAILABILITY_INTERNAL__MAC_10_2
101    #endif
102    #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_1
103        #define __AVAILABILITY_INTERNAL__MAC_10_1        __AVAILABILITY_INTERNAL_UNAVAILABLE
104    #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_1
105        #define __AVAILABILITY_INTERNAL__MAC_10_1        __AVAILABILITY_INTERNAL_WEAK_IMPORT
106    #else
107        #define __AVAILABILITY_INTERNAL__MAC_10_1
108    #endif
109    #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_0
110        #define __AVAILABILITY_INTERNAL__MAC_10_0        __AVAILABILITY_INTERNAL_UNAVAILABLE
111    #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_0
112        #define __AVAILABILITY_INTERNAL__MAC_10_0        __AVAILABILITY_INTERNAL_WEAK_IMPORT
113    #else
114        #define __AVAILABILITY_INTERNAL__MAC_10_0
115    #endif
116    #define __AVAILABILITY_INTERNAL__MAC_NA             __AVAILABILITY_INTERNAL_UNAVAILABLE
117    #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_1
118        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1        __AVAILABILITY_INTERNAL_DEPRECATED
119    #else
120        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1        __AVAILABILITY_INTERNAL__MAC_10_0
121    #endif
122    #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_2
123        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2        __AVAILABILITY_INTERNAL_DEPRECATED
124        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2        __AVAILABILITY_INTERNAL_DEPRECATED
125    #else
126        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2        __AVAILABILITY_INTERNAL__MAC_10_0
127        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2        __AVAILABILITY_INTERNAL__MAC_10_1
128    #endif
129    #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_3
130        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3        __AVAILABILITY_INTERNAL_DEPRECATED
131        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3        __AVAILABILITY_INTERNAL_DEPRECATED
132        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3        __AVAILABILITY_INTERNAL_DEPRECATED
133    #else
134        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3        __AVAILABILITY_INTERNAL__MAC_10_0
135        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3        __AVAILABILITY_INTERNAL__MAC_10_1
136        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3        __AVAILABILITY_INTERNAL__MAC_10_2
137    #endif
138    #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_4
139        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4        __AVAILABILITY_INTERNAL_DEPRECATED
140        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4        __AVAILABILITY_INTERNAL_DEPRECATED
141        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4        __AVAILABILITY_INTERNAL_DEPRECATED
142        #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4        __AVAILABILITY_INTERNAL_DEPRECATED
143    #else
144        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4        __AVAILABILITY_INTERNAL__MAC_10_0
145        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4        __AVAILABILITY_INTERNAL__MAC_10_1
146        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4        __AVAILABILITY_INTERNAL__MAC_10_2
147        #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4        __AVAILABILITY_INTERNAL__MAC_10_3
148    #endif
149    #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_5
150        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5        __AVAILABILITY_INTERNAL_DEPRECATED
151        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5        __AVAILABILITY_INTERNAL_DEPRECATED
152        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5        __AVAILABILITY_INTERNAL_DEPRECATED
153        #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5        __AVAILABILITY_INTERNAL_DEPRECATED
154        #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5        __AVAILABILITY_INTERNAL_DEPRECATED
155    #else
156        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5        __AVAILABILITY_INTERNAL__MAC_10_0
157        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5        __AVAILABILITY_INTERNAL__MAC_10_1
158        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5        __AVAILABILITY_INTERNAL__MAC_10_2
159        #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5        __AVAILABILITY_INTERNAL__MAC_10_3
160        #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5        __AVAILABILITY_INTERNAL__MAC_10_4
161    #endif
162    #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6
163        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6        __AVAILABILITY_INTERNAL_DEPRECATED
164        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6        __AVAILABILITY_INTERNAL_DEPRECATED
165        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6        __AVAILABILITY_INTERNAL_DEPRECATED
166        #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6        __AVAILABILITY_INTERNAL_DEPRECATED
167        #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6        __AVAILABILITY_INTERNAL_DEPRECATED
168        #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6        __AVAILABILITY_INTERNAL_DEPRECATED
169    #else
170        #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6        __AVAILABILITY_INTERNAL__MAC_10_0
171        #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6        __AVAILABILITY_INTERNAL__MAC_10_1
172        #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6        __AVAILABILITY_INTERNAL__MAC_10_2
173        #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6        __AVAILABILITY_INTERNAL__MAC_10_3
174        #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6        __AVAILABILITY_INTERNAL__MAC_10_4
175        #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6        __AVAILABILITY_INTERNAL__MAC_10_5
176    #endif
177    #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA             __AVAILABILITY_INTERNAL__MAC_10_0
178    #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA             __AVAILABILITY_INTERNAL__MAC_10_1
179    #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA             __AVAILABILITY_INTERNAL__MAC_10_2
180    #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA             __AVAILABILITY_INTERNAL__MAC_10_3
181    #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA             __AVAILABILITY_INTERNAL__MAC_10_4
182    #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA             __AVAILABILITY_INTERNAL__MAC_10_5
183    #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA             __AVAILABILITY_INTERNAL__MAC_10_6
184    #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA               __AVAILABILITY_INTERNAL_UNAVAILABLE
185
186#endif
187
188#endif // __AVAILABILITY_INTERNAL__