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