[webkit-qt] QtWebKit 2.3.1 and Qt-4.8.4

Massimo Callegari massimocallegari at yahoo.it
Tue Apr 23 02:04:33 PDT 2013


Hi again.
I'm now trying to build QtWebkit 2.3.1 on top of Qt 4.8 as an external package. (using Linux)

Here's what I found so far:
- running 'qmake' does nothing cause the released bundle already has a Makefile. 
- so, running 'make' will try to build QtWebKit for OSX, looking for Xcode tools. 
- after removing the Makefile and running qmake again, it says I cannot use my system's qmake, but I need to set QMAKEPATH to an internal path. This is weird and I believe QtWebKit should compile like any other Qt application in the 'qmake/make/make install' way
- after setting QMAKEPATH where it wanted, 'make' started to compile
- here I've got 2 cases:

>>> on Ubuntu 12.04 32 bit, GCC 4.6.3, Qt 4.8.2:

g++ -c -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 -pipe -ffunction-sections -fdata-sections -march=pentium4 -msse2 -mfpmath=sse -mtune=generic -Werror -Wno-c++0x-compat -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -D_REENTRANT -DQT_WEBKIT -DWTF_USE_LIBJPEG=1 -DWTF_USE_LIBPNG=1 -DQT_MAKEDLL -DBUILDING_QT__=1 -DNDEBUG -DBUILDING_WebCore -DBUILDING_WEBKIT -DQT_ASCII_CAST_WARNINGS -DSTATICALLY_LINKED_WITH_JavaScriptCore -DSTATICALLY_LINKED_WITH_WTF -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -IModules/filesystem -IModules/geolocation -IModules/indexeddb -IModules/navigatorcontentutils -IModules/notifications
 -IModules/quota -IModules/webaudio -IModules/webdatabase -IModules/websockets -Iaccessibility -Ibindings -Ibindings/generic -Ibridge -Ibridge/qt -Icss -Idom -Idom/default -Iediting -Ifileapi -Ihistory -Ihtml -Ihtml/canvas -Ihtml/parser -Ihtml/shadow -Ihtml/track -Iinspector -Iloader -Iloader/appcache -Iloader/archive -Iloader/cache -Iloader/icon -Imathml -Ipage -Ipage/animation -Ipage/qt -Ipage/scrolling -Iplatform -Iplatform/animation -Iplatform/audio -Iplatform/graphics -Iplatform/graphics/cpu/arm -Iplatform/graphics/cpu/arm/filters -Iplatform/graphics/filters -Iplatform/graphics/filters/texmap -Iplatform/graphics/opengl -Iplatform/graphics/opentype -Iplatform/graphics/qt -Iplatform/graphics/surfaces -Iplatform/graphics/texmap -Iplatform/graphics/transforms -Iplatform/image-decoders -Iplatform/image-decoders/bmp -Iplatform/image-decoders/ico -Iplatform/image-decoders/gif -Iplatform/image-decoders/jpeg -Iplatform/image-decoders/png
 -Iplatform/image-decoders/webp -Iplatform/leveldb -Iplatform/mock -Iplatform/network -Iplatform/network/qt -Iplatform/qt -Iplatform/sql -Iplatform/text -Iplatform/text/transcoder -Iplugins -Irendering -Irendering/mathml -Irendering/style -Irendering/svg -Istorage -Isvg -Isvg/animation -Isvg/graphics -Isvg/graphics/filters -Isvg/properties -Itesting -I/home/cam/Fase9/webkit-qtwebkit-23/Source/WebCore/websockets -Iworkers -Ixml -Ixml/parser -I../ThirdParty -Ibridge/jsc -Ibindings/js -Ibridge/c -Itesting/js -Igenerated -I../../../qtbase/src/3rdparty/sqlite/ -I../WTF/wtf/qt/compat -I../../Source -I/home/cam/Fase9/webkit-qtwebkit-23/Source/include -I../JavaScriptCore -I../../Source -I../WTF -I../JavaScriptCore/assembler -I../JavaScriptCore/bytecode -I../JavaScriptCore/bytecompiler -I../JavaScriptCore/heap -I../JavaScriptCore/dfg -I../JavaScriptCore/debugger -I../JavaScriptCore/disassembler -I../JavaScriptCore/interpreter -I../JavaScriptCore/jit
 -I../JavaScriptCore/llint -I../JavaScriptCore/parser -I../JavaScriptCore/profiler -I../JavaScriptCore/runtime -I../JavaScriptCore/tools -I../JavaScriptCore/yarr -I../JavaScriptCore/API -I../JavaScriptCore/ForwardingHeaders -I../JavaScriptCore/generated -I../JavaScriptCore/disassembler/udis86 -I../WTF -o obj/release/WorkerContextWebDatabase.o Modules/webdatabase/WorkerContextWebDatabase.cpp
