diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro | 6 | ||||
-rw-r--r-- | src/corelib/global/qglobal.cpp | 13 | ||||
-rw-r--r-- | src/corelib/global/qsysinfo.h | 10 | ||||
-rw-r--r-- | src/corelib/global/qsystemdetection.h | 14 | ||||
-rw-r--r-- | src/corelib/io/io.pri | 2 | ||||
-rw-r--r-- | src/corelib/kernel/kernel.pri | 5 | ||||
-rw-r--r-- | src/corelib/kernel/qcore_mac_objc.mm | 2 | ||||
-rw-r--r-- | src/corelib/kernel/qcore_unix_p.h | 2 | ||||
-rw-r--r-- | src/corelib/kernel/qcoreapplication.cpp | 4 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_cf.mm | 4 | ||||
-rw-r--r-- | src/corelib/thread/qthread_unix.cpp | 4 | ||||
-rw-r--r-- | src/network/kernel/kernel.pri | 3 | ||||
-rw-r--r-- | src/network/ssl/qsslsocket_mac.cpp | 4 | ||||
-rw-r--r-- | src/platformsupport/fontdatabases/fontdatabases.pri | 25 | ||||
-rw-r--r-- | src/platformsupport/fontdatabases/mac/coretext.pri | 2 | ||||
-rw-r--r-- | src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm | 2 | ||||
-rw-r--r-- | src/plugins/platforms/platforms.pro | 2 | ||||
-rw-r--r-- | src/testlib/qtestblacklist.cpp | 3 | ||||
-rw-r--r-- | src/testlib/qtestcase.cpp | 2 |
19 files changed, 68 insertions, 41 deletions
diff --git a/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro index 4fd0823332..1bfeabb8c4 100644 --- a/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro +++ b/src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro @@ -9,7 +9,9 @@ load(qt_helper_lib) # built-in shapers list configuration: SHAPERS += opentype # HB's main shaper; enabling it should be enough most of the time -mac: SHAPERS += coretext # native shaper on OSX/iOS; could be used alone to handle both OT and AAT fonts + +# native shaper on Apple platforms; could be used alone to handle both OT and AAT fonts +darwin:!if(watchos:CONFIG(simulator, simulator|device)): SHAPERS += coretext DEFINES += HAVE_CONFIG_H DEFINES += HB_NO_UNICODE_FUNCS HB_DISABLE_DEPRECATED @@ -147,7 +149,7 @@ contains(SHAPERS, coretext) { $$PWD/src/hb-coretext.h uikit: \ - # On iOS/tvOS CoreText and CoreGraphics are stand-alone frameworks + # On iOS/tvOS/watchOS CoreText and CoreGraphics are stand-alone frameworks LIBS_PRIVATE += -framework CoreText -framework CoreGraphics else: \ # On Mac OS they are part of the ApplicationServices umbrella framework, diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index e05b7874e5..71cf1da20a 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -1946,6 +1946,8 @@ QSysInfo::MacVersion QSysInfo::macVersion() return QSysInfo::MacVersion(Q_MV_IOS(version.major, version.minor)); #elif defined(Q_OS_TVOS) return QSysInfo::MacVersion(Q_MV_TVOS(version.major, version.minor)); +#elif defined(Q_OS_WATCHOS) + return QSysInfo::MacVersion(Q_MV_WATCHOS(version.major, version.minor)); #else return QSysInfo::MV_Unknown; #endif @@ -2631,9 +2633,10 @@ QString QSysInfo::kernelVersion() to determine the distribution name and returns that. If determining the distribution name failed, it returns "unknown". - \b{Darwin, \macOS, iOS and tvOS note}: this function returns "macos" for macOS - systems, "ios" for iOS systems, "tvos" for tvOS systems and "darwin" in case - the system could not be determined. + \b{Darwin, \macos, iOS, tvOS, and watchOS note}: this function returns + "macos" for \macos systems, "ios" for iOS systems, "tvos" for tvOS systems, + "watchos" for watchOS systems, and "darwin" in case the system could not + be determined. \b{OS X note}: this function returns "osx" for versions of \macos prior to 10.12. @@ -2667,6 +2670,8 @@ QString QSysInfo::productType() return QStringLiteral("ios"); #elif defined(Q_OS_TVOS) return QStringLiteral("tvos"); +#elif defined(Q_OS_WATCHOS) + return QStringLiteral("watchos"); #elif defined(Q_OS_MACOS) const QAppleOperatingSystemVersion version = qt_apple_os_version(); if (version.major == 10 && version.minor < 12) @@ -2754,6 +2759,8 @@ QString QSysInfo::prettyProductName() return QLatin1String("iOS ") + productVersion(); #elif defined(Q_OS_TVOS) return QLatin1String("tvOS ") + productVersion(); +#elif defined(Q_OS_WATCHOS) + return QLatin1String("watchOS ") + productVersion(); #elif defined(Q_OS_MACOS) const QAppleOperatingSystemVersion version = qt_apple_os_version(); const char *name = osxVer_helper(version); diff --git a/src/corelib/global/qsysinfo.h b/src/corelib/global/qsysinfo.h index 31d78bca50..f01b45cbf9 100644 --- a/src/corelib/global/qsysinfo.h +++ b/src/corelib/global/qsysinfo.h @@ -122,6 +122,7 @@ public: #define Q_MV_OSX(major, minor) (major == 10 ? minor + 2 : (major == 9 ? 1 : 0)) #define Q_MV_IOS(major, minor) (QSysInfo::MV_IOS | major << 4 | minor) #define Q_MV_TVOS(major, minor) (QSysInfo::MV_TVOS | major << 4 | minor) +#define Q_MV_WATCHOS(major, minor) (QSysInfo::MV_WATCHOS | major << 4 | minor) enum MacVersion { MV_None = 0xffff, MV_Unknown = 0x0000, @@ -182,7 +183,14 @@ public: MV_TVOS_9_0 = Q_MV_TVOS(9, 0), MV_TVOS_9_1 = Q_MV_TVOS(9, 1), MV_TVOS_9_2 = Q_MV_TVOS(9, 2), - MV_TVOS_10_0 = Q_MV_TVOS(10, 0) + MV_TVOS_10_0 = Q_MV_TVOS(10, 0), + + /* watchOS */ + MV_WATCHOS = 1 << 10, + MV_WATCHOS_2_0 = Q_MV_WATCHOS(2, 0), + MV_WATCHOS_2_1 = Q_MV_WATCHOS(2, 1), + MV_WATCHOS_2_2 = Q_MV_WATCHOS(2, 2), + MV_WATCHOS_3_0 = Q_MV_WATCHOS(3, 0) }; #if defined(Q_OS_MAC) static const MacVersion MacintoshVersion; diff --git a/src/corelib/global/qsystemdetection.h b/src/corelib/global/qsystemdetection.h index 90954b1eca..3b486b8f6f 100644 --- a/src/corelib/global/qsystemdetection.h +++ b/src/corelib/global/qsystemdetection.h @@ -102,17 +102,15 @@ # define Q_OS_DARWIN32 # endif # if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE +# define QT_PLATFORM_UIKIT # if defined(TARGET_OS_WATCH) && TARGET_OS_WATCH # define Q_OS_WATCHOS +# elif defined(TARGET_OS_TV) && TARGET_OS_TV +# define Q_OS_TVOS # else -# define QT_PLATFORM_UIKIT -# if defined(TARGET_OS_TV) && TARGET_OS_TV -# define Q_OS_TVOS -# else -# // TARGET_OS_IOS is only available in newer SDKs, -# // so assume any other iOS-based platform is iOS for now -# define Q_OS_IOS -# endif +# // TARGET_OS_IOS is only available in newer SDKs, +# // so assume any other iOS-based platform is iOS for now +# define Q_OS_IOS # endif # else # // TARGET_OS_OSX is only available in newer SDKs, diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index cc658afa94..0414ae966a 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -135,7 +135,7 @@ win32 { io/qprocess_unix.cpp \ io/qfilesystemiterator_unix.cpp - !integrity:!tvos { + !integrity:!uikit { SOURCES += io/forkfd_qt.cpp HEADERS += \ ../3rdparty/forkfd/forkfd.h diff --git a/src/corelib/kernel/kernel.pri b/src/corelib/kernel/kernel.pri index 2388bbe9be..a78397e46c 100644 --- a/src/corelib/kernel/kernel.pri +++ b/src/corelib/kernel/kernel.pri @@ -123,6 +123,11 @@ mac { # We need UIKit for UIDevice LIBS_PRIVATE += -framework UIKit } + + watchos { + # We need WatchKit for WKExtension in qeventdispatcher_cf.mm + LIBS_PRIVATE += -framework WatchKit + } } nacl { diff --git a/src/corelib/kernel/qcore_mac_objc.mm b/src/corelib/kernel/qcore_mac_objc.mm index 068b6b0440..ee1a290386 100644 --- a/src/corelib/kernel/qcore_mac_objc.mm +++ b/src/corelib/kernel/qcore_mac_objc.mm @@ -101,7 +101,7 @@ QT_FOR_EACH_MUTABLE_CORE_GRAPHICS_TYPE(QT_DECLARE_WEAK_QDEBUG_OPERATOR_FOR_CF_TY QAppleOperatingSystemVersion qt_apple_os_version() { QAppleOperatingSystemVersion v = {0, 0, 0}; -#if QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_10, __IPHONE_8_0) || defined(Q_OS_TVOS) +#if QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_10, __IPHONE_8_0) || defined(Q_OS_TVOS) || defined(Q_OS_WATCHOS) if ([NSProcessInfo instancesRespondToSelector:@selector(operatingSystemVersion)]) { NSOperatingSystemVersion osv = NSProcessInfo.processInfo.operatingSystemVersion; v.major = osv.majorVersion; diff --git a/src/corelib/kernel/qcore_unix_p.h b/src/corelib/kernel/qcore_unix_p.h index c393609188..b5756af994 100644 --- a/src/corelib/kernel/qcore_unix_p.h +++ b/src/corelib/kernel/qcore_unix_p.h @@ -299,7 +299,7 @@ static inline int qt_safe_close(int fd) #undef QT_CLOSE #define QT_CLOSE qt_safe_close -// - VxWorks & iOS/tvOS don't have processes +// - VxWorks & iOS/tvOS/watchOS don't have processes #if !defined(Q_OS_VXWORKS) && !defined(QT_NO_PROCESS) static inline int qt_safe_execve(const char *filename, char *const argv[], char *const envp[]) diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index c1f2dfded4..0413e06665 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -72,7 +72,7 @@ #ifndef QT_NO_QOBJECT #if defined(Q_OS_UNIX) -# if defined(Q_OS_OSX) +# if defined(Q_OS_DARWIN) # include "qeventdispatcher_cf_p.h" # else # if !defined(QT_NO_GLIB) @@ -483,7 +483,7 @@ void QCoreApplicationPrivate::createEventDispatcher() { Q_Q(QCoreApplication); #if defined(Q_OS_UNIX) -# if defined(Q_OS_OSX) +# if defined(Q_OS_DARWIN) bool ok = false; int value = qEnvironmentVariableIntValue("QT_EVENT_DISPATCHER_CORE_FOUNDATION", &ok); if (ok && value > 0) diff --git a/src/corelib/kernel/qeventdispatcher_cf.mm b/src/corelib/kernel/qeventdispatcher_cf.mm index 437e4062ad..eecc72fd94 100644 --- a/src/corelib/kernel/qeventdispatcher_cf.mm +++ b/src/corelib/kernel/qeventdispatcher_cf.mm @@ -51,6 +51,8 @@ #ifdef Q_OS_OSX # include <AppKit/NSApplication.h> +#elif defined(Q_OS_WATCHOS) +# include <WatchKit/WatchKit.h> #else # include <UIKit/UIApplication.h> #endif @@ -75,6 +77,8 @@ QT_USE_NAMESPACE name:nil #ifdef Q_OS_OSX object:[NSApplication sharedApplication]]; +#elif defined(Q_OS_WATCHOS) + object:[WKExtension sharedExtension]]; #else object:[UIApplication sharedApplication]]; #endif diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index deedd61c17..ba5f2dca95 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -45,7 +45,7 @@ #include <private/qcoreapplication_p.h> #include <private/qcore_unix_p.h> -#if defined(Q_OS_OSX) +#if defined(Q_OS_DARWIN) # include <private/qeventdispatcher_cf_p.h> #else # if !defined(QT_NO_GLIB) @@ -279,7 +279,7 @@ typedef void*(*QtThreadCallback)(void*); void QThreadPrivate::createEventDispatcher(QThreadData *data) { -#if defined(Q_OS_OSX) +#if defined(Q_OS_DARWIN) bool ok = false; int value = qEnvironmentVariableIntValue("QT_EVENT_DISPATCHER_CORE_FOUNDATION", &ok); if (ok && value > 0) diff --git a/src/network/kernel/kernel.pri b/src/network/kernel/kernel.pri index e1eb4f7a93..8f37e28669 100644 --- a/src/network/kernel/kernel.pri +++ b/src/network/kernel/kernel.pri @@ -56,8 +56,9 @@ win32: { } mac { - LIBS_PRIVATE += -framework SystemConfiguration -framework CoreFoundation + LIBS_PRIVATE += -framework CoreFoundation !uikit: LIBS_PRIVATE += -framework CoreServices + !if(watchos:CONFIG(device, simulator|device)): LIBS_PRIVATE += -framework SystemConfiguration } osx:SOURCES += kernel/qnetworkproxy_mac.cpp diff --git a/src/network/ssl/qsslsocket_mac.cpp b/src/network/ssl/qsslsocket_mac.cpp index 438ea9a38e..4c06404415 100644 --- a/src/network/ssl/qsslsocket_mac.cpp +++ b/src/network/ssl/qsslsocket_mac.cpp @@ -204,7 +204,7 @@ bool QSslSocketPrivate::s_loadedCiphersAndCerts = false; bool QSslSocketPrivate::s_loadRootCertsOnDemand = false; -#if !defined(QT_PLATFORM_UIKIT) // dhparam is not used on iOS or tvOS. (see the SSLSetDiffieHellmanParams call below) +#if !defined(QT_PLATFORM_UIKIT) // dhparam is only used on macOS. (see the SSLSetDiffieHellmanParams call below) static const uint8_t dhparam[] = "\x30\x82\x01\x08\x02\x82\x01\x01\x00\x97\xea\xd0\x46\xf7\xae\xa7\x76\x80" "\x9c\x74\x56\x98\xd8\x56\x97\x2b\x20\x6c\x77\xe2\x82\xbb\xc8\x84\xbe\xe7" @@ -223,7 +223,7 @@ static const uint8_t dhparam[] = "\x90\x0b\x35\x64\xff\xd9\xe3\xac\xf2\xf2\xeb\x3a\x63\x02\x01\x02"; #endif -// No ioErr on iOS/tvOS. (defined in MacErrors.h on OS X) +// No ioErr on iOS/tvOS/watchOS. (defined in MacErrors.h on macOS) #if defined(QT_PLATFORM_UIKIT) # define ioErr -36 #endif diff --git a/src/platformsupport/fontdatabases/fontdatabases.pri b/src/platformsupport/fontdatabases/fontdatabases.pri index 0ef46d0a1c..f8e51f2a6d 100644 --- a/src/platformsupport/fontdatabases/fontdatabases.pri +++ b/src/platformsupport/fontdatabases/fontdatabases.pri @@ -1,16 +1,15 @@ -!win32|qtConfig(freetype):!darwin { - include($$PWD/basic/basic.pri) -} - -unix:!mac { - CONFIG += qpa/genericunixfontdatabase - include($$PWD/genericunix/genericunix.pri) - qtConfig(fontconfig) { - include($$PWD/fontconfig/fontconfig.pri) +darwin:!if(watchos:CONFIG(simulator, simulator|device)) { + include($$PWD/mac/coretext.pri) +} else { + !win32|qtConfig(freetype) { + include($$PWD/basic/basic.pri) } -} -mac { - include($$PWD/mac/coretext.pri) + unix { + CONFIG += qpa/genericunixfontdatabase + include($$PWD/genericunix/genericunix.pri) + contains(QT_CONFIG,fontconfig) { + include($$PWD/fontconfig/fontconfig.pri) + } + } } - diff --git a/src/platformsupport/fontdatabases/mac/coretext.pri b/src/platformsupport/fontdatabases/mac/coretext.pri index 4140b64b22..4d19a59226 100644 --- a/src/platformsupport/fontdatabases/mac/coretext.pri +++ b/src/platformsupport/fontdatabases/mac/coretext.pri @@ -8,7 +8,7 @@ qtConfig(freetype) { } uikit: \ - # On iOS/tvOS CoreText and CoreGraphics are stand-alone frameworks + # On iOS/tvOS/watchOS CoreText and CoreGraphics are stand-alone frameworks LIBS_PRIVATE += -framework CoreText -framework CoreGraphics else: \ # On Mac OS they are part of the ApplicationServices umbrella framework, diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm index 5fec53d1ed..6b73134c8b 100644 --- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm @@ -811,7 +811,7 @@ static CTFontDescriptorRef fontDescriptorFromTheme(QPlatformTheme::Font f) UIFontDescriptor *desc = [UIFontDescriptor preferredFontDescriptorWithTextStyle:textStyle]; return static_cast<CTFontDescriptorRef>(CFBridgingRetain(desc)); } -#endif // Q_OS_IOS, Q_OS_TVOS +#endif // Q_OS_IOS, Q_OS_TVOS, Q_OS_WATCHOS // OSX default case and iOS fallback case CTFontUIFontType fontType = fontTypeFromTheme(f); diff --git a/src/plugins/platforms/platforms.pro b/src/plugins/platforms/platforms.pro index 8324520725..fcfebf6e94 100644 --- a/src/plugins/platforms/platforms.pro +++ b/src/plugins/platforms/platforms.pro @@ -10,7 +10,7 @@ qtConfig(xcb) { SUBDIRS += xcb } -uikit: SUBDIRS += ios +uikit:!watchos: SUBDIRS += ios osx: SUBDIRS += cocoa win32:!winrt: SUBDIRS += windows diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp index 1fa76a692a..3fec0ad98a 100644 --- a/src/testlib/qtestblacklist.cpp +++ b/src/testlib/qtestblacklist.cpp @@ -106,6 +106,9 @@ static QSet<QByteArray> keywords() #ifdef Q_OS_TVOS << "tvos" #endif +#ifdef Q_OS_WATCHOS + << "watchos" +#endif #ifdef Q_OS_ANDROID << "android" #endif diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index e5dd0d694a..1fc5a36d66 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -1388,7 +1388,7 @@ FatalSignalHandler::FatalSignalHandler() // tvOS/watchOS both define SA_ONSTACK (in sys/signal.h) but mark sigaltstack() as // unavailable (__WATCHOS_PROHIBITED __TVOS_PROHIBITED in signal.h) -#if defined(SA_ONSTACK) && !defined(Q_OS_TVOS) +#if defined(SA_ONSTACK) && !defined(Q_OS_TVOS) && !defined(Q_OS_WATCHOS) // Let the signal handlers use an alternate stack // This is necessary if SIGSEGV is to catch a stack overflow # if defined(Q_CC_GNU) && defined(Q_OF_ELF) |