1# Setting up features (enabled/disabled) 2 3CONFIG(minimal) { 4 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0 5} 6 7CONFIG(production) { 8 DEFINES += ENABLE_XSLT=0 9 DEFINES += ENABLE_WEB_TIMING=0 10} 11 12meegotouch { 13 DEFINES += WTF_USE_MEEGOTOUCH=1 14} 15 16## load mobilityconfig if mobility is available 17load(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 22CONFIG(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 31contains(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!contains(DEFINES, ENABLE_ZLIB=.): DEFINES += ENABLE_ZLIB=1 49 50# turn on SQLITE support if any of the dependent features are turned on 51!contains(DEFINES, ENABLE_SQLITE=.) { 52 contains(DEFINES, ENABLE_DATABASE=1)|contains(DEFINES, ENABLE_ICONDATABASE=1)|contains(DEFINES, ENABLE_DOM_STORAGE=1)|contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1) { 53 DEFINES += ENABLE_SQLITE=1 54 } else { 55 DEFINES += ENABLE_SQLITE=0 56 } 57} 58 59!contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=.): DEFINES += ENABLE_DASHBOARD_SUPPORT=0 60!contains(DEFINES, ENABLE_FILTERS=.): DEFINES += ENABLE_FILTERS=1 61!contains(DEFINES, ENABLE_XPATH=.): DEFINES += ENABLE_XPATH=1 62#!contains(DEFINES, ENABLE_XBL=.): DEFINES += ENABLE_XBL=1 63!contains(DEFINES, ENABLE_WCSS=.): DEFINES += ENABLE_WCSS=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_DETAILS=.): DEFINES += ENABLE_DETAILS=1 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_INPUT_SPEECH=.): DEFINES += ENABLE_INPUT_SPEECH=0 73!contains(DEFINES, ENABLE_INSPECTOR=.): DEFINES += ENABLE_INSPECTOR=1 74!contains(DEFINES, ENABLE_3D_RENDERING=.): DEFINES += ENABLE_3D_RENDERING=1 75!contains(DEFINES, ENABLE_WEB_AUDIO=.): DEFINES += ENABLE_WEB_AUDIO=0 76!contains(DEFINES, ENABLE_WEBGL=.): DEFINES += ENABLE_WEBGL=0 77!contains(DEFINES, ENABLE_MEDIA_STATISTICS=.): DEFINES += ENABLE_MEDIA_STATISTICS=0 78!contains(DEFINES, ENABLE_VIDEO_TRACK=.): DEFINES += ENABLE_VIDEO_TRACK=0 79!contains(DEFINES, ENABLE_TOUCH_ICON_LOADING=.): DEFINES += ENABLE_TOUCH_ICON_LOADING=0 80!contains(DEFINES, ENABLE_ANIMATION_API=.): DEFINES += ENABLE_ANIMATION_API=0 81 82# SVG support 83!contains(DEFINES, ENABLE_SVG=0) { 84 !contains(DEFINES, ENABLE_SVG=.): DEFINES += ENABLE_SVG=1 85 !contains(DEFINES, ENABLE_SVG_FONTS=.): DEFINES += ENABLE_SVG_FONTS=1 86 !contains(DEFINES, ENABLE_SVG_FOREIGN_OBJECT=.): DEFINES += ENABLE_SVG_FOREIGN_OBJECT=1 87 !contains(DEFINES, ENABLE_SVG_ANIMATION=.): DEFINES += ENABLE_SVG_ANIMATION=1 88 !contains(DEFINES, ENABLE_SVG_AS_IMAGE=.): DEFINES += ENABLE_SVG_AS_IMAGE=1 89 !contains(DEFINES, ENABLE_SVG_USE=.): DEFINES += ENABLE_SVG_USE=1 90} else { 91 DEFINES += ENABLE_SVG_FONTS=0 ENABLE_SVG_FOREIGN_OBJECT=0 ENABLE_SVG_ANIMATION=0 ENABLE_SVG_AS_IMAGE=0 ENABLE_SVG_USE=0 92} 93 94# HTML5 datalist support 95!contains(DEFINES, ENABLE_DATALIST=.): DEFINES += ENABLE_DATALIST=1 96 97# Tiled Backing Store support 98!contains(DEFINES, ENABLE_TILED_BACKING_STORE=.): DEFINES += ENABLE_TILED_BACKING_STORE=1 99 100# Nescape plugins support (NPAPI) 101!contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=.) { 102 unix|win32-*:!embedded:!wince*: { 103 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1 104 } else { 105 DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0 106 } 107} 108 109# Web Socket support. 110!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1 111 112# Web Timing support. 113!contains(DEFINES, ENABLE_WEB_TIMING=.): DEFINES += ENABLE_WEB_TIMING=1 114 115# XSLT support with QtXmlPatterns 116!contains(DEFINES, ENABLE_XSLT=.) { 117 contains(QT_CONFIG, xmlpatterns):DEFINES += ENABLE_XSLT=1 118 else:DEFINES += ENABLE_XSLT=0 119} 120 121# geolocation support if QtMobility exists 122!CONFIG(QTDIR_build):!contains(DEFINES, ENABLE_GEOLOCATION=.) { 123 contains(MOBILITY_CONFIG, location) { 124 DEFINES += ENABLE_GEOLOCATION=1 125 DEFINES += ENABLE_CLIENT_BASED_GEOLOCATION=1 126 } 127} 128 129# orientation support if QtMobility exists 130contains(MOBILITY_CONFIG, sensors) { 131 !contains(DEFINES, ENABLE_ORIENTATION_EVENTS=.): DEFINES += ENABLE_ORIENTATION_EVENTS=1 132 !contains(DEFINES, ENABLE_DEVICE_ORIENTATION=.): DEFINES += ENABLE_DEVICE_ORIENTATION=1 133 CONFIG *= mobility 134 MOBILITY *= sensors 135} 136 137# systeminfo support if QtMobility systeminfo module exists, but only for symbian, maemo and meego 138symbian|maemo5|maemo6 { 139 !CONFIG(QTDIR_build):!contains(DEFINES, WTF_USE_QT_MOBILITY_SYSTEMINFO=.) { 140 contains(MOBILITY_CONFIG, systeminfo) { 141 DEFINES += WTF_USE_QT_MOBILITY_SYSTEMINFO=1 142 } 143 } 144} 145 146# Bearer management is part of Qt 4.7 147# for older version, check for mobility with bearer 148!contains(DEFINES, WTF_USE_QT_BEARER=.) { 149 !lessThan(QT_MINOR_VERSION, 7) { 150 DEFINES += WTF_USE_QT_BEARER=1 151 } else { 152 contains(MOBILITY_CONFIG, bearer) { 153 DEFINES += WTF_USE_QT_BEARER=1 154 } 155 } 156} 157 158!contains(DEFINES, ENABLE_TOUCH_EVENTS=.): DEFINES += ENABLE_TOUCH_EVENTS=1 159 160# HTML5 Media Support 161# We require QtMultimedia 162!contains(DEFINES, ENABLE_VIDEO=.) { 163 DEFINES -= ENABLE_VIDEO=1 164 DEFINES += ENABLE_VIDEO=0 165 166 linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) { 167 !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 gstreamer-0.10): { 168 DEFINES -= ENABLE_VIDEO=0 169 DEFINES += ENABLE_VIDEO=1 170 DEFINES += WTF_USE_GSTREAMER=1 171 DEFINES -= WTF_USE_GSTREAMER=0 172 } else { 173 message("Disabling video due the lack of GLib/Gio/GStreamer.") 174 DEFINES -= ENABLE_VIDEO=1 175 DEFINES += ENABLE_VIDEO=0 176 } 177 } else: contains(MOBILITY_CONFIG, multimedia) { 178 DEFINES -= ENABLE_VIDEO=0 179 DEFINES += ENABLE_VIDEO=1 180 DEFINES -= WTF_USE_QT_MULTIMEDIA=0 181 DEFINES += WTF_USE_QT_MULTIMEDIA=1 182 } 183} 184 185# Used to compute defaults for the build-webkit script 186CONFIG(compute_defaults) { 187 message($$DEFINES) 188 error("Done computing defaults") 189} 190 191contains(DEFINES, ENABLE_WCSS=1) { 192 contains(DEFINES, ENABLE_XHTMLMP=0) { 193 DEFINES -= ENABLE_XHTMLMP=0 194 DEFINES += ENABLE_XHTMLMP=1 195 } 196} 197 198## Forward enabled feature macros to JavaScript enabled features macros 199FEATURE_DEFINES_JAVASCRIPT = LANGUAGE_JAVASCRIPT=1 200v8: FEATURE_DEFINES_JAVASCRIPT += V8_BINDING=1 201contains(DEFINES, ENABLE_CHANNEL_MESSAGING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_CHANNEL_MESSAGING=1 202contains(DEFINES, ENABLE_ORIENTATION_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_ORIENTATION_EVENTS=1 203contains(DEFINES, ENABLE_EVENTSOURCE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_EVENTSOURCE=1 204contains(DEFINES, ENABLE_DATABASE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATABASE=1 205contains(DEFINES, ENABLE_DATALIST=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATALIST=1 206contains(DEFINES, ENABLE_DOM_STORAGE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DOM_STORAGE=1 207contains(DEFINES, ENABLE_SHARED_SCRIPT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_SCRIPT=1 208contains(DEFINES, ENABLE_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WORKERS=1 209contains(DEFINES, ENABLE_SHARED_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_WORKERS=1 210contains(DEFINES, ENABLE_VIDEO=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO=1 211contains(DEFINES, ENABLE_XPATH=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XPATH=1 212contains(DEFINES, ENABLE_XSLT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1 213contains(DEFINES, ENABLE_XBL=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XBL=1 214contains(DEFINES, ENABLE_FILTERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_FILTERS=1 215contains(DEFINES, ENABLE_WCSS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WCSS=1 216contains(DEFINES, ENABLE_XHTMLMP=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XHTMLMP=1 217contains(DEFINES, ENABLE_SVG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG=1 218contains(DEFINES, ENABLE_SVG_ANIMATION=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG_ANIMATION=1 219contains(DEFINES, ENABLE_SVG_FONTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG_FONTS=1 220contains(DEFINES, ENABLE_SVG_FOREIGN_OBJECT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG_FOREIGN_OBJECT=1 221contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_JAVASCRIPT_DEBUGGER=1 222contains(DEFINES, ENABLE_OFFLINE_WEB_APPLICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_OFFLINE_WEB_APPLICATIONS=1 223contains(DEFINES, ENABLE_WEB_SOCKETS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_SOCKETS=1 224contains(DEFINES, ENABLE_WEB_TIMING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_TIMING=1 225contains(DEFINES, ENABLE_TOUCH_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TOUCH_EVENTS=1 226contains(DEFINES, ENABLE_TILED_BACKING_STORE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TILED_BACKING_STORE=1 227contains(DEFINES, ENABLE_NOTIFICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_NOTIFICATIONS=1 228contains(DEFINES, ENABLE_DETAILS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DETAILS=1 229contains(DEFINES, ENABLE_METER_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_METER_TAG=1 230contains(DEFINES, ENABLE_PROGRESS_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_PROGRESS_TAG=1 231contains(DEFINES, ENABLE_GEOLOCATION=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_GEOLOCATION=1 232contains(DEFINES, ENABLE_BLOB=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_BLOB=1 233contains(DEFINES, ENABLE_MEDIA_STATISTICS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_MEDIA_STATISTICS=1 234contains(DEFINES, ENABLE_VIDEO_TRACK=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO_TRACK=1 235contains(DEFINES, ENABLE_DATA_TRANSFER_ITEMS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATA_TRANSFER_ITEMS=1 236