File indexing completed on 2026-09-08 09:20:33
0001
0002
0003
0004
0005
0006 #if 0
0007 #pragma qt_class(QtSystemDetection)
0008 #pragma qt_sync_skip_header_check
0009 #pragma qt_sync_stop_processing
0010 #endif
0011
0012 #ifndef QSYSTEMDETECTION_H
0013 #define QSYSTEMDETECTION_H
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 #if defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__))
0055 # include <TargetConditionals.h>
0056 # define Q_OS_APPLE
0057 # if defined(TARGET_OS_MAC) && TARGET_OS_MAC
0058 # define Q_OS_DARWIN
0059 # define Q_OS_BSD4
0060 # if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
0061 # define QT_PLATFORM_UIKIT
0062 # if defined(TARGET_OS_WATCH) && TARGET_OS_WATCH
0063 # define Q_OS_WATCHOS
0064 # elif defined(TARGET_OS_TV) && TARGET_OS_TV
0065 # define Q_OS_TVOS
0066 # elif defined(TARGET_OS_VISION) && TARGET_OS_VISION
0067 # define Q_OS_VISIONOS
0068 # else
0069 #
0070 #
0071 # define Q_OS_IOS
0072 # endif
0073 # else
0074 #
0075 #
0076 # define Q_OS_MACOS
0077 # endif
0078 # else
0079 # error "Qt has not been ported to this Apple platform - see http://www.qt.io/developers"
0080 # endif
0081 #elif defined(__WEBOS__)
0082 # define Q_OS_WEBOS
0083 # define Q_OS_LINUX
0084 #elif defined(__ANDROID__) || defined(ANDROID)
0085 # define Q_OS_ANDROID
0086 # define Q_OS_LINUX
0087 #elif defined(__CYGWIN__)
0088 # define Q_OS_CYGWIN
0089 #elif !defined(SAG_COM) && (!defined(WINAPI_FAMILY) || WINAPI_FAMILY==WINAPI_FAMILY_DESKTOP_APP) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))
0090 # define Q_OS_WIN32
0091 # define Q_OS_WIN64
0092 #elif !defined(SAG_COM) && (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__))
0093 # define Q_OS_WIN32
0094 #elif defined(__sun) || defined(sun)
0095 # define Q_OS_SOLARIS
0096 #elif defined(hpux) || defined(__hpux)
0097 # define Q_OS_HPUX
0098 #elif defined(__EMSCRIPTEN__)
0099 # define Q_OS_WASM
0100 #elif defined(__linux__) || defined(__linux)
0101 # define Q_OS_LINUX
0102 #elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
0103 # ifndef __FreeBSD_kernel__
0104 # define Q_OS_FREEBSD
0105 # endif
0106 # define Q_OS_FREEBSD_KERNEL
0107 # define Q_OS_BSD4
0108 #elif defined(__NetBSD__)
0109 # define Q_OS_NETBSD
0110 # define Q_OS_BSD4
0111 #elif defined(__OpenBSD__)
0112 # define Q_OS_OPENBSD
0113 # define Q_OS_BSD4
0114 #elif defined(__INTERIX)
0115 # define Q_OS_INTERIX
0116 # define Q_OS_BSD4
0117 #elif defined(_AIX)
0118 # define Q_OS_AIX
0119 #elif defined(__Lynx__)
0120 # define Q_OS_LYNX
0121 #elif defined(__GNU__)
0122 # define Q_OS_HURD
0123 #elif defined(__QNXNTO__)
0124 # define Q_OS_QNX
0125 #elif defined(__INTEGRITY)
0126 # define Q_OS_INTEGRITY
0127 #elif defined(__rtems__)
0128 # define Q_OS_RTEMS
0129 #elif defined(__vxworks)
0130 # define Q_OS_VXWORKS
0131 #elif defined(__HAIKU__)
0132 # define Q_OS_HAIKU
0133 #elif defined(__MAKEDEPEND__)
0134 #else
0135 # error "Qt has not been ported to this OS - see http://www.qt-project.org/"
0136 #endif
0137
0138 #if defined(Q_OS_WIN32) || defined(Q_OS_WIN64)
0139 # define Q_OS_WINDOWS
0140 # define Q_OS_WIN
0141
0142
0143
0144 # define QT_NO_DATA_RELOCATION
0145 #endif
0146
0147 #if defined(Q_OS_WIN)
0148 # undef Q_OS_UNIX
0149 #elif !defined(Q_OS_UNIX)
0150 # define Q_OS_UNIX
0151 #endif
0152
0153
0154 #ifdef Q_OS_DARWIN
0155 # pragma clang diagnostic push
0156 # pragma clang diagnostic ignored "-Wunknown-pragmas"
0157 # define Q_OS_MAC
0158 # ifdef __LP64__
0159 # define Q_OS_DARWIN64
0160 # pragma clang deprecated(Q_OS_DARWIN64, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
0161 # define Q_OS_MAC64
0162 # pragma clang deprecated(Q_OS_MAC64, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
0163 # else
0164 # define Q_OS_DARWIN32
0165 # pragma clang deprecated(Q_OS_DARWIN32, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
0166 # define Q_OS_MAC32
0167 # pragma clang deprecated(Q_OS_MAC32, "use Q_OS_DARWIN and QT_POINTER_SIZE/Q_PROCESSOR_* instead")
0168 # endif
0169 # ifdef Q_OS_MACOS
0170 # define Q_OS_MACX
0171 # pragma clang deprecated(Q_OS_MACX, "use Q_OS_MACOS instead")
0172 # define Q_OS_OSX
0173 # pragma clang deprecated(Q_OS_OSX, "use Q_OS_MACOS instead")
0174 # endif
0175 # pragma clang diagnostic pop
0176 #endif
0177
0178 #ifdef Q_OS_DARWIN
0179 # include <Availability.h>
0180 # include <AvailabilityMacros.h>
0181
0182 # define QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, tvos, watchos) \
0183 ((defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && macos != __MAC_NA && __MAC_OS_X_VERSION_MAX_ALLOWED >= macos) || \
0184 (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && ios != __IPHONE_NA && __IPHONE_OS_VERSION_MAX_ALLOWED >= ios) || \
0185 (defined(__TV_OS_VERSION_MAX_ALLOWED) && tvos != __TVOS_NA && __TV_OS_VERSION_MAX_ALLOWED >= tvos) || \
0186 (defined(__WATCH_OS_VERSION_MAX_ALLOWED) && watchos != __WATCHOS_NA && __WATCH_OS_VERSION_MAX_ALLOWED >= watchos))
0187
0188 # define QT_DARWIN_DEPLOYMENT_TARGET_BELOW(macos, ios, tvos, watchos) \
0189 ((defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && macos != __MAC_NA && __MAC_OS_X_VERSION_MIN_REQUIRED < macos) || \
0190 (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && ios != __IPHONE_NA && __IPHONE_OS_VERSION_MIN_REQUIRED < ios) || \
0191 (defined(__TV_OS_VERSION_MIN_REQUIRED) && tvos != __TVOS_NA && __TV_OS_VERSION_MIN_REQUIRED < tvos) || \
0192 (defined(__WATCH_OS_VERSION_MIN_REQUIRED) && watchos != __WATCHOS_NA && __WATCH_OS_VERSION_MIN_REQUIRED < watchos))
0193
0194 # define QT_MACOS_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios) \
0195 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, __TVOS_NA, __WATCHOS_NA)
0196 # define QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos) \
0197 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, __IPHONE_NA, __TVOS_NA, __WATCHOS_NA)
0198 # define QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(ios) \
0199 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, ios, __TVOS_NA, __WATCHOS_NA)
0200 # define QT_TVOS_PLATFORM_SDK_EQUAL_OR_ABOVE(tvos) \
0201 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, __IPHONE_NA, tvos, __WATCHOS_NA)
0202 # define QT_WATCHOS_PLATFORM_SDK_EQUAL_OR_ABOVE(watchos) \
0203 QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_NA, __IPHONE_NA, __TVOS_NA, watchos)
0204
0205 # define QT_MACOS_IOS_DEPLOYMENT_TARGET_BELOW(macos, ios) \
0206 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(macos, ios, __TVOS_NA, __WATCHOS_NA)
0207 # define QT_MACOS_DEPLOYMENT_TARGET_BELOW(macos) \
0208 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(macos, __IPHONE_NA, __TVOS_NA, __WATCHOS_NA)
0209 # define QT_IOS_DEPLOYMENT_TARGET_BELOW(ios) \
0210 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(__MAC_NA, ios, __TVOS_NA, __WATCHOS_NA)
0211 # define QT_TVOS_DEPLOYMENT_TARGET_BELOW(tvos) \
0212 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(__MAC_NA, __IPHONE_NA, tvos, __WATCHOS_NA)
0213 # define QT_WATCHOS_DEPLOYMENT_TARGET_BELOW(watchos) \
0214 QT_DARWIN_DEPLOYMENT_TARGET_BELOW(__MAC_NA, __IPHONE_NA, __TVOS_NA, watchos)
0215
0216 #else
0217
0218 #define QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios, tvos, watchos) (0)
0219 #define QT_MACOS_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos, ios) (0)
0220 #define QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(macos) (0)
0221 #define QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(ios) (0)
0222 #define QT_TVOS_PLATFORM_SDK_EQUAL_OR_ABOVE(tvos) (0)
0223 #define QT_WATCHOS_PLATFORM_SDK_EQUAL_OR_ABOVE(watchos) (0)
0224
0225 #endif
0226
0227 #ifdef __LSB_VERSION__
0228 # if __LSB_VERSION__ < 40
0229 # error "This version of the Linux Standard Base is unsupported"
0230 # endif
0231 #ifndef QT_LINUXBASE
0232 # define QT_LINUXBASE
0233 #endif
0234 #endif
0235
0236 #if defined (__ELF__)
0237 # define Q_OF_ELF
0238 #endif
0239 #if defined (__MACH__) && defined (__APPLE__)
0240 # define Q_OF_MACH_O
0241 #endif
0242
0243 #if defined(__SIZEOF_INT128__)
0244
0245
0246
0247 #if !defined(Q_OS_VXWORKS) && !defined(_MSC_VER)
0248 # define QT_COMPILER_SUPPORTS_INT128 __SIZEOF_INT128__
0249 #endif
0250 #endif
0251
0252 #endif