[Development] The final mile

Stephen Kelly stephen.kelly at kdab.com
Sun Dec 2 17:11:18 CET 2012


On Sunday, December 02, 2012 14:09:15 you wrote:
> Hi,
> 
> Apologies for the top-quote, handicapped with web access right now :(

I don't understand the connection between web access and top-quoting, but fair 
enough :). I assume outlook makes it impossible to bottom quote somehow.

> 
> Regarding your questions I'm positive:
> 
>     (1) QtWebKit and QtWebKitWidgets are using all the features of the Qt5
> build system for module creation, they behave like any other module.

Great. My recent encounter with qtactiveqt included discovering that it was 
doing some things incompatible with the generated cmake files (I still don't 
know why I get a linking error : https://codereview.qt-
project.org/#change,41330). Good to know we don't need more patched for the 
webkit stuff too.

> (2)
> QWebElement and QWebSettings are indeed in include/QtWebKit and QWebView is
> in include/QtWebKitWidgets, i.e. the module split is present on the include
> level, too.
>     (3) I do see see two cmake subdirs in lib/cmake, Qt5WebKitWidgets and
> Qt5WebKit with two .cmake files each. (4) Yes, the libraries like
> lib/libQt5WebKit.* and lib/libQt5WebKitWidgets.* do exist (that's the whole
> point of the split :)

Great. I updated my own qtwebkit repo, but it did not build because somehow it 
wasn't linking to Qt5Network and WebCore properly. Maybe that's because I 
don't use qt5.git. I hacked the makefile to fix the problem.


QtWebKit: WARNING: 
/home/stephen/dev/src/qtwebkit/Source/ThirdParty/gyp/test/include_dirs/src/subdir/inc2/include2.h 
does not include QT_BEGIN_HEADER
QtWebKit: WARNING: 
/home/stephen/dev/src/qtwebkit/Source/ThirdParty/gyp/test/include_dirs/src/subdir/inc2/include2.h 
does not include QT_BEGIN_NAMESPACE
make[2]: Entering directory `/home/stephen/dev/build/qtbase/qtwebkit/Source'
rm -f libQt5WebKit.so.5.0.0 libQt5WebKit.so libQt5WebKit.so.5 
libQt5WebKit.so.5.0
g++ -m64 -Wl,--gc-sections -Wl,--no-undefined -Wl,--no-undefined -Wl,-
rpath,/home/stephen/dev/prefix/qtbase/lib -shared -Wl,-Bsymbolic-functions -
Wl,-soname,libQt5WebKit.so.5 -o libQt5WebKit.so.5.0.0   -L/usr/X11R6/lib64 -
L/home/stephen/dev/prefix/qtbase/lib -lQt5Network -lQt5Gui -lQt5Core -lpthread 
-Wl,-whole-archive -lWebKit1 -Wl,-no-whole-archive -
L/home/stephen/dev/build/qtbase/qtwebkit/Source/WebKit/debug -Wl,-whole-
archive -lWebKit2 -Wl,-no-whole-archive -
L/home/stephen/dev/build/qtbase/qtwebkit/Source/WebKit2/debug -Wl,-whole-
archive -lWebCore -Wl,-no-whole-archive -
L/home/stephen/dev/build/qtbase/qtwebkit/Source/WebCore/debug -lz -lXrender -
ljpeg -lpng -Wl,-whole-archive -lANGLE -Wl,-no-whole-archive -
L/home/stephen/dev/build/qtbase/qtwebkit/Source/ThirdParty/ANGLE/debug -Wl,-
whole-archive -lJavaScriptCore -Wl,-no-whole-archive -
L/home/stephen/dev/build/qtbase/qtwebkit/Source/JavaScriptCore/debug -Wl,-
whole-archive -lWTF -Wl,-no-whole-archive -
L/home/stephen/dev/build/qtbase/qtwebkit/Source/WTF/debug -licui18n -licuuc -
licudata -lQt5Gui -L/usr/X11R6/lib64 -L/home/stephen/dev/prefix/qtbase/lib -
lQt5Sql -lQt5Core -lpthread -lGL -lXext -lm -lX11 -lxslt -lxml2 -ludev -lrt
/home/stephen/dev/build/qtbase/qtwebkit/Source/WebKit/debug/libWebKit1.a(FrameLoaderClientQt.o): 
In function 
`WebCore::FrameLoaderClientQt::startDownload(WebCore::ResourceRequest const&, 
WTF::String const&)':
FrameLoaderClientQt.cpp:
(.text._ZN7WebCore19FrameLoaderClientQt13startDownloadERKNS_15ResourceRequestERKN3WTF6StringE+0x60): 
undefined reference to `QNetworkRequest::~QNetworkRequest()'
/home/stephen/dev/build/qtbase/qtwebkit/Source/WebKit/debug/libWebKit1.a(FrameLoaderClientQt.o): 
In function 
`WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(void 
(WebCore::PolicyChecker::*)(WebCore::PolicyAction), WebCore::NavigationAction 
const&, WebCore::ResourceRequest const&, 
WTF::PassRefPtr<WebCore::FormState>)':
FrameLoaderClientQt.cpp:
(.text._ZN7WebCore19FrameLoaderClientQt39dispatchDecidePolicyForNavigationActionEMNS_13PolicyCheckerEFvNS_12PolicyActionEERKNS_16NavigationActionERKNS_15ResourceRequestEN3WTF10PassRefPtrINS_9FormStateEEE+0x310): 
undefined reference to `QNetworkRequest::~QNetworkRequest()'
FrameLoaderClientQt.cpp:
(.text._ZN7WebCore19FrameLoaderClientQt39dispatchDecidePolicyForNavigationActionEMNS_13PolicyCheckerEFvNS_12PolicyActionEERKNS_16NavigationActionERKNS_15ResourceRequestEN3WTF10PassRefPtrINS_9FormStateEEE+0x45f): 
undefined reference to `QNetworkRequest::~QNetworkRequest()'
FrameLoaderClientQt.cpp:
(.text._ZN7WebCore19FrameLoaderClientQt39dispatchDecidePolicyForNavigationActionEMNS_13PolicyCheckerEFvNS_12PolicyActionEERKNS_16NavigationActionERKNS_15ResourceRequestEN3WTF10PassRefPtrINS_9FormStateEEE+0x4e0): 
undefined reference to `QNetworkRequest::url() const'
/home/stephen/dev/build/qtbase/qtwebkit/Source/WebKit/debug/libWebKit1.a(FrameLoaderClientQt.o): 
In function 
`WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(void 
(WebCore::PolicyChecker::*)(WebCore::PolicyAction), WebCore::NavigationAction 
const&, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, 
WTF::String const&)':
FrameLoaderClientQt.cpp:
(.text._ZN7WebCore19FrameLoaderClientQt38dispatchDecidePolicyForNewWindowActionEMNS_13PolicyCheckerEFvNS_12PolicyActionEERKNS_16NavigationActionERKNS_15ResourceRequestEN3WTF10PassRefPtrINS_9FormStateEEERKNSB_6StringE+0xd0): 
undefined reference to `QNetworkRequest::~QNetworkRequest()'
FrameLoaderClientQt.cpp:
(.text._ZN7WebCore19FrameLoaderClientQt38dispatchDecidePolicyForNewWindowActionEMNS_13PolicyCheckerEFvNS_12PolicyActionEERKNS_16NavigationActionERKNS_15ResourceRequestEN3WTF10PassRefPtrINS_9FormStateEEERKNSB_6StringE+0x106): 
undefined reference to `QNetworkRequest::~QNetworkRequest()'
FrameLoaderClientQt.cpp:
(.text._ZN7WebCore19FrameLoaderClientQt38dispatchDecidePolicyForNewWindowActionEMNS_13PolicyCheckerEFvNS_12PolicyActionEERKNS_16NavigationActionERKNS_15ResourceRequestEN3WTF10PassRefPtrINS_9FormStateEEERKNSB_6StringE+0x16a): 
undefined reference to `QNetworkRequest::url() const'
/home/stephen/dev/build/qtbase/qtwebkit/Source/WebKit/debug/libWebKit1.a(InspectorClientQt.o): 
In function 
`WebCore::InspectorClientQt::openInspectorFrontend(WebCore::InspectorController*)':
InspectorClientQt.cpp:
(.text._ZN7WebCore17InspectorClientQt21openInspectorFrontendEPNS_19InspectorControllerE+0x106): 
undefined reference to `QNetworkRequest::QNetworkRequest(QUrl const&)'
InspectorClientQt.cpp:
(.text._ZN7WebCore17InspectorClientQt21openInspectorFrontendEPNS_19InspectorControllerE+0x135): 
undefined reference to `QNetworkRequest::~QNetworkRequest()'
<snip>


After that I also confirmed that I was able to use the cmake files on linux. I 
haven't tested mac or Windows. I still think the cmake tests should be run for 
webkit. As qt-project does not run QtWebKit unit test, where do they get run? 
Is cmake available in the test environment already?

Thanks,

-- 
Stephen Kelly <stephen.kelly at kdab.com> | Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions
** Qt Developer Conference: http://qtconference.kdab.com/ **
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20121202/966ea495/attachment.sig>


More information about the Development mailing list