QT 4.5.1已经发布了,其中已经集成了trunk里的webkit代码,性能及标准的支持方面都有很大提高,但是,qt里的webkit代码已经是configure过的,可配置性不强。特别对于Windows mobile平台,由于只有32mb的寻址空间,对code size要求更高。因此,准备自定义编译最新的代码。记录一下编译的过程,希望对大家有帮助。
需要的组件:evc(我用的是evc2008),bison,flex,libiconv,gperf,diffutils和patch。后面的组件可以从gnuwin32项目下载,diffutil和patch是为了打后面修正no-svg编译选项的补丁所需组件,如果你不需要可不装。注意,bison需要2.4以前的版本。我用的是v2.1。有了这些工具以后,就可以正式开始了:
首先,获取webkit的源代码,qt所有的change都回merge到trunk里,所以理论上下载webkit的官方代码即可,但是保险起见,我使用了qt自己的repository:
http://code.staikos.net/cgi-bin/gitweb.cgi?p=webkit;a=summary
git或下载snapshot皆可。
若你需要编译没有svg的webkit,需要这里的patch,但是由于patch的代码和源里的代码已经有了很大差距。那怎么办呢?哈哈,这就是重点了,同学们认真看哦!
人肉修改吧……
各位有好方法给我留个言吧~
修改完代码后,第二步,配置编译环境,把gnuwin32/bin加入环境变量,设置QTDIR为你的QT的目录,蛇者TMPDIR为你指定的临时文件夹路径,这个目录必须已经存在。然后就是运行qt for wince 里的 setcepaths 指定windows mobile的环境变量。
最后,运行webkittool/script/build-webkit并指定相应参数即可,注意如果配置no-svg的话,需要指定所有no-svg-*选项!编译成功!