[webkit-qt] Building QtWebkit with WebGL support on Windows XP with MSVC2008 and Qt4.8.4

Richard Gerd Kuesters richard at humantech.com.br
Thu Aug 8 07:34:52 PDT 2013


Hello Maxim!

At my company, we were able to build Qt and WebKit under MSVC 2008, but 
we are using the whole Qt stack, version 5.1. We had compiled 4.8.4 some 
time ago, but we discovered the hard way that Javascript support wasn't 
available in 64 bit version of WebKit until Qt 5.1.

32 and 64 bits build were possible. First, we've learned that there are 
differences between TAR.GZ / TAR.XZ and ZIP packages downloaded from 
Digia. The ZIP packages have some differences in build scripts that made 
build in MSVC2008 possible.

But first, we had to compile ICU under MSVC2008 because WebKit depends 
on it, and it's a PITA to do so.

I can't confirm you IF we have WebGL available in ours builds, because 
it doesn't make difference for us.


If I can provide any further help, feel free to ask :)


Cheers,
Richard.


On 08/08/2013 11:09 AM, Maxim Schäfner wrote:
> Hi Qt-Webkit mailing list members,
>
> we are trying to build our own QtWebkit library which we can 
> distribute along with our Qt using application.
> On our application we are using the MSVC Qt4.7.4 binaries from the 
> official Qt download links on their page.
> But as we received the request that our application should support the 
> rendering of 3d models in an qwebview
> widget, we noticed that the webkit which is used by the qwebview in 
> our application which is currently on Qt4.7.4 does not
> support 3d rendering on GPU hardware. Than we realized that we have to 
> explicitly enable that feature by
> supporting WebGL in our application's used Webkit.
> Than we be told that if we want to have WebGL support, we have to use 
> the newer Qt5 binaries to enable
> that feature. The problem is that at the moment we can't switch to an 
> Qt5+ version, because we have still to
> support the older Qt3-classes which as we know are now removed from Qt 
> for version 5+.
>
> After some research we found an url which states that there is a brach 
> of QtWebkit which uses the new
> features of Qt5's webkit, but is able to be used on Qt-4.8. This 
> information we read on the following URL:
>
> http://blogs.kde.org/2013/03/15/qtwebkit-230-out
>
> So now we are trying to build our own QtWebkit with the help of the 
> trace.webkit information pages:
>
> http://trac.webkit.org/wiki/QtWebKit
> http://trac.webkit.org/wiki/BuildingQtOnWindows
> http://trac.webkit.org/wiki/QtWebKitWebGL
>
> After the install of all the needed tools described here: 
> http://trac.webkit.org/wiki/BuildingQtOnWindows
> We used the build script which commando is written there:
> perl Tools\Scripts\build-webkit --qt --release
> With the addition to enable the WebGL support as written here: 
> http://trac.webkit.org/wiki/QtWebKitWebGL
> -webgl
> With the information of the first page: 
> http://blogs.kde.org/2013/03/15/qtwebkit-230-out
> We added some additional parameters as noted there, because we need to 
> be only 32Bit:
> --no-webkit2 --no-force-sse2
> So with this additions the complete commando we received was this:
> perl Tools\Scripts\build-webkit --qt --release --no-webkit2 
> -no-force-sse2 -webgl
>
> Till now we always used the MSVC 2008 compiler with the available 
> already built binaries to build our application
> on Windows. So we want to stay on that compiler for compatibility 
>  with our application. As noted in the given links
> we already downloaded the sources of Q4.8.4 which also have the 
> Qt3-classes support.
> We already build the Qt4.8.4 sources with MSVC2008 to the respective 
> binaries and set the needed PATH
> variables, too.
>
> Then we started the building script for QtWebkit:
> perl Tools\Scripts\build-webkit --qt --release --no-webkit2 
> -no-force-sse2 -webgl
>
> Unfortunately the building failed with these parameters, with generic 
> compile errors in missing header files.
> Then we found out that we maybe need some additional Webkit support 
> libraries as stated here:
> http://aautar.digital-radiation.com/blog/?p=85
> https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html
>
> But this did't helped either, as we still had generic compile errors.
>
> So now we decided to build QtWebkit only with the default parameters 
> listed here to verify that we
> are able to build QtWebkit at all. So we used the 
> default-non-extra-parameters-commando from:
> http://trac.webkit.org/wiki/BuildingQtOnWindows
> And so the following line:
> perl Tools\Scripts\build-webkit --qt --release
>
> And as we see, we are still not possible to build our own QtWebkit, 
> because we still get generic compile errors:
> With the first ones are:
>
> .......
> NavigatorGeolocation.cpp
> Code is generated...
>         cl -c -nologo -Zm200 -Zc:wchar_t- -wd4291 -wd4344 -wd4396 
> -wd4503 -wd4800 -wd4819 -wd4996 -O2 -MD -GR -EHsc -DUNICODE -DWIN32 
> -DQT_LARGEFILE_SUPPORT -DQT_MAKEDLL -DBUILDING_QT__=1 -D
> NDEBUG -DBUILDING_WebCore -DBUILDING_WEBKIT -DQT_ASCII_CAST_WARNINGS 
> -DSTATICALLY_LINKED_WITH_JavaScriptCore -DSTATICALLY_LINKED_WITH_WTF 
> -DQT_MAKEDLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK
> _LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE 
> -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT 
> -I"c:\OwnQtWebkit\qt-everywhere-opensource-src-4.8.4\qt-everywhere-opensour
> ce-src-4.8.4\include\QtCore" 
> -I"c:\OwnQtWebkit\qt-every...cutted.away.too.long 
> ;)..........ywhere-opensource-src-4.8.4\mkspec
> s\win32-msvc2008" -Foobj\release\ 
> @C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\nm71.tmp
> AbstractDatabase.cpp
> DOMWindowWebDatabase.cpp
> Database.cpp
> DatabaseAuthorizer.cpp
> DatabaseContext.cpp
> DatabaseSync.cpp
> WorkerContextWebDatabase.cpp
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(46) 
> : error C2027: use of undefined type "WebCore::WorkerContext"
> c:\ownqtwebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\source\webcore\modules\webdatabase\WorkerContextWebDatabase.h(43): 
> See declaration of 'WebCore::Wo
> rkerContext'
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(46) 
> : error C2227: left of "->securityOrigi
> n" must point to class/struct/union/generic type.
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(46) 
> : error C2227: left of "->canAccessData
> base" must point to class/struct/union/generic type.
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(46) 
> : error C2027: use of undefined type "WebCore::WorkerContext"
> c:\ownqtwebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\source\webcore\modules\webdatabase\WorkerContextWebDatabase.h(43): See 
> declaration of 'WebCore::Wo
> rkerContext'
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(46) 
> : error C2227: left of "->topOrigin" must point to 
> class/struct/union/generic type.
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(51) 
> : error C2664: 'WebCore::Database::openDa
> tabase': Converting of parameter 1 of 'WebCore::WorkerContext *' in 
> 'WebCore::ScriptExecutionContext *' not possible
>         The types which are refernced are not linked; the convert 
> needs an reinterpret_cast-Operator or an type cast in C- or 
> Functionsformat.
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(56) 
> : error C2027: use of undefined type "WebCore::WorkerContext"
> c:\ownqtwebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\source\webcore\modules\webdatabase\WorkerContextWebDatabase.h(43): See 
> declaration of 'WebCore::Wo
> rkerContext'
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(56) 
> : error C2227: left of "->securityOrigi
> n" must point to class/struct/union/generic type.
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(56) 
> : error C2227: left of "->canAccessData
> base" must point to class/struct/union/generic type.
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(56) 
> : error C2027: use of undefined type "WebCore::WorkerContext"
> c:\ownqtwebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\source\webcore\modules\webdatabase\WorkerContextWebDatabase.h(43): See 
> declaration of 'WebCore::Wo
> rkerContext'
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(56) 
> : error C2227: left of "->topOrigin" must point to 
> class/struct/union/generic type.
> c:\OwnQtWebkit\qtwebkit-developers-qtwebkit-23-qtwebkit-2.3.0\webkit-qtwebkit-23\Source\WebCore\Modules\webdatabase\WorkerContextWebDatabase.cpp(61) 
> : error C2664: 'WebCore::DatabaseSync::op
> enDatabaseSync': Converting of parameter 1 of 'WebCore::WorkerContext 
> *' to 'WebCore::ScriptExecutionContext *' not possible
>         The types which are refernced are not linked; the convert 
> needs an reinterpret_cast-Operator or an type cast in C- or 
> Functionsformat.
> Code is generated...
> NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 
> 9.0\VC\BIN\cl.EXE"": Return-Code "0x2"
> Stop.
> NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 
> 9.0\VC\BIN\nmake.exe"": Return-Code "0x2"
> Stop.
> NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 
> 9.0\VC\BIN\nmake.exe"": Return-Code "0x2"
> Stop.
> NMAKE : fatal error U1077: "cd": Return-Code "0x2"
> Stop.
> NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 
> 9.0\VC\BIN\nmake.exe"": Return-Code "0x2"
> Stop.
> .......
> (I translated the errors messages from german to english, I hope they 
> are correctly translated, but the error code is the same)
>
> So the build fails.
> Now, what is this web database and what did we wrong in the whole 
> procedure?
> Did we missed something? We appreciate any help we get.
> Thank you very much if there some one there who can help us with this.
>
> Thank you, best regards,
>
> Max
>
>
> _______________________________________________
> webkit-qt mailing list
> webkit-qt at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-qt

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-qt/attachments/20130808/e6982406/attachment-0001.html>


More information about the webkit-qt mailing list