1 # Setting up features (enabled/disabled) 2 3 CONFIG(minimal) { 4 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0 5 } 6 7 CONFIG(production) { 8 DEFINES += ENABLE_XSLT=0 9 DEFINES += ENABLE_WEB_TIMING=0 10 } 11 12 meegotouch { 13 DEFINES += WTF_USE_MEEGOTOUCH=1 14 } 15 16 ## load mobilityconfig if mobility is available 17 load(mobilityconfig, true) 18 19 ## Define default features macros for optional components 20 ## (look for defs in config.h and included files!) 21 # Try to locate sqlite3 source 22 CONFIG(QTDIR_build) { 23 SQLITE3SRCDIR = $$QT_SOURCE_TREE/src/3rdparty/sqlite/ 24 } else { 25 SQLITE3SRCDIR = $$(SQLITE3SRCDIR) 26 isEmpty(SQLITE3SRCDIR) { 27 SQLITE3SRCDIR = $$[QT_INSTALL_PREFIX]/src/3rdparty/sqlite/ 28 } 29 } 30 31 contains(DEFINES, ENABLE_SINGLE_THREADED=1) { 32 DEFINES+=ENABLE_DATABASE=0 ENABLE_DOM_STORAGE=0 ENABLE_ICONDATABASE=0 ENABLE_WORKERS=0 ENABLE_SHARED_WORKERS=0 33 } 34 35 # turn off SQLITE support if we do not have sqlite3 available 36 !CONFIG(QTDIR_build):win32-*:!exists( $${SQLITE3SRCDIR}/sqlite3.c ): DEFINES += ENABLE_SQLITE=0 ENABLE_DATABASE=0 ENABLE_WORKERS=0 ENABLE_SHARED_WORKERS=0 ENABLE_ICONDATABASE=0 ENABLE_OFFLINE_WEB_APPLICATIONS=0 ENABLE_DOM_STORAGE=0 37 38 !contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=.): DEFINES += ENABLE_JAVASCRIPT_DEBUGGER=1 39 !contains(DEFINES, ENABLE_DATABASE=.): DEFINES += ENABLE_DATABASE=1 40 !contains(DEFINES, ENABLE_EVENTSOURCE=.): DEFINES += ENABLE_EVENTSOURCE=1 41 !contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=.): DEFINES += ENABLE_OFFLINE_WEB_APPLICATIONS=1 42 !contains(DEFINES, ENABLE_DOM_STORAGE=.): DEFINES += ENABLE_DOM_STORAGE=1 43 !contains(DEFINES, ENABLE_ICONDATABASE=.): DEFINES += ENABLE_ICONDATABASE=1 44 !contains(DEFINES, ENABLE_CHANNEL_MESSAGING=.): DEFINES += ENABLE_CHANNEL_MESSAGING=1 45 !contains(DEFINES, ENABLE_DIRECTORY_UPLOAD=.): DEFINES += ENABLE_DIRECTORY_UPLOAD=0 46 !contains(DEFINES, ENABLE_FILE_SYSTEM=.): DEFINES += ENABLE_FILE_SYSTEM=0 47 !contains(DEFINES, ENABLE_QUOTA=.): DEFINES += ENABLE_QUOTA=0 48 49 # turn on SQLITE support if any of the dependent features are turned on 50 !contains(DEFINES, ENABLE_SQLITE=.) { 51 contains(DEFINES, ENABLE_DATABASE=1)|contains(DEFINES, ENABLE_ICONDATABASE=1)|contains(DEFINES, ENABLE_DOM_STORAGE=1)|contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1) { 52 DEFINES += ENABLE_SQLITE=1 53 } else { 54 DEFINES += ENABLE_SQLITE=0 55 } 56 } 57 58 !contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=.): DEFINES += ENABLE_DASHBOARD_SUPPORT=0 59 !contains(DEFINES, ENABLE_FILTERS=.): DEFINES += ENABLE_FILTERS=1 60 !contains(DEFINES, ENABLE_XPATH=.): DEFINES += ENABLE_XPATH=1 61 #!contains(DEFINES, ENABLE_XBL=.): DEFINES += ENABLE_XBL=1 62 !contains(DEFINES, ENABLE_WCSS=.): DEFINES += ENABLE_WCSS=0 63 !contains(DEFINES, ENABLE_WML=.): DEFINES += ENABLE_WML=0 64 !contains(DEFINES, ENABLE_SHARED_WORKERS=.): DEFINES += ENABLE_SHARED_WORKERS=1 65 !contains(DEFINES, ENABLE_WORKERS=.): DEFINES += ENABLE_WORKERS=1 66 !contains(DEFINES, ENABLE_XHTMLMP=.): DEFINES += ENABLE_XHTMLMP=0 67 !contains(DEFINES, ENABLE_DATAGRID=.): DEFINES += ENABLE_DATAGRID=0 68 !contains(DEFINES, ENABLE_METER_TAG=.): DEFINES += ENABLE_METER_TAG=1 69 !contains(DEFINES, ENABLE_PROGRESS_TAG=.): DEFINES += ENABLE_PROGRESS_TAG=1 70 !contains(DEFINES, ENABLE_BLOB=.): DEFINES += ENABLE_BLOB=1 71 !contains(DEFINES, ENABLE_NOTIFICATIONS=.): DEFINES += ENABLE_NOTIFICATIONS=1 72 !contains(DEFINES, ENABLE_IMAGE_RESIZER=.): DEFINES += ENABLE_IMAGE_RESIZER=0 73 !contains(DEFINES, ENABLE_INPUT_SPEECH=.): DEFINES += ENABLE_INPUT_SPEECH=0 74 !contains(DEFINES, ENABLE_INSPECTOR=.): DEFINES += ENABLE_INSPECTOR=1 75 !contains(DEFINES, ENABLE_3D_RENDERING=.): DEFINES += ENABLE_3D_RENDERING=1 76 !contains(DEFINES, ENABLE_WEB_AUDIO=.): DEFINES += ENABLE_WEB_AUDIO=0 77 !contains(DEFINES, ENABLE_WEBGL=.): DEFINES += ENABLE_WEBGL=0 78 !contains(DEFINES, ENABLE_MEDIA_STATISTICS=.): DEFINES += ENABLE_MEDIA_STATISTICS=0 79 !contains(DEFINES, ENABLE_VIDEO_TRACK=.): DEFINES += ENABLE_VIDEO_TRACK=0 80 81 # SVG support 82 !contains(DEFINES, ENABLE_SVG=0) { 83 !contains(DEFINES, ENABLE_SVG=.): DEFINES += ENABLE_SVG=1 84 !contains(DEFINES, ENABLE_SVG_FONTS=.): DEFINES += ENABLE_SVG_FONTS=1 85 !contains(DEFINES, ENABLE_SVG_FOREIGN_OBJECT=.): DEFINES += ENABLE_SVG_FOREIGN_OBJECT=1 86 !contains(DEFINES, ENABLE_SVG_ANIMATION=.): DEFINES += ENABLE_SVG_ANIMATION=1 87 !contains(DEFINES, ENABLE_SVG_AS_IMAGE=.): DEFINES += ENABLE_SVG_AS_IMAGE=1 88 !contains(DEFINES, ENABLE_SVG_USE=.): DEFINES += ENABLE_SVG_USE=1 89 } else { 90 DEFINES += ENABLE_SVG_FONTS=0 ENABLE_SVG_FOREIGN_OBJECT=0 ENABLE_SVG_ANIMATION=0 ENABLE_SVG_AS_IMAGE=0 ENABLE_SVG_USE=0 91 } 92 93 # HTML5 datalist support 94 !contains(DEFINES, ENABLE_DATALIST=.): DEFINES += ENABLE_DATALIST=1 95 96 # Tiled Backing Store support 97 !contains(DEFINES, ENABLE_TILED_BACKING_STORE=.): DEFINES += ENABLE_TILED_BACKING_STORE=1 98 99 # Nescape plugins support (NPAPI) 100 !contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=.) { 101 unix|win32-*:!embedded:!wince*: { 102 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1 103 } else { 104 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0 105 } 106 } 107 108 # Web Socket support. 109 !contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1 110 111 # Web Timing support. 112 !contains(DEFINES, ENABLE_WEB_TIMING=.): DEFINES += ENABLE_WEB_TIMING=1 113 114 # XSLT support with QtXmlPatterns 115 !contains(DEFINES, ENABLE_XSLT=.) { 116 contains(QT_CONFIG, xmlpatterns):DEFINES += ENABLE_XSLT=1 117 else:DEFINES += ENABLE_XSLT=0 118 } 119 120 # geolocation support if QtMobility exists 121 !CONFIG(QTDIR_build):!contains(DEFINES, ENABLE_GEOLOCATION=.) { 122 contains(MOBILITY_CONFIG, location) { 123 DEFINES += ENABLE_GEOLOCATION=1 124 DEFINES += ENABLE_CLIENT_BASED_GEOLOCATION=1 125 } 126 } 127 128 # orientation support if QtMobility exists 129 contains(MOBILITY_CONFIG, sensors) { 130 !contains(DEFINES, ENABLE_ORIENTATION_EVENTS=.): DEFINES += ENABLE_ORIENTATION_EVENTS=1 131 !contains(DEFINES, ENABLE_DEVICE_ORIENTATION=.): DEFINES += ENABLE_DEVICE_ORIENTATION=1 132 CONFIG *= mobility 133 MOBILITY *= sensors 134 } 135 136 # systeminfo support if QtMobility systeminfo module exists, but only for symbian, maemo and meego 137 symbian|maemo5|maemo6 { 138 !CONFIG(QTDIR_build):!contains(DEFINES, ENABLE_QT_USERAGENT_DEVICEMODEL=.) { 139 contains(MOBILITY_CONFIG, systeminfo) { 140 DEFINES += ENABLE_QT_USERAGENT_DEVICEMODEL=1 141 } 142 } 143 } 144 145 # Bearer management is part of Qt 4.7 146 # for older version, check for mobility with bearer 147 !contains(DEFINES, ENABLE_QT_BEARER=.) { 148 !lessThan(QT_MINOR_VERSION, 7) { 149 DEFINES += ENABLE_QT_BEARER=1 150 } else { 151 contains(MOBILITY_CONFIG, bearer) { 152 DEFINES += ENABLE_QT_BEARER=1 153 } 154 } 155 } 156 157 !contains(DEFINES, ENABLE_TOUCH_EVENTS=.): DEFINES += ENABLE_TOUCH_EVENTS=1 158 159 # HTML5 Media Support 160 # We require QtMultimedia or Phonon 161 !contains(DEFINES, ENABLE_VIDEO=.) { 162 DEFINES -= ENABLE_VIDEO=1 163 DEFINES += ENABLE_VIDEO=0 164 165 contains(DEFINES, USE_GSTREAMER=1) { 166 DEFINES -= ENABLE_VIDEO=0 167 DEFINES += ENABLE_VIDEO=1 168 DEFINES -= WTF_USE_QT_MULTIMEDIA=1 169 DEFINES += WTF_USE_QT_MULTIMEDIA=0 170 } else:contains(MOBILITY_CONFIG, multimedia) { 171 DEFINES -= ENABLE_VIDEO=0 172 DEFINES += ENABLE_VIDEO=1 173 DEFINES -= WTF_USE_QT_MULTIMEDIA=0 174 DEFINES += WTF_USE_QT_MULTIMEDIA=1 175 } else:contains(QT_CONFIG, phonon) { 176 DEFINES -= ENABLE_VIDEO=0 177 DEFINES += ENABLE_VIDEO=1 178 DEFINES -= WTF_USE_QT_MULTIMEDIA=1 179 DEFINES += WTF_USE_QT_MULTIMEDIA=0 180 } 181 } 182 183 # Used to compute defaults for the build-webkit script 184 CONFIG(compute_defaults) { 185 message($$DEFINES) 186 error("Done computing defaults") 187 } 188 189 contains(DEFINES, ENABLE_WCSS=1) { 190 contains(DEFINES, ENABLE_XHTMLMP=0) { 191 DEFINES -= ENABLE_XHTMLMP=0 192 DEFINES += ENABLE_XHTMLMP=1 193 } 194 } 195 196 ## Forward enabled feature macros to JavaScript enabled features macros 197 FEATURE_DEFINES_JAVASCRIPT = LANGUAGE_JAVASCRIPT=1 198 v8: FEATURE_DEFINES_JAVASCRIPT += V8_BINDING=1 199 contains(DEFINES, ENABLE_CHANNEL_MESSAGING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_CHANNEL_MESSAGING=1 200 contains(DEFINES, ENABLE_ORIENTATION_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_ORIENTATION_EVENTS=1 201 contains(DEFINES, ENABLE_DATAGRID=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATAGRID=1 202 contains(DEFINES, ENABLE_EVENTSOURCE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_EVENTSOURCE=1 203 contains(DEFINES, ENABLE_DATABASE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATABASE=1 204 contains(DEFINES, ENABLE_DATALIST=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATALIST=1 205 contains(DEFINES, ENABLE_DOM_STORAGE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DOM_STORAGE=1 206 contains(DEFINES, ENABLE_SHARED_SCRIPT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_SCRIPT=1 207 contains(DEFINES, ENABLE_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WORKERS=1 208 contains(DEFINES, ENABLE_SHARED_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_WORKERS=1 209 contains(DEFINES, ENABLE_VIDEO=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO=1 210 contains(DEFINES, ENABLE_XPATH=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XPATH=1 211 contains(DEFINES, ENABLE_XSLT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1 212 contains(DEFINES, ENABLE_XBL=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XBL=1 213 contains(DEFINES, ENABLE_FILTERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_FILTERS=1 214 contains(DEFINES, ENABLE_WCSS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WCSS=1 215 contains(DEFINES, ENABLE_WML=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WML=1 216 contains(DEFINES, ENABLE_XHTMLMP=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XHTMLMP=1 217 contains(DEFINES, ENABLE_SVG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG=1 218 contains(DEFINES, ENABLE_SVG_ANIMATION=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG_ANIMATION=1 219 contains(DEFINES, ENABLE_SVG_FONTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG_FONTS=1 220 contains(DEFINES, ENABLE_SVG_FOREIGN_OBJECT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG_FOREIGN_OBJECT=1 221 contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_JAVASCRIPT_DEBUGGER=1 222 contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_OFFLINE_WEB_APPLICATIONS=1 223 contains(DEFINES, ENABLE_WEB_SOCKETS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_SOCKETS=1 224 contains(DEFINES, ENABLE_WEB_TIMING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_TIMING=1 225 contains(DEFINES, ENABLE_TOUCH_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TOUCH_EVENTS=1 226 contains(DEFINES, ENABLE_TILED_BACKING_STORE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TILED_BACKING_STORE=1 227 contains(DEFINES, ENABLE_NOTIFICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_NOTIFICATIONS=1 228 contains(DEFINES, ENABLE_METER_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_METER_TAG=1 229 contains(DEFINES, ENABLE_PROGRESS_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_PROGRESS_TAG=1 230 contains(DEFINES, ENABLE_GEOLOCATION=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_GEOLOCATION=1 231 contains(DEFINES, ENABLE_BLOB=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_BLOB=1 232 contains(DEFINES, ENABLE_MEDIA_STATISTICS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_MEDIA_STATISTICS=1 233 contains(DEFINES, ENABLE_VIDEO_TRACK=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO_TRACK=1 234 contains(DEFINES, ENABLE_DATA_TRANSFER_ITEMS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATA_TRANSFER_ITEMS=1 235