1 # Include file to make it easy to include WebKit into Qt projects
3 contains(QT_CONFIG, qpa)|contains(QT_CONFIG, embedded): CONFIG += embedded
5 # Detect that we are building as a standalone package by the presence of
6 # either the generated files directory or as part of the Qt package through
9 CONFIG += standalone_package
10 # Make sure we compile both debug and release on mac when inside Qt.
11 # This line was extracted from qbase.pri instead of including the whole file
12 win32|mac:!macx-xcode:CONFIG += debug_and_release
14 !CONFIG(release, debug|release) {
15 OBJECTS_DIR = obj/debug
17 OBJECTS_DIR = obj/release
20 exists($$PWD/WebCore/generated):CONFIG += standalone_package
21 # Make sure that build_all follows the build_all config in WebCore
22 mac:contains(QT_CONFIG, qt_framework):!CONFIG(webkit_no_framework):!build_pass:CONFIG += build_all
24 #We don't want verify and other platform macros to pollute the namespace
25 mac: DEFINES += __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0
27 CONFIG(standalone_package): DEFINES *= NDEBUG
29 CONFIG += depend_includepath
30 DEPENDPATH += $$OUT_PWD
32 DEFINES += BUILDING_QT__=1
34 win32-msvc*|win32-icc: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32
39 QMAKE_LIBDIR = $$OUTPUT_DIR/lib $$QMAKE_LIBDIR
40 QTWEBKITLIBNAME = QtWebKit
41 mac:!static:contains(QT_CONFIG, qt_framework):!CONFIG(webkit_no_framework) {
42 LIBS += -framework $$QTWEBKITLIBNAME
43 QMAKE_FRAMEWORKPATH = $$OUTPUT_DIR/lib $$QMAKE_FRAMEWORKPATH
45 build_pass: win32-*|wince* {
46 !CONFIG(release, debug|release): QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}d
47 QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}$${QT_MAJOR_VERSION}
48 win32-g++*: LIBS += -l$$QTWEBKITLIBNAME
49 else: LIBS += $${QTWEBKITLIBNAME}.lib
53 TARGET.EPOCSTACKSIZE = 0x14000 // 80 kB
54 # For EXEs only: set heap to usable value
57 "$${LITERAL_HASH}ifdef WINSCW" \
58 "EPOCHEAPSIZE 0x40000 0x2000000 // Min 256kB, Max 32MB" \
59 "$${LITERAL_HASH}else" \
60 "EPOCHEAPSIZE 0x40000 0x10000000 // Min 256kB, Max 256MB" \
61 "$${LITERAL_HASH}endif"
62 MMP_RULES += heapSizeRule
67 DEPENDPATH += $$PWD/WebKit/qt/Api
70 CONFIG(release, debug|release) {
76 $$OUTPUT_DIR/include/QtWebKit \
77 $$OUTPUT_DIR/include \
80 DEFINES += QT_ASCII_CAST_WARNINGS
82 webkit2:INCLUDEPATH *= $$OUTPUT_DIR/include/WebKit2
84 # Pick up 3rdparty libraries from INCLUDE/LIB just like with MSVC
86 TMPPATH = $$quote($$(INCLUDE))
87 QMAKE_INCDIR_POST += $$split(TMPPATH,";")
88 TMPPATH = $$quote($$(LIB))
89 QMAKE_LIBDIR_POST += $$split(TMPPATH,";")
93 *-g++*:QMAKE_CXXFLAGS += -Wall -Wextra -Wreturn-type -fno-strict-aliasing -Wchar-subscripts -Wformat-security -Wreturn-type -Wno-unused-parameter -Wno-sign-compare -Wno-switch -Wno-switch-enum -Wundef -Wmissing-noreturn -Winit-self
95 # Treat warnings as errors on x86/Linux/GCC
97 isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror
98 GCC_VERSION = $$system(gcc -dumpversion)
99 GCC_VERSION = $$split(GCC_VERSION, ".")
100 GCC_MAJOR_VERSION = $$first(GCC_VERSION)
101 GCC_MINOR_VERSION = $$member(GCC_VERSION, 1)
102 greaterThan(GCC_MAJOR_VERSION, 3):greaterThan(GCC_MINOR_VERSION, 5) {
103 if (!contains(QMAKE_CXXFLAGS, -std=c++0x) && !contains(QMAKE_CXXFLAGS, -std=gnu++0x)) {
104 # We need to deactivate those warnings because some names conflicts with upcoming c++0x types (e.g.nullptr).
105 QMAKE_CFLAGS_WARN_ON += -Wno-c++0x-compat
106 QMAKE_CXXFLAGS_WARN_ON += -Wno-c++0x-compat
107 QMAKE_CFLAGS += -Wno-c++0x-compat
108 QMAKE_CXXFLAGS += -Wno-c++0x-compat
114 # Enable GNU compiler extensions to the ARM compiler for all Qt ports using RVCT
115 RVCT_COMMON_CFLAGS = --gnu --diag_suppress 68,111,177,368,830,1293
116 RVCT_COMMON_CXXFLAGS = $$RVCT_COMMON_CFLAGS --no_parse_templates
117 # Make debug symbols leaner in RVCT4.x. Ignored by compiler for release builds
118 QMAKE_CXXFLAGS.ARMCC_4_0 += --remove_unneeded_entities
119 # Match other compilers' (GCC, MSVC, WINSCW...) behavior regarding bitfield signedness.
120 # This flag is not needed for RVCT 2.x.
121 QMAKE_CXXFLAGS.ARMCC_4_0 += --signed_bitfields
125 QMAKE_CFLAGS += $$RVCT_COMMON_CFLAGS
126 QMAKE_CXXFLAGS += $$RVCT_COMMON_CXXFLAGS
130 QMAKE_CXXFLAGS.ARMCC += $$RVCT_COMMON_CXXFLAGS
134 contains(JAVASCRIPTCORE_JIT,yes): error("'JAVASCRIPTCORE_JIT=yes' not supported with valgrind")
137 DEFINES += USE_SYSTEM_MALLOC=1
138 DEFINES += ENABLE_JIT=0
139 JAVASCRIPTCORE_JIT = no
142 contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1
143 contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0
146 isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) {
147 message(Using gold linker)
148 QMAKE_LFLAGS+=-fuse-ld=gold
153 # Disable dependency to a specific version of a Qt package for non-production builds
154 symbian:!CONFIG(production):default_deployment.pkg_prerules -= pkg_depends_qt
156 ##### Defaults for some mobile platforms
157 symbian|maemo5|maemo6 {
158 CONFIG += disable_uitools
159 CONFIG += enable_fast_mobile_scrolling
160 CONFIG += use_qt_mobile_theme
161 maemo6: CONFIG += include_webinspector
163 CONFIG += include_webinspector
167 CONFIG += disable_uitools
171 disable_uitools: DEFINES *= QT_NO_UITOOLS
173 # Disable a few warnings on Windows. The warnings are also
174 # disabled in WebKitLibraries/win/tools/vsprops/common.vsprops
175 win32-msvc*|wince*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4396 -wd4503 -wd4800 -wd4819 -wd4996
176 win32-icc: QMAKE_CXXFLAGS += -wd873
179 DEFINES *= QT_NO_ANIMATION
180 DEFINES *= QT_NO_BEARERMANAGEMENT
181 DEFINES *= QT_NO_CLIPBOARD
182 DEFINES *= QT_NO_COMBOBOX
183 DEFINES *= QT_NO_CONCURRENT
184 DEFINES *= QT_NO_CRASHHANDLER
185 DEFINES *= QT_NO_CURSOR
186 DEFINES *= QT_NO_DESKTOPSERVICES
187 DEFINES *= QT_NO_FILEDIALOG
188 DEFINES *= QT_NO_GRAPHICSEFFECT
190 DEFINES *= QT_NO_INPUTDIALOG
191 DEFINES *= QT_NO_LINEEDIT
192 DEFINES *= QT_NO_MESSAGEBOX
193 DEFINES *= QT_NO_OPENSSL
194 DEFINES *= QT_NO_PRINTER
195 DEFINES *= QT_NO_QUUID_STRING
196 DEFINES *= QT_NO_SHORTCUT
197 DEFINES *= QT_NO_STYLE_STYLESHEET
198 DEFINES *= QT_NO_SYSTEMTRAYICON
199 DEFINES *= QT_NO_TEMPORARYFILE
200 DEFINES *= QT_NO_TOOLTIP
201 DEFINES *= QT_NO_UITOOLS
202 DEFINES *= QT_NO_UNDOCOMMAND
203 DEFINES *= QT_NO_UNDOSTACK
204 DEFINES *= QT_NO_XRENDER
207 contains(DEFINES, QT_NO_UITOOLS): CONFIG -= uitools