 |
Qt 6.x
The Qt SDK
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
6#pragma qt_class(QtSystemDetection)
7#pragma qt_sync_skip_header_check
8#pragma qt_sync_stop_processing
11#ifndef QSYSTEMDETECTION_H
12#define QSYSTEMDETECTION_H
51#if defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__))
52# include <TargetConditionals.h>
54# if defined(TARGET_OS_MAC) && TARGET_OS_MAC
57# if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
58# define QT_PLATFORM_UIKIT
59# if defined(TARGET_OS_WATCH) && TARGET_OS_WATCH
61# elif defined(TARGET_OS_TV) && TARGET_OS_TV
74# error "Qt has not been ported to this Apple platform - see http://www.qt.io/developers"
76#elif defined(__WEBOS__)
79#elif defined(__ANDROID__) || defined(ANDROID)
82#elif defined(__CYGWIN__)
84#elif !defined(SAG_COM) && (!defined(WINAPI_FAMILY) || WINAPI_FAMILY==WINAPI_FAMILY_DESKTOP_APP) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))
87#elif !defined(SAG_COM) && (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__))
89#elif defined(__sun) || defined(sun)
91#elif defined(hpux) || defined(__hpux)
93#elif defined(__native_client__)
95#elif defined(__EMSCRIPTEN__)
97#elif defined(__linux__) || defined(__linux)
99#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
100# ifndef __FreeBSD_kernel__
103# define Q_OS_FREEBSD_KERNEL
105#elif defined(__NetBSD__)
108#elif defined(__OpenBSD__)
111#elif defined(__INTERIX)
116#elif defined(__Lynx__)
118#elif defined(__GNU__)
120#elif defined(__QNXNTO__)
122#elif defined(__INTEGRITY)
123# define Q_OS_INTEGRITY
124#elif defined(__rtems__)
126#elif defined(VXWORKS)
128#elif defined(__HAIKU__)
130#elif defined(__MAKEDEPEND__)
132# error "Qt has not been ported to this OS - see http://www.qt-project.org/"
135#if defined(Q_OS_WIN32) || defined(Q_OS_WIN64)
141# define QT_NO_DATA_RELOCATION
146#elif !defined(Q_OS_UNIX)
152# pragma clang diagnostic push
153# pragma clang diagnostic ignored "-Wunknown-pragmas"
156# define Q_OS_DARWIN64
157# pragma clang deprecated(Q_OS_DARWIN64, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
159# pragma clang deprecated(Q_OS_MAC64, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
161# define Q_OS_DARWIN32
162# pragma clang deprecated(Q_OS_DARWIN32, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
164# pragma clang deprecated(Q_OS_MAC32, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
168# pragma clang deprecated(Q_OS_MACX, "use Q_OS_MACOS instead")
170# pragma clang deprecated(Q_OS_OSX, "use Q_OS_MACOS instead")
172# pragma clang diagnostic pop
176# include <Availability.h>
177# include <AvailabilityMacros.h>
179# define QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, tvos, watchos) \
180 ((defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && macos != __MAC_NA && __MAC_OS_X_VERSION_MAX_ALLOWED >= macos) || \
181 (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && ios != __IPHONE_NA && __IPHONE_OS_VERSION_MAX_ALLOWED >= ios) || \
182 (defined(__TV_OS_VERSION_MAX_ALLOWED) && tvos != __TVOS_NA && __TV_OS_VERSION_MAX_ALLOWED >= tvos) || \
183 (defined(__WATCH_OS_VERSION_MAX_ALLOWED) && watchos != __WATCHOS_NA && __WATCH_OS_VERSION_MAX_ALLOWED >= watchos))
185# define QT_DARWIN_DEPLOYMENT_TARGET_BELOW(macos, ios, tvos, watchos) \
186 ((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && macos != __MAC_NA && __MAC_OS_X_VERSION_MIN_REQUIRED < macos) || \
187 (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && ios != __IPHONE_NA && __IPHONE_OS_VERSION_MIN_REQUIRED < ios) || \
188 (defined(__TV_OS_VERSION_MIN_REQUIRED) && tvos != __TVOS_NA && __TV_OS_VERSION_MIN_REQUIRED < tvos) || \
189 (defined(__WATCH_OS_VERSION_MIN_REQUIRED) && watchos != __WATCHOS_NA && __WATCH_OS_VERSION_MIN_REQUIRED < watchos))
191# define QT_MACOS_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios) \
192 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, __TVOS_NA, __WATCHOS_NA)
193# define QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos) \
194 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, __IPHONE_NA, __TVOS_NA, __WATCHOS_NA)
195# define QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(ios) \
196 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, ios, __TVOS_NA, __WATCHOS_NA)
197# define QT_TVOS_PLATFORM_SDK_EQUAL_OR_ABOVE(tvos) \
198 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, __IPHONE_NA, tvos, __WATCHOS_NA)
199# define QT_WATCHOS_PLATFORM_SDK_EQUAL_OR_ABOVE(watchos) \
200 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, __IPHONE_NA, __TVOS_NA, watchos)
202# define QT_MACOS_IOS_DEPLOYMENT_TARGET_BELOW(macos, ios) \
203 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(macos, ios, __TVOS_NA, __WATCHOS_NA)
204# define QT_MACOS_DEPLOYMENT_TARGET_BELOW(macos) \
205 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(macos, __IPHONE_NA, __TVOS_NA, __WATCHOS_NA)
206# define QT_IOS_DEPLOYMENT_TARGET_BELOW(ios) \
207 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(__MAC_NA, ios, __TVOS_NA, __WATCHOS_NA)
208# define QT_TVOS_DEPLOYMENT_TARGET_BELOW(tvos) \
209 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(__MAC_NA, __IPHONE_NA, tvos, __WATCHOS_NA)
210# define QT_WATCHOS_DEPLOYMENT_TARGET_BELOW(watchos) \
211 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(__MAC_NA, __IPHONE_NA, __TVOS_NA, watchos)
215#define QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, tvos, watchos) (0)
216#define QT_MACOS_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios) (0)
217#define QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos) (0)
218#define QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(ios) (0)
219#define QT_TVOS_PLATFORM_SDK_EQUAL_OR_ABOVE(tvos) (0)
220#define QT_WATCHOS_PLATFORM_SDK_EQUAL_OR_ABOVE(watchos) (0)
224#ifdef __LSB_VERSION__
225# if __LSB_VERSION__ < 40
226# error "This version of the Linux Standard Base is unsupported"
236#if defined (__MACH__) && defined (__APPLE__)