Details
Description
qsystemdetection.h has a section for Q_OS_DARWIN, which covers both iOS and OS X. If it finds that __MAC_OS_X_VERSION_MIN_REQUIRED is undefined, qsystemdetection.h sets it to ___MAC_10_6. Qt shouldn't be setting this value – it's an Apple-defined value in Availability.h. It probably doesn't hurt anything on OS X, but when compiling for iOS, it breaks 3rd-party libraries that are expecting to do platform detection in the way Apple recommends. Apple recommends doing platform detection by checking whether or not __MAC_OS_X_VERSION_MIN_REQUIRED is defined. If it is defined, you know you're on OS X. If it is not defined, then you know you're on iOS. But! With Qt defining it, 3rd party libraries suddenly start trying to compile OS X-specific code agains the iOS SDK. Major fail!
To fix, qsystemdetection.h should block out the __MAC_OS_X* logic so that it only gets applied when Q_OS_OSX is defined.
Attachments
For Gerrit Dashboard: QTBUG-35888 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
74730,1 | Don't define MAC_OS_X_VERSION_MIN_REQUIRED on iOS | stable | qt/qtbase | Status: MERGED | +2 | 0 |