Modules/webdatabase/WorkerContextWebDatabase.cpp: In static member function ‘static WTF::PassRefPtr<WebCore::Database> WebCore::WorkerContextWebDatabase::openDatabase(WebCore::WorkerContext*, const WTF::String&, const WTF::String&, const WTF::String&, long unsigned int, WTF::PassRefPtr<WebCore::DatabaseCallback>, WebCore::ExceptionCode&)’:
Modules/webdatabase/WorkerContextWebDatabase.cpp:46:17: error: invalid use of incomplete type ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.h:43:7: error: forward declaration of ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.cpp:46:62: error: invalid use of incomplete type ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.h:43:7: error: forward declaration of ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.cpp:51:107: error: no matching function for call to ‘WebCore::Database::openDatabase(WebCore::WorkerContext*&, const WTF::String&, const WTF::String&, const WTF::String&, long unsigned int&, WTF::PassRefPtr<WebCore::DatabaseCallback>&, WebCore::ExceptionCode&)’
Modules/webdatabase/WorkerContextWebDatabase.cpp:51:107: note: candidate is:
Modules/webdatabase/Database.h:59:33: note: static WTF::PassRefPtr<WebCore::Database> WebCore::Database::openDatabase(WebCore::ScriptExecutionContext*, const WTF::String&, const WTF::String&, const WTF::String&, long unsigned int, WTF::PassRefPtr<WebCore::DatabaseCallback>, WebCore::ExceptionCode&)
Modules/webdatabase/Database.h:59:33: note:   no known conversion for argument 1 from ‘WebCore::WorkerContext*’ to ‘WebCore::ScriptExecutionContext*’
Modules/webdatabase/WorkerContextWebDatabase.cpp: In static member function ‘static WTF::PassRefPtr<WebCore::DatabaseSync> WebCore::WorkerContextWebDatabase::openDatabaseSync(WebCore::WorkerContext*, const WTF::String&, const WTF::String&, const WTF::String&, long unsigned int, WTF::PassRefPtr<WebCore::DatabaseCallback>, WebCore::ExceptionCode&)’:
Modules/webdatabase/WorkerContextWebDatabase.cpp:56:17: error: invalid use of incomplete type ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.h:43:7: error: forward declaration of ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.cpp:56:62: error: invalid use of incomplete type ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.h:43:7: error: forward declaration of ‘struct WebCore::WorkerContext’
Modules/webdatabase/WorkerContextWebDatabase.cpp:61:115: error: no matching function for call to ‘WebCore::DatabaseSync::openDatabaseSync(WebCore::WorkerContext*&, const WTF::String&, const WTF::String&, const WTF::String&, long unsigned int&, WTF::PassRefPtr<WebCore::DatabaseCallback>&, WebCore::ExceptionCode&)’
Modules/webdatabase/WorkerContextWebDatabase.cpp:61:115: note: candidate is:
Modules/webdatabase/DatabaseSync.h:59:37: note: static WTF::PassRefPtr<WebCore::DatabaseSync> WebCore::DatabaseSync::openDatabaseSync(WebCore::ScriptExecutionContext*, const WTF::String&, const WTF::String&, const WTF::String&, long unsigned int, WTF::PassRefPtr<WebCore::DatabaseCallback>, WebCore::ExceptionCode&)
Modules/webdatabase/DatabaseSync.h:59:37: note:   no known conversion for argument 1 from ‘WebCore::WorkerContext*’ to ‘WebCore::ScriptExecutionContext*’
Modules/webdatabase/WorkerContextWebDatabase.cpp:62:1: error: control reaches end of non-void function [-Werror=return-type]
Modules/webdatabase/WorkerContextWebDatabase.cpp: In static member function ‘static WTF::PassRefPtr<WebCore::Database> WebCore::WorkerContextWebDatabase::openDatabase(WebCore::WorkerContext*, const WTF::String&, const WTF::String&, const WTF::String&, long unsigned int, WTF::PassRefPtr<WebCore::DatabaseCallback>, WebCore::ExceptionCode&)’:
Modules/webdatabase/WorkerContextWebDatabase.cpp:52:1: error: control reaches end of non-void function [-Werror=return-type]
cc1plus: all warnings being treated as errors
make[2]: *** [obj/release/WorkerContextWebDatabase.o] Error 1
make[2]: uscita dalla directory "/home/dev/webkit-qtwebkit-23/Source/WebCore"
make[1]: *** [sub-Target-pri-make_default-ordered] Error 2
make[1]: uscita dalla directory "/home/dev/webkit-qtwebkit-23/Source/WebCore"
make: *** [sub-Source-WebCore-WebCore-pro-make_default-ordered] Error 2

