Correct error in Makefile generation for Windows MinGW.
[qt:qt.git] / src / 3rdparty / webkit / Source / WebKit.pri
1 # Include file to make it easy to include WebKit into Qt projects
2
3 contains(QT_CONFIG, qpa)|contains(QT_CONFIG, embedded): CONFIG += embedded
4
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
7 # QTDIR_build
8 CONFIG(QTDIR_build) {
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
13     # In case we are building a universal binary for Qt, building debug is not
14     # possible because we would exceed the maximum library size for 32bit.
15     mac:contains(QT_CONFIG, x86):contains(QT_CONFIG, x86_64) {
16         CONFIG(debug_and_release)|CONFIG(debug, debug|release) {
17             message(Building a universal binary with debug symbols is not possible. Building release!)
18             CONFIG -= debug_and_release debug
19             CONFIG += release
20         }
21     }
22 } else {
23     !CONFIG(release, debug|release) {
24         OBJECTS_DIR = obj/debug
25     } else { # Release
26         OBJECTS_DIR = obj/release
27         DEFINES *= NDEBUG
28     }
29     exists($$PWD/WebCore/generated):CONFIG += standalone_package
30     # Make sure that build_all follows the build_all config in WebCore
31     mac:contains(QT_CONFIG, qt_framework):!CONFIG(webkit_no_framework):!build_pass:CONFIG += build_all
32 }
33
34 CONFIG(standalone_package): DEFINES *= NDEBUG
35
36 CONFIG += depend_includepath
37 DEPENDPATH += $$OUT_PWD
38
39 DEFINES += BUILDING_QT__=1
40 building-libs {
41     win32-msvc*|win32-icc: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32
42 } else {
43     CONFIG(QTDIR_build) {
44         QT += webkit
45     } else {
46         QMAKE_LIBDIR = $$OUTPUT_DIR/lib $$QMAKE_LIBDIR
47         QTWEBKITLIBNAME = QtWebKit
48         mac:!static:contains(QT_CONFIG, qt_framework):!CONFIG(webkit_no_framework) {
49             LIBS += -framework $$QTWEBKITLIBNAME
50             QMAKE_FRAMEWORKPATH = $$OUTPUT_DIR/lib $$QMAKE_FRAMEWORKPATH
51         } else {
52             win32-*|wince* {
53                 !CONFIG(release, debug|release): QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}d
54                 QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}$${QT_MAJOR_VERSION}
55                 win32-g++*: LIBS += -l$$QTWEBKITLIBNAME
56                 else: LIBS += $${QTWEBKITLIBNAME}.lib
57             } else {
58                 LIBS += -lQtWebKit
59                 symbian {
60                     TARGET.EPOCSTACKSIZE = 0x14000 // 80 kB
61                     # For EXEs only: set heap to usable value
62                     TARGET.EPOCHEAPSIZE =
63                     heapSizeRule = \
64                     "$${LITERAL_HASH}ifdef WINSCW" \
65                         "EPOCHEAPSIZE  0x40000 0x2000000 // Min 256kB, Max 32MB" \
66                     "$${LITERAL_HASH}else" \
67                         "EPOCHEAPSIZE  0x40000 0x10000000 // Min 256kB, Max 256MB" \
68                     "$${LITERAL_HASH}endif"
69                     MMP_RULES += heapSizeRule
70                 }
71             }
72         }
73     }
74     DEPENDPATH += $$PWD/WebKit/qt/Api
75 }
76
77 CONFIG(release, debug|release) {
78     DEFINES += NDEBUG
79 }
80
81 INCLUDEPATH += \
82     $$PWD \
83     $$PWD/../include \
84     $$OUTPUT_DIR/include/QtWebKit \
85     $$OUTPUT_DIR/include \
86     $$QT.script.includes
87
88 DEFINES += QT_ASCII_CAST_WARNINGS
89
90 webkit2:INCLUDEPATH *= $$OUTPUT_DIR/include/WebKit2
91
92 # Pick up 3rdparty libraries from INCLUDE/LIB just like with MSVC
93 win32-g++* {
94     TMPPATH            = $$quote($$(INCLUDE))
95     QMAKE_INCDIR_POST += $$split(TMPPATH,";")
96     TMPPATH            = $$quote($$(LIB))
97     QMAKE_LIBDIR_POST += $$split(TMPPATH,";")
98 }
99
100 CONFIG -= warn_on
101 *-g++*:QMAKE_CXXFLAGS += -Wall -Wextra -Wreturn-type -fno-strict-aliasing -Wcast-align -Wchar-subscripts -Wformat-security -Wreturn-type -Wno-unused-parameter -Wno-sign-compare -Wno-switch -Wno-switch-enum -Wundef -Wmissing-noreturn -Winit-self
102
103 # Treat warnings as errors on x86/Linux/GCC
104 linux-g++* {
105     !CONFIG(standalone_package):if(isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386)): QMAKE_CXXFLAGS += -Werror
106
107     greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) {
108         if (!contains(QMAKE_CXXFLAGS, -std=c++0x) && !contains(QMAKE_CXXFLAGS, -std=gnu++0x)) {
109             # We need to deactivate those warnings because some names conflicts with upcoming c++0x types (e.g.nullptr).
110             QMAKE_CFLAGS_WARN_ON += -Wno-c++0x-compat
111             QMAKE_CXXFLAGS_WARN_ON += -Wno-c++0x-compat
112             QMAKE_CFLAGS += -Wno-c++0x-compat
113             QMAKE_CXXFLAGS += -Wno-c++0x-compat
114         }
115     }
116 }
117
118 symbian|*-armcc {
119     # Enable GNU compiler extensions to the ARM compiler for all Qt ports using RVCT
120     RVCT_COMMON_CFLAGS = --gnu --diag_suppress 68,111,177,368,830,1293
121     RVCT_COMMON_CXXFLAGS = $$RVCT_COMMON_CFLAGS --no_parse_templates
122     # Make debug symbols leaner in RVCT4.x. Ignored by compiler for release builds
123     QMAKE_CXXFLAGS.ARMCC_4_0 += --remove_unneeded_entities
124     # Match other compilers' (GCC, MSVC, WINSCW...) behavior regarding bitfield signedness.
125     # This flag is not needed for RVCT 2.x.
126     QMAKE_CXXFLAGS.ARMCC_4_0 += --signed_bitfields
127 }
128
129 *-armcc {
130     QMAKE_CFLAGS += $$RVCT_COMMON_CFLAGS
131     QMAKE_CXXFLAGS += $$RVCT_COMMON_CXXFLAGS
132 }
133
134 symbian {
135     QMAKE_CXXFLAGS.ARMCC += $$RVCT_COMMON_CXXFLAGS
136 }
137
138 valgrind {
139     contains(JAVASCRIPTCORE_JIT,yes): error("'JAVASCRIPTCORE_JIT=yes' not supported with valgrind")
140     QMAKE_CXXFLAGS += -g
141     QMAKE_LFLAGS += -g
142     DEFINES += USE_SYSTEM_MALLOC=1
143     DEFINES += ENABLE_JIT=0
144     JAVASCRIPTCORE_JIT = no
145 }
146
147 # Disable dependency to a specific version of a Qt package for non-production builds
148 symbian:!CONFIG(production):default_deployment.pkg_prerules -= pkg_depends_qt
149
150 ##### Defaults for some mobile platforms
151 symbian|maemo5|maemo6 {
152     CONFIG += disable_uitools
153     CONFIG += enable_fast_mobile_scrolling
154     CONFIG += use_qt_mobile_theme
155     maemo6: CONFIG += include_webinspector
156 } else {
157     CONFIG += include_webinspector
158 }
159
160 *sh4* {
161     CONFIG += disable_uitools
162 }
163 ####
164
165 disable_uitools: DEFINES *= QT_NO_UITOOLS
166
167 # Disable a few warnings on Windows. The warnings are also
168 # disabled in WebKitLibraries/win/tools/vsprops/common.vsprops
169 win32-msvc*|wince*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4396 -wd4503 -wd4800 -wd4819 -wd4996
170 win32-icc: QMAKE_CXXFLAGS += -wd873
171
172 CONFIG(qt_minimal) {
173     DEFINES *= QT_NO_ANIMATION
174     DEFINES *= QT_NO_BEARERMANAGEMENT
175     DEFINES *= QT_NO_CLIPBOARD
176     DEFINES *= QT_NO_COMBOBOX
177     DEFINES *= QT_NO_CONCURRENT
178     DEFINES *= QT_NO_CRASHHANDLER
179     DEFINES *= QT_NO_CURSOR
180     DEFINES *= QT_NO_DESKTOPSERVICES
181     DEFINES *= QT_NO_FILEDIALOG
182     DEFINES *= QT_NO_GRAPHICSEFFECT
183     DEFINES *= QT_NO_IM
184     DEFINES *= QT_NO_INPUTDIALOG
185     DEFINES *= QT_NO_LINEEDIT
186     DEFINES *= QT_NO_MESSAGEBOX
187     DEFINES *= QT_NO_OPENSSL
188     DEFINES *= QT_NO_PRINTER
189     DEFINES *= QT_NO_QUUID_STRING
190     DEFINES *= QT_NO_SHORTCUT
191     DEFINES *= QT_NO_STYLE_STYLESHEET
192     DEFINES *= QT_NO_SYSTEMTRAYICON
193     DEFINES *= QT_NO_TEMPORARYFILE
194     DEFINES *= QT_NO_TOOLTIP
195     DEFINES *= QT_NO_UITOOLS
196     DEFINES *= QT_NO_UNDOCOMMAND
197     DEFINES *= QT_NO_UNDOSTACK
198     DEFINES *= QT_NO_XRENDER
199 }
200
201 contains(DEFINES, QT_NO_UITOOLS): CONFIG -= uitools