1TARGET = qtharfbuzz 2 3CONFIG += \ 4 static \ 5 hide_symbols \ 6 exceptions_off rtti_off warn_off 7 8MODULE_INCLUDEPATH += $$PWD/include 9 10 11# built-in shapers list configuration: 12SHAPERS += opentype # HB's main shaper; enabling it should be enough most of the time 13 14# native shaper on Apple platforms; could be used alone to handle both OT and AAT fonts 15darwin: SHAPERS += coretext 16 17# fallback shaper: not really useful with opentype or coretext shaper 18#SHAPERS += fallback 19 20DEFINES += HAVE_CONFIG_H 21DEFINES += HB_NO_UNICODE_FUNCS HB_DISABLE_DEPRECATED 22DEFINES += HB_NDEBUG 23DEFINES += HB_EXTERN= 24 25# platform/compiler specific definitions 26DEFINES += HAVE_ATEXIT 27unix: DEFINES += HAVE_PTHREAD HAVE_SCHED_H HAVE_SCHED_YIELD 28win32: DEFINES += HB_NO_WIN1256 29 30#Workaround https://code.google.com/p/android/issues/detail?id=194631 31android: DEFINES += _POSIX_C_SOURCE=200112L 32 33# Harfbuzz-NG inside Qt uses the Qt atomics (inline code only) 34INCLUDEPATH += $$QT.core.includes 35DEFINES += QT_NO_VERSION_TAGGING 36 37SOURCES += \ 38 $$PWD/src/hb-blob.cc \ 39 $$PWD/src/hb-buffer.cc \ 40 $$PWD/src/hb-buffer-serialize.cc \ 41 $$PWD/src/hb-common.cc \ 42 $$PWD/src/hb-face.cc \ 43 $$PWD/src/hb-font.cc \ 44 $$PWD/src/hb-ot-tag.cc \ 45 $$PWD/src/hb-set.cc \ 46 $$PWD/src/hb-shape.cc \ 47 $$PWD/src/hb-shape-plan.cc \ 48 $$PWD/src/hb-shaper.cc \ 49 $$PWD/src/hb-unicode.cc \ 50 $$PWD/src/hb-warning.cc 51 52HEADERS += \ 53 $$PWD/src/hb-atomic-private.hh \ 54 $$PWD/src/hb-buffer-private.hh \ 55 $$PWD/src/hb-buffer-deserialize-json.hh \ 56 $$PWD/src/hb-buffer-deserialize-text.hh \ 57 $$PWD/src/hb-cache-private.hh \ 58 $$PWD/src/hb-debug.hh \ 59 $$PWD/src/hb-dsalgs.hh \ 60 $$PWD/src/hb-face-private.hh \ 61 $$PWD/src/hb-font-private.hh \ 62 $$PWD/src/hb-mutex-private.hh \ 63 $$PWD/src/hb-object-private.hh \ 64 $$PWD/src/hb-open-file-private.hh \ 65 $$PWD/src/hb-open-type-private.hh \ 66 $$PWD/src/hb-ot-cbdt-table.hh \ 67 $$PWD/src/hb-ot-cmap-table.hh \ 68 $$PWD/src/hb-ot-glyf-table.hh \ 69 $$PWD/src/hb-ot-head-table.hh \ 70 $$PWD/src/hb-ot-hhea-table.hh \ 71 $$PWD/src/hb-ot-hmtx-table.hh \ 72 $$PWD/src/hb-ot-maxp-table.hh \ 73 $$PWD/src/hb-ot-name-table.hh \ 74 $$PWD/src/hb-ot-os2-table.hh \ 75 $$PWD/src/hb-ot-post-table.hh \ 76 $$PWD/src/hb-private.hh \ 77 $$PWD/src/hb-set-digest-private.hh \ 78 $$PWD/src/hb-set-private.hh \ 79 $$PWD/src/hb-shape-plan-private.hh \ 80 $$PWD/src/hb-shaper-impl-private.hh \ 81 $$PWD/src/hb-shaper-list.hh \ 82 $$PWD/src/hb-shaper-private.hh \ 83 $$PWD/src/hb-string-array.hh \ 84 $$PWD/src/hb-unicode-private.hh \ 85 $$PWD/src/hb-utf-private.hh 86 87HEADERS += \ 88 $$PWD/src/hb.h \ 89 $$PWD/src/hb-blob.h \ 90 $$PWD/src/hb-buffer.h \ 91 $$PWD/src/hb-common.h \ 92 $$PWD/src/hb-deprecated.h \ 93 $$PWD/src/hb-face.h \ 94 $$PWD/src/hb-font.h \ 95 $$PWD/src/hb-set.h \ 96 $$PWD/src/hb-shape.h \ 97 $$PWD/src/hb-shape-plan.h \ 98 $$PWD/src/hb-unicode.h \ 99 $$PWD/src/hb-version.h 100 101contains(SHAPERS, opentype) { 102 DEFINES += HAVE_OT 103 104 SOURCES += \ 105 $$PWD/src/hb-ot-font.cc \ 106 $$PWD/src/hb-ot-layout.cc \ 107 $$PWD/src/hb-ot-map.cc \ 108 $$PWD/src/hb-ot-math.cc \ 109 $$PWD/src/hb-ot-shape.cc \ 110 $$PWD/src/hb-ot-shape-complex-arabic.cc \ 111 $$PWD/src/hb-ot-shape-complex-default.cc \ 112 $$PWD/src/hb-ot-shape-complex-hangul.cc \ 113 $$PWD/src/hb-ot-shape-complex-hebrew.cc \ 114 $$PWD/src/hb-ot-shape-complex-indic.cc \ 115 $$PWD/src/hb-ot-shape-complex-indic-table.cc \ 116 $$PWD/src/hb-ot-shape-complex-myanmar.cc \ 117 $$PWD/src/hb-ot-shape-complex-thai.cc \ 118 $$PWD/src/hb-ot-shape-complex-tibetan.cc \ 119 $$PWD/src/hb-ot-shape-complex-use.cc \ 120 $$PWD/src/hb-ot-shape-complex-use-table.cc \ 121 $$PWD/src/hb-ot-shape-fallback.cc \ 122 $$PWD/src/hb-ot-shape-normalize.cc \ 123 $$PWD/src/hb-ot-var.cc 124 125 HEADERS += \ 126 $$PWD/src/hb-ot-kern-table.hh \ 127 $$PWD/src/hb-ot-layout-common-private.hh \ 128 $$PWD/src/hb-ot-layout-gdef-table.hh \ 129 $$PWD/src/hb-ot-layout-gpos-table.hh \ 130 $$PWD/src/hb-ot-layout-gsubgpos-private.hh \ 131 $$PWD/src/hb-ot-layout-gsub-table.hh \ 132 $$PWD/src/hb-ot-layout-jstf-table.hh \ 133 $$PWD/src/hb-ot-layout-math-table.hh \ 134 $$PWD/src/hb-ot-layout-private.hh \ 135 $$PWD/src/hb-ot-map-private.hh \ 136 $$PWD/src/hb-ot-math-table.hh \ 137 $$PWD/src/hb-ot-post-macroman.hh \ 138 $$PWD/src/hb-ot-shape-complex-arabic-fallback.hh \ 139 $$PWD/src/hb-ot-shape-complex-arabic-private.hh \ 140 $$PWD/src/hb-ot-shape-complex-arabic-table.hh \ 141# $$PWD/src/hb-ot-shape-complex-arabic-win1256.hh \ # disabled with HB_NO_WIN1256 142 $$PWD/src/hb-ot-shape-complex-indic-machine.hh \ 143 $$PWD/src/hb-ot-shape-complex-indic-private.hh \ 144 $$PWD/src/hb-ot-shape-complex-myanmar-machine.hh \ 145 $$PWD/src/hb-ot-shape-complex-private.hh \ 146 $$PWD/src/hb-ot-shape-complex-use-machine.hh \ 147 $$PWD/src/hb-ot-shape-complex-use-private.hh \ 148 $$PWD/src/hb-ot-shape-fallback-private.hh \ 149 $$PWD/src/hb-ot-shape-normalize-private.hh \ 150 $$PWD/src/hb-ot-shape-private.hh \ 151 $$PWD/src/hb-ot-var-avar-table.hh \ 152 $$PWD/src/hb-ot-var-fvar-table.hh \ 153 $$PWD/src/hb-ot-var-hvar-table.hh \ 154 $$PWD/src/hb-ot-var-mvar-table.hh 155 156 HEADERS += \ 157 $$PWD/src/hb-ot.h \ 158 $$PWD/src/hb-ot-font.h \ 159 $$PWD/src/hb-ot-layout.h \ 160 $$PWD/src/hb-ot-math.h \ 161 $$PWD/src/hb-ot-shape.h \ 162 $$PWD/src/hb-ot-tag.h \ 163 $$PWD/src/hb-ot-var.h 164} 165 166MODULE_EXT_HEADERS = $$HEADERS 167 168contains(SHAPERS, coretext) { 169 DEFINES += HAVE_CORETEXT 170 171 SOURCES += \ 172 $$PWD/src/hb-coretext.cc 173 174 HEADERS += \ 175 $$PWD/src/hb-coretext.h 176 177 uikit: \ 178 # On iOS/tvOS/watchOS CoreText and CoreGraphics are stand-alone frameworks 179 LIBS_PRIVATE += -framework CoreText -framework CoreGraphics 180 else: \ 181 # On Mac OS they are part of the ApplicationServices umbrella framework, 182 # even in 10.8 where they were also made available stand-alone. 183 LIBS_PRIVATE += -framework ApplicationServices 184 185 CONFIG += watchos_coretext 186} 187 188contains(SHAPERS, fallback)|isEmpty(SHAPERS) { 189 DEFINES += HAVE_FALLBACK 190 191 SOURCES += \ 192 $$PWD/src/hb-fallback-shape.cc 193} 194 195load(qt_helper_lib) 196