| # ------------------------------------------------------------------- |
| # This file contains shared rules used both when building WebCore |
| # itself, and by targets that use WebCore. |
| # |
| # See 'Tools/qmake/README' for an overview of the build system |
| # ------------------------------------------------------------------- |
| |
| SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebCore |
| |
| QT *= network sql core-private gui-private |
| |
| WEBCORE_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/WebCore/$${GENERATED_SOURCES_DESTDIR} |
| |
| INCLUDEPATH += \ |
| $$SOURCE_DIR \ |
| $$SOURCE_DIR/Modules/filesystem \ |
| $$SOURCE_DIR/Modules/geolocation \ |
| $$SOURCE_DIR/Modules/indexeddb \ |
| $$SOURCE_DIR/Modules/navigatorcontentutils \ |
| $$SOURCE_DIR/Modules/notifications \ |
| $$SOURCE_DIR/Modules/proximity \ |
| $$SOURCE_DIR/Modules/quota \ |
| $$SOURCE_DIR/Modules/webaudio \ |
| $$SOURCE_DIR/Modules/webdatabase \ |
| $$SOURCE_DIR/Modules/websockets \ |
| $$SOURCE_DIR/accessibility \ |
| $$SOURCE_DIR/bindings \ |
| $$SOURCE_DIR/bindings/generic \ |
| $$SOURCE_DIR/bridge \ |
| $$SOURCE_DIR/bridge/qt \ |
| $$SOURCE_DIR/css \ |
| $$SOURCE_DIR/dom \ |
| $$SOURCE_DIR/dom/default \ |
| $$SOURCE_DIR/editing \ |
| $$SOURCE_DIR/fileapi \ |
| $$SOURCE_DIR/history \ |
| $$SOURCE_DIR/html \ |
| $$SOURCE_DIR/html/canvas \ |
| $$SOURCE_DIR/html/forms \ |
| $$SOURCE_DIR/html/parser \ |
| $$SOURCE_DIR/html/shadow \ |
| $$SOURCE_DIR/html/track \ |
| $$SOURCE_DIR/inspector \ |
| $$SOURCE_DIR/loader \ |
| $$SOURCE_DIR/loader/appcache \ |
| $$SOURCE_DIR/loader/archive \ |
| $$SOURCE_DIR/loader/cache \ |
| $$SOURCE_DIR/loader/icon \ |
| $$SOURCE_DIR/mathml \ |
| $$SOURCE_DIR/page \ |
| $$SOURCE_DIR/page/animation \ |
| $$SOURCE_DIR/page/qt \ |
| $$SOURCE_DIR/page/scrolling \ |
| $$SOURCE_DIR/page/scrolling/coordinatedgraphics \ |
| $$SOURCE_DIR/platform \ |
| $$SOURCE_DIR/platform/animation \ |
| $$SOURCE_DIR/platform/audio \ |
| $$SOURCE_DIR/platform/graphics \ |
| $$SOURCE_DIR/platform/graphics/cpu/arm \ |
| $$SOURCE_DIR/platform/graphics/cpu/arm/filters \ |
| $$SOURCE_DIR/platform/graphics/filters \ |
| $$SOURCE_DIR/platform/graphics/filters/texmap \ |
| $$SOURCE_DIR/platform/graphics/opengl \ |
| $$SOURCE_DIR/platform/graphics/opentype \ |
| $$SOURCE_DIR/platform/graphics/qt \ |
| $$SOURCE_DIR/platform/graphics/surfaces \ |
| $$SOURCE_DIR/platform/graphics/texmap \ |
| $$SOURCE_DIR/platform/graphics/texmap/coordinated \ |
| $$SOURCE_DIR/platform/graphics/transforms \ |
| $$SOURCE_DIR/platform/image-decoders \ |
| $$SOURCE_DIR/platform/image-decoders/bmp \ |
| $$SOURCE_DIR/platform/image-decoders/ico \ |
| $$SOURCE_DIR/platform/image-decoders/gif \ |
| $$SOURCE_DIR/platform/image-decoders/jpeg \ |
| $$SOURCE_DIR/platform/image-decoders/png \ |
| $$SOURCE_DIR/platform/image-decoders/webp \ |
| $$SOURCE_DIR/platform/leveldb \ |
| $$SOURCE_DIR/platform/mock \ |
| $$SOURCE_DIR/platform/network \ |
| $$SOURCE_DIR/platform/network/qt \ |
| $$SOURCE_DIR/platform/qt \ |
| $$SOURCE_DIR/platform/sql \ |
| $$SOURCE_DIR/platform/text \ |
| $$SOURCE_DIR/platform/text/transcoder \ |
| $$SOURCE_DIR/plugins \ |
| $$SOURCE_DIR/rendering \ |
| $$SOURCE_DIR/rendering/mathml \ |
| $$SOURCE_DIR/rendering/shapes \ |
| $$SOURCE_DIR/rendering/style \ |
| $$SOURCE_DIR/rendering/svg \ |
| $$SOURCE_DIR/storage \ |
| $$SOURCE_DIR/svg \ |
| $$SOURCE_DIR/svg/animation \ |
| $$SOURCE_DIR/svg/graphics \ |
| $$SOURCE_DIR/svg/graphics/filters \ |
| $$SOURCE_DIR/svg/properties \ |
| $$SOURCE_DIR/testing \ |
| $$SOURCE_DIR/websockets \ |
| $$SOURCE_DIR/workers \ |
| $$SOURCE_DIR/xml \ |
| $$SOURCE_DIR/xml/parser \ |
| $$SOURCE_DIR/../ThirdParty |
| |
| INCLUDEPATH += \ |
| $$SOURCE_DIR/bridge/jsc \ |
| $$SOURCE_DIR/bindings/js \ |
| $$SOURCE_DIR/bridge/c \ |
| $$SOURCE_DIR/testing/js |
| |
| INCLUDEPATH += $$WEBCORE_GENERATED_SOURCES_DIR |
| |
| enable?(XSLT) { |
| use?(LIBXML2) { |
| mac { |
| INCLUDEPATH += /usr/include/libxslt /usr/include/libxml2 |
| LIBS += -lxml2 -lxslt |
| } else { |
| PKGCONFIG += libxslt libxml-2.0 |
| } |
| } else { |
| QT *= xmlpatterns |
| } |
| } else:!mac:use?(LIBXML2) { |
| PKGCONFIG += libxml-2.0 |
| } |
| |
| use?(ZLIB) { |
| LIBS += -lz |
| } |
| |
| enable?(NETSCAPE_PLUGIN_API) { |
| unix { |
| mac { |
| INCLUDEPATH += platform/mac |
| # Note: XP_MACOSX is defined in npapi.h |
| } else { |
| xlibAvailable() { |
| CONFIG *= x11 |
| LIBS += -lXrender |
| DEFINES += MOZ_X11 |
| } |
| DEFINES += XP_UNIX |
| DEFINES += ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE=1 |
| } |
| } |
| win32-* { |
| LIBS += \ |
| -ladvapi32 \ |
| -lgdi32 \ |
| -lshell32 \ |
| -lshlwapi \ |
| -luser32 \ |
| -lversion |
| } |
| } |
| |
| have?(qtsensors):if(enable?(ORIENTATION_EVENTS)|enable?(DEVICE_ORIENTATION)): QT += sensors |
| |
| use?(QT_MOBILITY_SYSTEMINFO) { |
| CONFIG *= mobility |
| MOBILITY *= systeminfo |
| } |
| |
| enable?(GAMEPAD) { |
| INCLUDEPATH += \ |
| $$SOURCE_DIR/platform/linux \ |
| $$SOURCE_DIR/Modules/gamepad |
| PKGCONFIG += libudev |
| } |
| |
| use?(GSTREAMER) { |
| DEFINES += WTF_USE_GLIB=1 |
| use?(GSTREAMER010) { |
| 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 |
| } else { |
| DEFINES += GST_API_VERSION=1.0 |
| DEFINES += GST_API_VERSION_1 |
| 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 |
| } |
| } |
| |
| enable?(VIDEO) { |
| use?(GSTREAMER) { |
| INCLUDEPATH += $$SOURCE_DIR/platform/graphics/gstreamer |
| } else:use?(QT_MULTIMEDIA) { |
| QT *= multimedia |
| } |
| } |
| |
| enable?(WEB_AUDIO) { |
| use?(GSTREAMER) { |
| DEFINES += WTF_USE_WEBAUDIO_GSTREAMER=1 |
| INCLUDEPATH += $$SOURCE_DIR/platform/audio/gstreamer |
| use?(GSTREAMER010) { |
| PKGCONFIG += gstreamer-audio-0.10 gstreamer-fft-0.10 |
| } else { |
| PKGCONFIG += gstreamer-audio-1.0 gstreamer-fft-1.0 |
| } |
| } |
| } |
| |
| use?(3D_GRAPHICS) { |
| win32: { |
| win32-g++: { |
| # Make sure OpenGL libs are after the webcore lib so MinGW can resolve symbols |
| contains(QT_CONFIG, opengles2) { |
| CONFIG(debug, debug|release):contains(QT_CONFIG, angle) { |
| LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG |
| } else { |
| LIBS += $$QMAKE_LIBS_OPENGL_ES2 |
| } |
| } else { |
| LIBS += $$QMAKE_LIBS_OPENGL |
| } |
| } |
| } else { |
| contains(QT_CONFIG, opengles2): CONFIG += egl |
| } |
| } |
| |
| use?(GRAPHICS_SURFACE) { |
| mac: LIBS += -framework IOSurface -framework CoreFoundation |
| linux-*: { |
| LIBS += -lXcomposite -lXrender |
| CONFIG *= x11 |
| } |
| } |
| |
| have?(sqlite3) { |
| mac { |
| LIBS += -lsqlite3 |
| } else { |
| PKGCONFIG += sqlite3 |
| } |
| } else { |
| SQLITE3SRCDIR = $$(SQLITE3SRCDIR) |
| isEmpty(SQLITE3SRCDIR): SQLITE3SRCDIR = ../../../qtbase/src/3rdparty/sqlite/ |
| exists($${SQLITE3SRCDIR}/sqlite3.c) { |
| INCLUDEPATH += $${SQLITE3SRCDIR} |
| DEFINES += SQLITE_CORE SQLITE_OMIT_LOAD_EXTENSION SQLITE_OMIT_COMPLETE |
| } else { |
| INCLUDEPATH += $${SQLITE3SRCDIR} |
| LIBS += -lsqlite3 |
| } |
| } |
| |
| use?(libjpeg): LIBS += -ljpeg |
| use?(libpng): LIBS += -lpng |
| use?(webp): LIBS += -lwebp |
| |
| enable?(opencl) { |
| LIBS += -lOpenCL |
| INCLUDEPATH += $$SOURCE_DIR/platform/graphics/gpu/opencl |
| } |
| |
| mac { |
| LIBS += -framework Carbon -framework AppKit -framework IOKit |
| } |
| |
| win32 { |
| INCLUDEPATH += $$SOURCE_DIR/platform/win |
| |
| wince* { |
| # see https://bugs.webkit.org/show_bug.cgi?id=43442 |
| DEFINES += HAVE_LOCALTIME_S=0 |
| |
| LIBS += -lmmtimer |
| LIBS += -lole32 |
| } |
| else { |
| LIBS += -lgdi32 |
| LIBS += -lole32 |
| LIBS += -luser32 |
| } |
| } |
| |
| # Remove whole program optimizations due to miscompilations |
| win32-msvc2005|win32-msvc2008|win32-msvc2010|wince*:{ |
| QMAKE_CFLAGS_LTCG -= -GL |
| QMAKE_CXXFLAGS_LTCG -= -GL |
| |
| # Disable incremental linking for windows 32bit OS debug build as WebKit is so big |
| # that linker failes to link incrementally in debug mode. |
| ARCH = $$(PROCESSOR_ARCHITECTURE) |
| WOW64ARCH = $$(PROCESSOR_ARCHITEW6432) |
| equals(ARCH, x86):{ |
| isEmpty(WOW64ARCH): QMAKE_LFLAGS_DEBUG += /INCREMENTAL:NO |
| } |
| } |
| |
| mac { |
| LIBS_PRIVATE += -framework Carbon -framework AppKit |
| } |
| |
| # -ffunction-section conflicts with -pg option |
| !contains(CONFIG, gprof) { |
| unix:!mac:*-g++*:QMAKE_CXXFLAGS += -ffunction-sections |
| } |
| unix:!mac:*-g++*:QMAKE_CXXFLAGS += -fdata-sections |
| unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections |
| linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF |
| |
| enable_fast_mobile_scrolling: DEFINES += ENABLE_FAST_MOBILE_SCROLLING=1 |
| |
| !production_build:have?(FONTCONFIG): PKGCONFIG += fontconfig |
| |