1 # Include file to make it easy to include WebKit into Qt projects 2 3 contains(QT_CONFIG, qpa):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 } else { 14 !CONFIG(release, debug|release) { 15 OBJECTS_DIR = obj/debug 16 } else { # Release 17 OBJECTS_DIR = obj/release 18 DEFINES *= NDEBUG 19 } 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 23 } 24 25 CONFIG(standalone_package): DEFINES *= NDEBUG 26 27 CONFIG += depend_includepath 28 DEPENDPATH += $$OUT_PWD 29 30 DEFINES += BUILDING_QT__=1 31 building-libs { 32 win32-msvc*|win32-icc: INCLUDEPATH += $$PWD/JavaScriptCore/os-win32 33 } else { 34 CONFIG(QTDIR_build) { 35 QT += webkit 36 } else { 37 QMAKE_LIBDIR = $$OUTPUT_DIR/lib $$QMAKE_LIBDIR 38 QTWEBKITLIBNAME = QtWebKit 39 mac:!static:contains(QT_CONFIG, qt_framework):!CONFIG(webkit_no_framework) { 40 LIBS += -framework $$QTWEBKITLIBNAME 41 QMAKE_FRAMEWORKPATH = $$OUTPUT_DIR/lib $$QMAKE_FRAMEWORKPATH 42 } else { 43 build_pass: win32-*|wince* { 44 !CONFIG(release, debug|release): QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}d 45 QTWEBKITLIBNAME = $${QTWEBKITLIBNAME}$${QT_MAJOR_VERSION} 46 win32-g++*: LIBS += -l$$QTWEBKITLIBNAME 47 else: LIBS += $${QTWEBKITLIBNAME}.lib 48 } else { 49 LIBS += -lQtWebKit 50 symbian { 51 TARGET.EPOCSTACKSIZE = 0x14000 // 80 kB 52 # For EXEs only: set heap to usable value 53 TARGET.EPOCHEAPSIZE = 54 heapSizeRule = \ 55 "$${LITERAL_HASH}ifdef WINSCW" \ 56 "EPOCHEAPSIZE 0x40000 0x2000000 // Min 256kB, Max 32MB" \ 57 "$${LITERAL_HASH}else" \ 58 "EPOCHEAPSIZE 0x40000 0x10000000 // Min 256kB, Max 256MB" \ 59 "$${LITERAL_HASH}endif" 60 MMP_RULES += heapSizeRule 61 } 62 } 63 } 64 } 65 DEPENDPATH += $$PWD/WebKit/qt/Api 66 } 67 68 CONFIG(release, debug|release) { 69 DEFINES += NDEBUG 70 } 71 72 INCLUDEPATH += \ 73 $$PWD \ 74 $$OUTPUT_DIR/include/QtWebKit \ 75 $$OUTPUT_DIR/include \ 76 $$QT.script.includes 77 78 DEFINES += QT_ASCII_CAST_WARNINGS 79 80 webkit2:INCLUDEPATH *= $$OUTPUT_DIR/include/WebKit2 81 82 # Pick up 3rdparty libraries from INCLUDE/LIB just like with MSVC 83 win32-g++* { 84 TMPPATH = $$quote($$(INCLUDE)) 85 QMAKE_INCDIR_POST += $$split(TMPPATH,";") 86 TMPPATH = $$quote($$(LIB)) 87 QMAKE_LIBDIR_POST += $$split(TMPPATH,";") 88 } 89 90 CONFIG -= warn_on 91 *-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 92 93 # Treat warnings as errors on x86/Linux/GCC 94 linux-g++* { 95 isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror 96 } 97 98 symbian|*-armcc { 99 # Enable GNU compiler extensions to the ARM compiler for all Qt ports using RVCT 100 RVCT_COMMON_CFLAGS = --gnu --diag_suppress 68,111,177,368,830,1293 --signed_bitfields 101 RVCT_COMMON_CXXFLAGS = $$RVCT_COMMON_CFLAGS --no_parse_templates 102 # Make debug symbols leaner in RVCT4.x. Ignored by compiler for release builds 103 QMAKE_CXXFLAGS.ARMCC_4_0 += --remove_unneeded_entities 104 } 105 106 *-armcc { 107 QMAKE_CFLAGS += $$RVCT_COMMON_CFLAGS 108 QMAKE_CXXFLAGS += $$RVCT_COMMON_CXXFLAGS 109 } 110 111 symbian { 112 QMAKE_CXXFLAGS.ARMCC += $$RVCT_COMMON_CXXFLAGS 113 } 114 115 valgrind { 116 contains(JAVASCRIPTCORE_JIT,yes): error("'JAVASCRIPTCORE_JIT=yes' not supported with valgrind") 117 QMAKE_CXXFLAGS += -g 118 QMAKE_LFLAGS += -g 119 DEFINES += USE_SYSTEM_MALLOC=1 120 DEFINES += ENABLE_JIT=0 121 JAVASCRIPTCORE_JIT = no 122 } 123 124 # Disable dependency to a specific version of a Qt package for non-production builds 125 symbian:!CONFIG(production):default_deployment.pkg_prerules -= pkg_depends_qt 126 127 ##### Defaults for some mobile platforms 128 symbian|maemo5|maemo6 { 129 CONFIG += disable_uitools 130 CONFIG += enable_fast_mobile_scrolling 131 CONFIG += use_qt_mobile_theme 132 maemo6: CONFIG += include_webinspector 133 } else { 134 CONFIG += include_webinspector 135 } 136 137 *sh4* { 138 CONFIG += disable_uitools 139 } 140 #### 141 142 disable_uitools: DEFINES *= QT_NO_UITOOLS 143 144 isEmpty(QT.phonon.includes) { 145 QT.phonon.includes = $$QMAKE_INCDIR_QT/phonon 146 QT.phonon.libs = $$QMAKE_LIBDIR_QT 147 } 148 149 # Disable a few warnings on Windows. The warnings are also 150 # disabled in WebKitLibraries/win/tools/vsprops/common.vsprops 151 win32-msvc*|wince*: QMAKE_CXXFLAGS += -wd4291 -wd4344 -wd4396 -wd4503 -wd4800 -wd4819 -wd4996 152 153 CONFIG(qt_minimal) { 154 DEFINES *= QT_NO_ANIMATION 155 DEFINES *= QT_NO_BEARERMANAGEMENT 156 DEFINES *= QT_NO_CLIPBOARD 157 DEFINES *= QT_NO_COMBOBOX 158 DEFINES *= QT_NO_CONCURRENT 159 DEFINES *= QT_NO_CRASHHANDLER 160 DEFINES *= QT_NO_CURSOR 161 DEFINES *= QT_NO_DESKTOPSERVICES 162 DEFINES *= QT_NO_FILEDIALOG 163 DEFINES *= QT_NO_GRAPHICSEFFECT 164 DEFINES *= QT_NO_IM 165 DEFINES *= QT_NO_INPUTDIALOG 166 DEFINES *= QT_NO_LINEEDIT 167 DEFINES *= QT_NO_MESSAGEBOX 168 DEFINES *= QT_NO_OPENSSL 169 DEFINES *= QT_NO_PRINTER 170 DEFINES *= QT_NO_QUUID_STRING 171 DEFINES *= QT_NO_SHORTCUT 172 DEFINES *= QT_NO_STYLE_STYLESHEET 173 DEFINES *= QT_NO_SYSTEMTRAYICON 174 DEFINES *= QT_NO_TEMPORARYFILE 175 DEFINES *= QT_NO_TOOLTIP 176 DEFINES *= QT_NO_UITOOLS 177 DEFINES *= QT_NO_UNDOCOMMAND 178 DEFINES *= QT_NO_UNDOSTACK 179 DEFINES *= QT_NO_XRENDER 180 } 181 182 contains(DEFINES, QT_NO_UITOOLS): CONFIG -= uitools 183