# ------------------------------------------------------------------- # 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