>>> on a MIPSel board, GCC 4.5.3 + ccache, Qt 4.8.4 (using a mips mkspec), it hangs when reaching this PERL command:

perl -I/home/dev/buildroot/output/build/qtwebkit-2.3.1/Source/WebCore/bindings/scripts /home/dev/buildroot/output/build/qtwebkit-2.3.1/Source/WebCore/dom/make_names.pl --tags /home/dev/buildroot/output/build/qtwebkit-2.3.1/Source/WebCore/mathml/mathtags.in --attrs /home/dev/buildroot/output/build/qtwebkit-2.3.1/Source/WebCore/mathml/mathattrs.in --extraDefines "" --preprocessor "/home/dev/buildroot/output/host/usr/bin/moc -E" --factory --wrapperFactory --outputDir generated

I've waited a couple of minutes, but the 'generated' folder stays empty and no signs of life.

It seems I'm stuck either way. Is there something I am obviously doing wrong or is there a patch that I can apply ?

My priority is on the MIPS board, running QtWebKit on DirectFB.
The standard QtWebKit module bundled with Qt 4.8.4 builds successfully and runs quite good on DirectFB. Although graphics performances are very good (even better than Opera running on the same board), the processing part is very poor and HTML 5 support is pretty basic. I might investigate if I need more build optimization flags to increase performances, but first I would like to use a more 'up to date' version of WebKit before making any other consideration.

Thank you very much for any help !

Massimo


________________________________
 Da: Massimo Callegari <massimocallegari at yahoo.it>
A: "webkit-qt at lists.webkit.org" <webkit-qt at lists.webkit.org> 
Inviato: Giovedì 18 Aprile 2013 11:49
Oggetto: QtWebKit 2.3.1 and Qt-4.8.4
 


Hi all and thanks for the hard work you're doing here !

Probably my question has already been asked here, so excuse me in case. I did a research on the ML archives but found no answer :(

Is it possible to compile QtWebKit 2.3.1 tagged yesterday into a Qt 4.8.4 tree ?
I don't mean externally (I know it's possible to do that), but copying a snapshot into Qt's src/3rdparty/webkit.

I've seen the "include" directory has disappeared so I'm wondering if there are major incompatibilities or if Qt 5 is mandatory at this point.

In case it is possible, are there major requirements for 2.3.1 that were not requested by 2.2.0 included in Qt 4.8.4 ?


Thank you in advance !

Best regards,

Massimo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-qt/attachments/20130423/4f1a9ae7/attachment-0001.html>


More information about the webkit-qt mailing list