Version 3 (modified by, 15 years ago) (diff)


See Also:

These instructions assume you are building on an OSX system with Mac Ports installed having the qt4-mac (4.5.2) port installed.

Checkout the Code

You'll need to check out WebKit from SVN or Qt WebKit from Git

svn checkout WebKit # WebKit SVN Trunk


git clone git:// # Qt WebKit Git Branch


Workaround #1

This works around the problem with Qt headers being reference directly from /usr/include regardless of where the QTDIR is (Fixes "../../../WebKit/JavaScriptCore/wtf/unicode/qt4/UnicodeQt4.h:26:17: error: QChar: No such file or directory" errors):

export QTDIR=/opt/local/libexec/qt4-mac # mac ports Qt
cd /usr/include
for q in $QTDIR/include/*; do if [ ! -e "`basename $q`" ]; then sudo ln -s "$q"; fi ; done # create a symlink

Workaround #2

Next start the build:

export WEBKITSRCDIR=qtwebkit # change this to 'WebKit' to build WebKit SVN Trunk
${WEBKITSRCDIR}/WebKitTools/Scripts/build-webkit --qt --qmake=qmake-4.5 --makeargs="-j2" -spec macx-g++ --no-video --debug

The build will ultimately fail with an error message "Undefined symbols: "WebCore::CSSParser::lex()", referenced from: WebCore::CSSParser::lex(void*)in CSSParser.o" when it attempts to link the binaries, to fix that we run the flex make target by hand and copy the result into the build output drectory:

rm tokenizer.cpp 
WebCore=. make -f DerivedSources.make tokenizer.cpp
mv tokenizer.cpp ${WEBKITOUTPUTDIR}/Debug/WebCore/generated/debug/tokenizer.cpp

Finish Up and Run

Rerunning the build should recompile CSSParser.cpp and link correctly.

${WEBKITSRCDIR}/WebKitTools/Scripts/build-webkit --qt --qmake=qmake-4.5 --makeargs="-j2" -spec macx-g++ --no-video --debug

Finally start the demo Qt browser:

${WEBKITSRCDIR}/WebKitTools/Scripts/run-launcher --qt --debug # After this, check the dock and you'll see an icon for a Qt console app ...