1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
/*
* "$Id: versioning.h 11056 2013-06-25 14:27:30Z msweet $"
*
* API versioning definitions for CUPS.
*
* Copyright 2007-2013 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* law. Distribution and use rights are outlined in the file "LICENSE.txt"
* which should have been included with this file. If this file is
* file is missing or damaged, see the license at "http://www.cups.org/".
*
* This file is subject to the Apple OS-Developed Software exception.
*/
#ifndef _CUPS_VERSIONING_H_
# define _CUPS_VERSIONING_H_
/*
* This header defines several constants - _CUPS_DEPRECATED,
* _CUPS_DEPRECATED_MSG, _CUPS_INTERNAL_MSG, _CUPS_API_1_1, _CUPS_API_1_1_19,
* _CUPS_API_1_1_20, _CUPS_API_1_1_21, _CUPS_API_1_2, _CUPS_API_1_3,
* _CUPS_API_1_4, _CUPS_API_1_5, _CUPS_API_1_6, and _CUPS_API_1_7 - which add
* compiler-specific attributes that flag functions that are deprecated, added
* in particular releases, or internal to CUPS.
*
* On OS X, the _CUPS_API_* constants are defined based on the values of
* the MAC_OS_X_VERSION_MIN_ALLOWED and MAC_OS_X_VERSION_MAX_ALLOWED constants
* provided by the compiler.
*/
# if defined(__APPLE__) && !defined(_CUPS_SOURCE)
# include <AvailabilityMacros.h>
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER */
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER */
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER */
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER */
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER */
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER */
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER */
# define _CUPS_API_1_1_19 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
# define _CUPS_API_1_1_20 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
# define _CUPS_API_1_1_21 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
# define _CUPS_API_1_2 AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
# define _CUPS_API_1_3 AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
# define _CUPS_API_1_4 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
# define _CUPS_API_1_5 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
# define _CUPS_API_1_6 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
# define _CUPS_API_1_7 AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
# else
# define _CUPS_API_1_1_19
# define _CUPS_API_1_1_20
# define _CUPS_API_1_1_21
# define _CUPS_API_1_2
# define _CUPS_API_1_3
# define _CUPS_API_1_4
# define _CUPS_API_1_5
# define _CUPS_API_1_6
# define _CUPS_API_1_7
# endif /* __APPLE__ && !_CUPS_SOURCE */
/*
* With GCC and Clang we can mark old APIs as "deprecated" or "unavailable" with
* messages so you get warnings/errors are compile-time...
*/
# ifdef __has_extension /* Clang */
# define _CUPS_HAS_DEPRECATED
# if __has_extension(attribute_deprecated_with_message)
# define _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# endif
# if __has_extension(attribute_unavailable_with_message)
# define _CUPS_HAS_UNAVAILABLE_WITH_MESSAGE
# endif
# elif defined(__GNUC__) /* GCC and compatible */
# if __GNUC__ >= 3 /* GCC 3.0 or higher */
# define _CUPS_HAS_DEPRECATED
# endif /* __GNUC__ >= 3 */
# if __GNUC__ >= 5 /* GCC 5.x */
# define _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# elif __GNUC__ == 4 && __GNUC_MINOR__ >= 5
/* GCC 4.5 or higher */
# define _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# endif /* __GNUC__ >= 5 */
# endif /* __has_extension */
# if !defined(_CUPS_HAS_DEPRECATED) || (defined(_CUPS_SOURCE) && !defined(_CUPS_NO_DEPRECATED))
/*
* Don't mark functions deprecated if the compiler doesn't support it
* or we are building CUPS source that doesn't care.
*/
# define _CUPS_DEPRECATED
# define _CUPS_DEPRECATED_MSG(m)
# define _CUPS_DEPRECATED_1_6_MSG(m)
# define _CUPS_DEPRECATED_1_7_MSG(m)
# define _CUPS_INTERNAL_MSG(m)
# elif defined(_CUPS_HAS_UNAVAILABLE_WITH_MESSAGE) && defined(_CUPS_NO_DEPRECATED)
/*
* Compiler supports the unavailable attribute, so use it when the code
* wants to exclude the use of deprecated API.
*/
# define _CUPS_DEPRECATED __attribute__ ((unavailable))
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((unavailable(m)))
# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((unavailable(m)))
# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((unavailable(m)))
# define _CUPS_INTERNAL_MSG(m) __attribute__ ((unavailable(m)))
# else
/*
* Compiler supports the deprecated attribute, so use it.
*/
# define _CUPS_DEPRECATED __attribute__ ((deprecated))
# ifdef _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated(m)))
# else
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated))
# endif /* _CUPS_HAS_DEPRECATED_WITH_MESSAGE */
# if defined(MAC_OS_X_VERSION_10_8) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
# define _CUPS_DEPRECATED_1_6_MSG(m) _CUPS_DEPRECATED_MSG(m)
# else
# define _CUPS_DEPRECATED_1_6_MSG(m)
# endif /* MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8 */
# if defined(MAC_OS_X_VERSION_10_9) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
# define _CUPS_DEPRECATED_1_7_MSG(m) _CUPS_DEPRECATED_MSG(m)
# else
# define _CUPS_DEPRECATED_1_7_MSG(m)
# endif /* MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_9 */
# ifdef _CUPS_SOURCE
# define _CUPS_INTERNAL_MSG(m)
# elif defined(_CUPS_HAS_UNAVAILABLE_WITH_MESSAGE)
# define _CUPS_INTERNAL_MSG(m) __attribute__ ((unavailable(m)))
# elif defined(_CUPS_HAS_DEPRECATED_WITH_MESSAGE)
# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated(m)))
# else
# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated))
# endif /* _CUPS_SOURCE */
# endif /* !_CUPS_HAS_DEPRECATED || (_CUPS_SOURCE && !_CUPS_NO_DEPRECATED) */
# ifndef __GNUC__
# define __attribute__(x)
# endif /* !__GNUC__ */
#endif /* !_CUPS_VERSIONING_H_ */
/*
* End of "$Id: versioning.h 11056 2013-06-25 14:27:30Z msweet $".
*/
|