1# ------------------------------------------------------------------- 2# This file contains shared rules used both when building WebCore 3# itself, and by targets that use WebCore. 4# 5# See 'Tools/qmake/README' for an overview of the build system 6# ------------------------------------------------------------------- 7 8SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebCore 9 10QT *= network sql core-private gui-private 11 12WEBCORE_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/WebCore/$${GENERATED_SOURCES_DESTDIR} 13 14INCLUDEPATH += \ 15 $$SOURCE_DIR \ 16 $$SOURCE_DIR/Modules/filesystem \ 17 $$SOURCE_DIR/Modules/geolocation \ 18 $$SOURCE_DIR/Modules/indexeddb \ 19 $$SOURCE_DIR/Modules/navigatorcontentutils \ 20 $$SOURCE_DIR/Modules/notifications \ 21 $$SOURCE_DIR/Modules/proximity \ 22 $$SOURCE_DIR/Modules/quota \ 23 $$SOURCE_DIR/Modules/webaudio \ 24 $$SOURCE_DIR/Modules/webdatabase \ 25 $$SOURCE_DIR/Modules/websockets \ 26 $$SOURCE_DIR/accessibility \ 27 $$SOURCE_DIR/bindings \ 28 $$SOURCE_DIR/bindings/generic \ 29 $$SOURCE_DIR/bridge \ 30 $$SOURCE_DIR/bridge/qt \ 31 $$SOURCE_DIR/css \ 32 $$SOURCE_DIR/dom \ 33 $$SOURCE_DIR/dom/default \ 34 $$SOURCE_DIR/editing \ 35 $$SOURCE_DIR/fileapi \ 36 $$SOURCE_DIR/history \ 37 $$SOURCE_DIR/html \ 38 $$SOURCE_DIR/html/canvas \ 39 $$SOURCE_DIR/html/forms \ 40 $$SOURCE_DIR/html/parser \ 41 $$SOURCE_DIR/html/shadow \ 42 $$SOURCE_DIR/html/track \ 43 $$SOURCE_DIR/inspector \ 44 $$SOURCE_DIR/loader \ 45 $$SOURCE_DIR/loader/appcache \ 46 $$SOURCE_DIR/loader/archive \ 47 $$SOURCE_DIR/loader/cache \ 48 $$SOURCE_DIR/loader/icon \ 49 $$SOURCE_DIR/mathml \ 50 $$SOURCE_DIR/page \ 51 $$SOURCE_DIR/page/animation \ 52 $$SOURCE_DIR/page/qt \ 53 $$SOURCE_DIR/page/scrolling \ 54 $$SOURCE_DIR/page/scrolling/coordinatedgraphics \ 55 $$SOURCE_DIR/platform \ 56 $$SOURCE_DIR/platform/animation \ 57 $$SOURCE_DIR/platform/audio \ 58 $$SOURCE_DIR/platform/graphics \ 59 $$SOURCE_DIR/platform/graphics/cpu/arm \ 60 $$SOURCE_DIR/platform/graphics/cpu/arm/filters \ 61 $$SOURCE_DIR/platform/graphics/filters \ 62 $$SOURCE_DIR/platform/graphics/filters/texmap \ 63 $$SOURCE_DIR/platform/graphics/opengl \ 64 $$SOURCE_DIR/platform/graphics/opentype \ 65 $$SOURCE_DIR/platform/graphics/qt \ 66 $$SOURCE_DIR/platform/graphics/surfaces \ 67 $$SOURCE_DIR/platform/graphics/texmap \ 68 $$SOURCE_DIR/platform/graphics/texmap/coordinated \ 69 $$SOURCE_DIR/platform/graphics/transforms \ 70 $$SOURCE_DIR/platform/image-decoders \ 71 $$SOURCE_DIR/platform/image-decoders/bmp \ 72 $$SOURCE_DIR/platform/image-decoders/ico \ 73 $$SOURCE_DIR/platform/image-decoders/gif \ 74 $$SOURCE_DIR/platform/image-decoders/jpeg \ 75 $$SOURCE_DIR/platform/image-decoders/png \ 76 $$SOURCE_DIR/platform/image-decoders/webp \ 77 $$SOURCE_DIR/platform/leveldb \ 78 $$SOURCE_DIR/platform/mock \ 79 $$SOURCE_DIR/platform/network \ 80 $$SOURCE_DIR/platform/network/qt \ 81 $$SOURCE_DIR/platform/qt \ 82 $$SOURCE_DIR/platform/sql \ 83 $$SOURCE_DIR/platform/text \ 84 $$SOURCE_DIR/platform/text/transcoder \ 85 $$SOURCE_DIR/plugins \ 86 $$SOURCE_DIR/rendering \ 87 $$SOURCE_DIR/rendering/mathml \ 88 $$SOURCE_DIR/rendering/shapes \ 89 $$SOURCE_DIR/rendering/style \ 90 $$SOURCE_DIR/rendering/svg \ 91 $$SOURCE_DIR/storage \ 92 $$SOURCE_DIR/svg \ 93 $$SOURCE_DIR/svg/animation \ 94 $$SOURCE_DIR/svg/graphics \ 95 $$SOURCE_DIR/svg/graphics/filters \ 96 $$SOURCE_DIR/svg/properties \ 97 $$SOURCE_DIR/testing \ 98 $$SOURCE_DIR/websockets \ 99 $$SOURCE_DIR/workers \ 100 $$SOURCE_DIR/xml \ 101 $$SOURCE_DIR/xml/parser \ 102 $$SOURCE_DIR/../ThirdParty 103 104INCLUDEPATH += \ 105 $$SOURCE_DIR/bridge/jsc \ 106 $$SOURCE_DIR/bindings/js \ 107 $$SOURCE_DIR/bridge/c \ 108 $$SOURCE_DIR/testing/js 109 110INCLUDEPATH += $$WEBCORE_GENERATED_SOURCES_DIR 111 112enable?(XSLT) { 113 use?(LIBXML2) { 114 mac { 115 INCLUDEPATH += /usr/include/libxslt /usr/include/libxml2 116 LIBS += -lxml2 -lxslt 117 } else { 118 PKGCONFIG += libxslt libxml-2.0 119 } 120 } else { 121 QT *= xmlpatterns 122 } 123} else:!mac:use?(LIBXML2) { 124 PKGCONFIG += libxml-2.0 125} 126 127use?(ZLIB) { 128 LIBS += -lz 129} 130 131enable?(NETSCAPE_PLUGIN_API) { 132 unix { 133 mac { 134 INCLUDEPATH += platform/mac 135 # Note: XP_MACOSX is defined in npapi.h 136 } else { 137 xlibAvailable() { 138 CONFIG *= x11 139 LIBS += -lXrender 140 DEFINES += MOZ_X11 141 } 142 DEFINES += XP_UNIX 143 DEFINES += ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE=1 144 } 145 } 146 win32-* { 147 LIBS += \ 148 -ladvapi32 \ 149 -lgdi32 \ 150 -lshell32 \ 151 -lshlwapi \ 152 -luser32 \ 153 -lversion 154 } 155} 156 157have?(qtsensors):if(enable?(ORIENTATION_EVENTS)|enable?(DEVICE_ORIENTATION)): QT += sensors 158 159use?(QT_MOBILITY_SYSTEMINFO) { 160 CONFIG *= mobility 161 MOBILITY *= systeminfo 162} 163 164enable?(GAMEPAD) { 165 INCLUDEPATH += \ 166 $$SOURCE_DIR/platform/linux \ 167 $$SOURCE_DIR/Modules/gamepad 168 PKGCONFIG += libudev 169} 170 171use?(GSTREAMER) { 172 DEFINES += WTF_USE_GLIB=1 173 use?(GSTREAMER010) { 174 PKGCONFIG += glib-2.0 gio-2.0 gstreamer-0.10 gstreamer-app-0.10 gstreamer-base-0.10 gstreamer-interfaces-0.10 gstreamer-pbutils-0.10 gstreamer-plugins-base-0.10 gstreamer-video-0.10 175 } else { 176 DEFINES += GST_API_VERSION=1.0 177 DEFINES += GST_API_VERSION_1 178 PKGCONFIG += glib-2.0 gio-2.0 gstreamer-1.0 gstreamer-app-1.0 gstreamer-base-1.0 gstreamer-pbutils-1.0 gstreamer-plugins-base-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 179 } 180} 181 182enable?(VIDEO) { 183 use?(GSTREAMER) { 184 INCLUDEPATH += $$SOURCE_DIR/platform/graphics/gstreamer 185 } else:use?(QT_MULTIMEDIA) { 186 QT *= multimedia 187 } 188} 189 190enable?(WEB_AUDIO) { 191 use?(GSTREAMER) { 192 DEFINES += WTF_USE_WEBAUDIO_GSTREAMER=1 193 INCLUDEPATH += $$SOURCE_DIR/platform/audio/gstreamer 194 use?(GSTREAMER010) { 195 PKGCONFIG += gstreamer-audio-0.10 gstreamer-fft-0.10 196 } else { 197 PKGCONFIG += gstreamer-audio-1.0 gstreamer-fft-1.0 198 } 199 } 200} 201 202use?(3D_GRAPHICS) { 203 win32: { 204 win32-g++: { 205 # Make sure OpenGL libs are after the webcore lib so MinGW can resolve symbols 206 contains(QT_CONFIG, opengles2) { 207 CONFIG(debug, debug|release):contains(QT_CONFIG, angle) { 208 LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG 209 } else { 210 LIBS += $$QMAKE_LIBS_OPENGL_ES2 211 } 212 } else { 213 LIBS += $$QMAKE_LIBS_OPENGL 214 } 215 } 216 } else { 217 contains(QT_CONFIG, opengles2): CONFIG += egl 218 } 219} 220 221use?(GRAPHICS_SURFACE) { 222 mac: LIBS += -framework IOSurface -framework CoreFoundation 223 linux-*: { 224 LIBS += -lXcomposite -lXrender 225 CONFIG *= x11 226 } 227} 228 229have?(sqlite3) { 230 mac { 231 LIBS += -lsqlite3 232 } else { 233 PKGCONFIG += sqlite3 234 } 235} else { 236 SQLITE3SRCDIR = $$(SQLITE3SRCDIR) 237 isEmpty(SQLITE3SRCDIR): SQLITE3SRCDIR = ../../../qtbase/src/3rdparty/sqlite/ 238 exists($${SQLITE3SRCDIR}/sqlite3.c) { 239 INCLUDEPATH += $${SQLITE3SRCDIR} 240 DEFINES += SQLITE_CORE SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE 241 } else { 242 INCLUDEPATH += $${SQLITE3SRCDIR} 243 LIBS += -lsqlite3 244 } 245} 246 247use?(libjpeg): LIBS += -ljpeg 248use?(libpng): LIBS += -lpng 249use?(webp): LIBS += -lwebp 250 251enable?(opencl) { 252 LIBS += -lOpenCL 253 INCLUDEPATH += $$SOURCE_DIR/platform/graphics/gpu/opencl 254} 255 256mac { 257 LIBS += -framework Carbon -framework AppKit -framework IOKit 258} 259 260win32 { 261 INCLUDEPATH += $$SOURCE_DIR/platform/win 262 263 wince* { 264 # see https://bugs.webkit.org/show_bug.cgi?id=43442 265 DEFINES += HAVE_LOCALTIME_S=0 266 267 LIBS += -lmmtimer 268 LIBS += -lole32 269 } 270 else { 271 LIBS += -lgdi32 272 LIBS += -lole32 273 LIBS += -luser32 274 } 275} 276 277# Remove whole program optimizations due to miscompilations 278win32-msvc2005|win32-msvc2008|win32-msvc2010|wince*:{ 279 QMAKE_CFLAGS_LTCG -= -GL 280 QMAKE_CXXFLAGS_LTCG -= -GL 281 282 # Disable incremental linking for windows 32bit OS debug build as WebKit is so big 283 # that linker failes to link incrementally in debug mode. 284 ARCH = $$(PROCESSOR_ARCHITECTURE) 285 WOW64ARCH = $$(PROCESSOR_ARCHITEW6432) 286 equals(ARCH, x86):{ 287 isEmpty(WOW64ARCH): QMAKE_LFLAGS_DEBUG += /INCREMENTAL:NO 288 } 289} 290 291mac { 292 LIBS_PRIVATE += -framework Carbon -framework AppKit 293} 294 295# -ffunction-section conflicts with -pg option 296!contains(CONFIG, gprof) { 297 unix:!mac:*-g++*:QMAKE_CXXFLAGS += -ffunction-sections 298} 299unix:!mac:*-g++*:QMAKE_CXXFLAGS += -fdata-sections 300unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections 301linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF 302 303enable_fast_mobile_scrolling: DEFINES += ENABLE_FAST_MOBILE_SCROLLING=1 304 305!production_build:have?(FONTCONFIG): PKGCONFIG += fontconfig 306 307