[webkit-dev] Building QtWebkit on Mac OSX 10.5.6 with Qt 4.5

Garth Dahlstrom ironstorm at gmail.com
Wed Aug 26 13:12:45 PDT 2009


I've figured out the last problem...

For whatever reason when the Qt port WebKit is built, flex produces a
tokenizer.cpp that contains only int type definitions...  maybe that's what
all "range [?-?] is ambiguous" stuff is at the beginning of the build.

$ grep -inH "lex()" CSSParser.cpp
CSSParser.cpp:4509:    int token = lex();
CSSParser.cpp:5169:#define YY_DECL int CSSParser::lex()

The method YY_DECL is not created, so the macro substitution on line 5169
doesn't happen, which causes compiling to fail on line 4509 with the
unresolved symbols problem:

I managed to fix this by manually executing the following:
BUILD_DIR=~/qtwebkit-build
SRC_DIR=~/qtwebkitt

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

Then rerunning the build (this is the debug build):
WEBKITOUTPUTDIR=~/qtwebkit-build ~/qtwebkit/WebKitTools/Scripts/build-webkit
--qt --qmake=qmake-4.5 --makeargs="-j2" -spec macx-g++ --no-video --debug

I was able to get the QtLauncher to work after that by running:
$ WEBKITOUTPUTDIR=~/qtwebkit-build
~/qtwebkit/WebKitTools/Scripts/run-launcher --qt --debug

I'll see if I can write up some coherent instructions of all my hacks onto
the wiki for others who also want to try to build this.

-G

              __
--- == __/ t.O ==--
http://stacktrace.org/


On Mon, Aug 24, 2009 at 4:01 PM, Garth Dahlstrom <ironstorm at gmail.com>wrote:

> I'm seeing the following error despite having Flex 2.5.35 installed at
> /opt/local/bin/flex, and Flex 2.5.33 in /usr/bin and /Developer/usr/bin (
> http://trac.webkit.org/wiki/BuildingQtOnLinux suggests that 2.5.33+ should
> be okay - I know, I know these are Linux instructions not OSX
> instructions)...
>
> ...
> rm -f QtWebKit QtWebKit.framework/QtWebKit
> ../lib/QtWebKit.framework/QtWebKit
> g++ -headerpad_max_install_names -single_module -dynamiclib
> -compatibility_version    4.5 -current_version    4.5.2 -install_name
> /Users/ged/mnt/qtwebkit-build/Debug/lib/QtWebKit.framework/Versions/4/QtWebKit
> -o QtWebKit obj/debug/StringImplMac.o obj/debug/WebCoreNSStringExtras.o
> obj/debug/pcre_compile.o obj/debug/pcre_exec.o
> --- SNIPPED ---
> c_qwebview.o obj/debug/moc_qwebhistoryinterface.o
> obj/debug/moc_qwebplugindatabase.o obj/debug/moc_qwebpluginfactory.o
> obj/debug/qrc_WebCore.o obj/debug/qrc_WebKit.o  -F/Library/Frameworks
> -L/Library/Frameworks -lsqlite3 -framework QtGui -framework Carbon
> -framework AppKit -framework QtNetwork -framework SystemConfiguration
> -framework QtCore -lz -lm -framework ApplicationServices
> Undefined symbols:
>   "WebCore::CSSParser::lex()", referenced from:
>       WebCore::CSSParser::lex(void*)in CSSParser.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[1]: *** [../lib/QtWebKit.framework/QtWebKit] Error 1
> make: *** [sub-WebCore-make_default-ordered] Error 2
>
> I'm stuck again...  Suggestions welcome.
>
> -G
>               __
> --- == __/ t.O ==--
> http://stacktrace.org/
>
>
> On Mon, Aug 24, 2009 at 12:15 PM, Garth Dahlstrom <ironstorm at gmail.com>wrote:
>
>> I've gotten a bit further, by working around the problem.
>>
>> It looks like it's not picking up the QTDIR/include, but rather
>> referencing the modules directly in the /usr/include directory...  like
>> this:
>>  -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui
>>
>> I don't really know where this bit is being generated from in the build
>> scripts, so for the time being I'm working around by using the following
>> hack to create the expected Qt folders in /usr/include (done in bash):
>>
>> 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
>>
>> I'm building with fingers crossed right now; hoping that was the last
>> hurdle.
>>               __
>> --- == __/ t.O ==--
>> http://stacktrace.org/
>>
>>
>> On Thu, Aug 20, 2009 at 6:31 PM, Garth Dahlstrom <ironstorm at gmail.com>wrote:
>>
>>> Hi All,
>>>
>>> Picking up on this thread from April (
>>> http://lists.macosforge.org/pipermail/webkit-dev/2009-April/thread.html#7296),
>>> I'm in a simliar spot as Husam; on OSX 1.5.8 w/ MacPorts Qt 4.5.2.
>>>
>>> I made it a little further by overriding the mkspec to be macx-g++, so
>>> I'm no longer stuck at the XCode/XProj generation stuff.  However I now have
>>> a problem that my $QTDIR/include directory is not being picked up.
>>>
>>> If someone could suggest how I can inject the ${QTDIR}/include into the
>>> build environment, I would be grateful for the assist.
>>>
>>> Cheers,
>>>
>>> -G
>>>
>>> Here is the truncated compile output:
>>>
>>> [649] ged at gMacBook:~/mnt$ WEBKITOUTPUTDIR=`pwd`/qtbuild
>>> WebKit/WebKitTools/Scripts/build-webkit --qt --qmake=qmake-4.5
>>> --makeargs="-j3 -s" -spec macx-g++ --no-video --debug
>>> Calling 'qmake-4.5 -r -spec macx-g++ DEFINES+=ENABLE_VIDEO=0
>>> OUTPUT_DIR=/Users/ged/mnt/qtbuild/Debug /Users/ged/mnt/WebKit/WebKit.pro
>>> CONFIG-=release CONFIG+=debug' in /Users/ged/mnt/qtbuild/Debug
>>>
>>> Reading /Users/ged/mnt/WebKit/WebCore/WebCore.pro
>>> [/Users/ged/mnt/qtbuild/Debug//WebCore]
>>> Project MESSAGE: Building QtWebKit as a framework, as that's how Qt was
>>> built. You can
>>> Project MESSAGE: override this by passing CONFIG+=webkit_no_framework to
>>> build-webkit.
>>>
>>> /Developer/Tools/Qt/rcc: File does not exist
>>> '../../../WebKit/WebCore/inspector/front-end/WebKit.qrc'
>>> /Developer/Tools/Qt/rcc: File does not exist
>>> '../../../WebKit/WebCore/WebCore.qrc'
>>> Reading /Users/ged/mnt/WebKit/JavaScriptCore/jsc.pro[/Users/ged/mnt/qtbuild/Debug//JavaScriptCore]
>>> Reading /Users/ged/mnt/WebKit/WebKit/qt/QtLauncher/QtLauncher.pro
>>> [/Users/ged/mnt/qtbuild/Debug//WebKit/qt/QtLauncher]
>>> Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/tests.pro[/Users/ged/mnt/qtbuild/Debug//WebKit/qt/tests]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/qwebframe/qwebframe.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//qwebframe]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/qwebpage/qwebpage.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//qwebpage]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/qwebelement/
>>> qwebelement.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//qwebelement]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/qwebhistoryinterface/
>>> qwebhistoryinterface.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//qwebhistoryinterface]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/qwebplugindatabase/
>>> qwebplugindatabase.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//qwebplugindatabase]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/qwebview/qwebview.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//qwebview]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/qwebhistory/
>>> qwebhistory.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//qwebhistory]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/benchmarks/painting/
>>> tst_painting.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//benchmarks/painting]
>>>  Reading /Users/ged/mnt/WebKit/WebKit/qt/tests/benchmarks/loading/
>>> tst_loading.pro[/Users/ged/mnt/qtbuild/Debug/WebKit/qt/tests//benchmarks/loading]
>>> Reading
>>> /Users/ged/mnt/WebKit/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
>>> [/Users/ged/mnt/qtbuild/Debug//WebKitTools/DumpRenderTree/qt]
>>> Reading /Users/ged/mnt/WebKit/WebKitTools/DumpRenderTree/qt/ImageDiff.pro
>>> [/Users/ged/mnt/qtbuild/Debug//WebKitTools/DumpRenderTree/qt]
>>> Reading
>>> /Users/ged/mnt/WebKit/WebKitTools/DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro
>>> [/Users/ged/mnt/qtbuild/Debug//WebKitTools/DumpRenderTree/qt/TestNetscapePlugin]
>>> In file included from
>>> ../../../WebKit/JavaScriptCore/wtf/unicode/Unicode.h:29,
>>>                  from ../../../WebKit/JavaScriptCore/pcre/pcre.h:45,
>>>                  from
>>> ../../../WebKit/JavaScriptCore/pcre/pcre_internal.h:82,
>>>                  from
>>> ../../../WebKit/JavaScriptCore/pcre/pcre_exec.cpp:46:
>>> ../../../WebKit/JavaScriptCore/wtf/unicode/qt4/UnicodeQt4.h:26:17: error:
>>> QChar: No such file or directory
>>> ../../../WebKit/JavaScriptCore/wtf/unicode/qt4/UnicodeQt4.h:27:19: error:
>>> QString: No such file or directory
>>>
>>> .... lots more of the same ....
>>>
>>>
>>>               __
>>> --- == __/ t.O ==--
>>> http://stacktrace.org/
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090826/c3b6877d/attachment.html>


More information about the webkit-dev mailing list