Don't disable CoreText on watchOS Simulator

Frameworks are not available on Apple platforms on a device vs simulator
basis. The documentation states that CoreText is available on watchOS:
https://developer.apple.com/reference/coretext?language=objc, as do the
watchOS 2.2 release notes.

Therefore, work around the problem and note the rdar numbers for the
bug report to Apple.

Change-Id: I7f8ce830aee7a23d65aaf44072e5294188da5e63
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
This commit is contained in:
Jake Petroules 2016-08-24 16:24:34 -07:00
parent a158277f9e
commit f607233c7c
3 changed files with 22 additions and 2 deletions

View File

@ -11,7 +11,7 @@ load(qt_helper_lib)
SHAPERS += opentype # HB's main shaper; enabling it should be enough most of the time
# 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
darwin: SHAPERS += coretext
DEFINES += HAVE_CONFIG_H
DEFINES += HB_NO_UNICODE_FUNCS HB_DISABLE_DEPRECATED
@ -155,4 +155,14 @@ contains(SHAPERS, coretext) {
# On Mac OS they are part of the ApplicationServices umbrella framework,
# even in 10.8 where they were also made available stand-alone.
LIBS_PRIVATE += -framework ApplicationServices
# CoreText is documented to be available on watchOS, but the headers aren't present
# in the watchOS Simulator SDK like they are supposed to be. Work around the problem
# by adding the device SDK's headers to the search path as a fallback.
# rdar://25314492, rdar://27844864
watchos:CONFIG(simulator, simulator|device) {
QMAKE_CXXFLAGS += \
-F$$xcodeSDKInfo(Path, $${simulator.sdk})/System/Library/Frameworks \
-F$$xcodeSDKInfo(Path, $${device.sdk})/System/Library/Frameworks
}
}

View File

@ -1,4 +1,4 @@
darwin:!if(watchos:CONFIG(simulator, simulator|device)) {
darwin {
include($$PWD/mac/coretext.pri)
} else {
!win32|qtConfig(freetype) {

View File

@ -14,3 +14,13 @@ else: \
# On Mac OS they are part of the ApplicationServices umbrella framework,
# even in 10.8 where they were also made available stand-alone.
LIBS_PRIVATE += -framework ApplicationServices
# CoreText is documented to be available on watchOS, but the headers aren't present
# in the watchOS Simulator SDK like they are supposed to be. Work around the problem
# by adding the device SDK's headers to the search path as a fallback.
# rdar://25314492, rdar://27844864
watchos:CONFIG(simulator, simulator|device) {
QMAKE_CXXFLAGS += \
-F$$xcodeSDKInfo(Path, $${simulator.sdk})/System/Library/Frameworks \
-F$$xcodeSDKInfo(Path, $${device.sdk})/System/Library/Frameworks
}