2011年9月29日 星期四

編譯 Webkit 所耗費的時間和 run-webkit-tests 筆記

原本只是一直在 Windows 平台上編譯 Webkit,但做 layout test case 時,一直無法 success,一些文章說是字型的問題,但好不容易都取到字型了,還是不太 ok ,就開始嘗試在其他平台上測試。


編譯成功的平台:



  • Windows 7 Eng 64Bit 與 VS 2005 Express

    • AMD 955 X4、12GB DDR3-1333

    • 耗時 45 分鐘



  • Windows XP 32Bit 與 VS 2005 Express

  • Windows XP 32Bit 與 VS 2005

  • Ubuntu 11.04 64Bit 之編譯 GTK+ 版

    • 躲在一台 AMD 945 X4、8GB 的 Win7 64Bit 裡的 VirtualBox ,分配 4 顆 CPU 和 2048 記憶體

    • 耗時 22 分鐘



  • Mac OSX 10.6 與 Xcode 4



整體上,編譯環境最容易設定的是 Mac OSX,但下載軟體還滿耗時:



  1. 下載安裝 Java for Mac OS X Developer Package (1xx MB) 和 Xcode 4 (4.x GB) 

  2. 取得 Webkit source code

  3. 執行 update-webkit

  4. 執行 build-webkit


第二好裝的是 Ubuntu 11.04 ,原先想說再 Ubuntu 10.04 裝,才發現 GLIB 版本不夠新,也才想起幾天前朋友安裝時,就有提過這種問題,不小心又走了回頭路一次:



  1. 安裝 Ubuntu 11.04 Desktop 64Bit

  2. sudo apt-get install autoconf automake autotools-dev bison flex gperf glib-networking gtk-doc-tools libenchant-dev libgail-3-dev  libgeoclue-dev libglib2.0-dev libgstreamer-plugins-base0.10-dev libgtk2.0-dev libicu-dev libjpeg62-dev libpango1.0-dev libpng12-dev libsoup2.4-dev libsqlite3-dev libtool  libxslt-dev libxt-dev

  3. 編譯時又發現找不到 gail (明明裝了 libgail-3-dev 了),因此又多裝 libgail-dev 來搞定

  4. 取得 Webkit source code

  5. 執行 update-webkit --gtk

  6. 執行 build-webkit --gtk


至於 Win7 或 WinXP 的嘛,大概就照官網的安裝下去及調教,簡易筆記:



  1. vcsetup.exe

  2. VS80sp1-KB926748-X86-INTL.exe

  3. VS80sp1-KB971090-X86-INTL.exe

  4. PSDK-x86.exe

  5. cygwin-downloader.zip

  6. quicktimesdk.zip

  7. DXSDK_Feb10_exe

  8. 設定 VS 2005 Express 額外的 lib 或 header、設定系統環境變數以便找到 PSK 程式、設定 VCProjects 等


如果是在 WinXP 編譯時,應該還會碰到不少問題,細節請參考 Building Webkit on Windows


最後,提及一下關於 run-webkit-tests:



  • 新版指令: new-run-webkit-tests

  • 舊版指令: old-run-webkit-tests 或 run-webkit-tests


只測試某些 case ,如 writing-mode:



  • run-webkit-tests -v fast/writing-mode/


想看瀏覽器的圖(Pixel不見得會過):



  • run-webkit-tests -v -p fast/writing-mode/


當使用舊版指令執行時,在 Windows 上會要求設定字型目錄(WEBKIT_TESTFONTS環境變數),用到的字型可以在這邊查閱:


https://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp#L319


而這些字型大多是 Mac OSX 裏頭內建的,可以先把 /System/Library/Fonts 和 /Library/Fonts 的東西都複製到一個目錄,接著在 Windows 上使用 CrossFont 軟體(試用版15天免費)進行轉換即可,細節請參考 BuildingOnWindows#Font-metric-relatedfailures


關於跑 test case 的部分,若是在 Unix 環境可以試試 new-run-webkit-tests ,這跑起來比較快;在 Windows 上跑 new-run-webkit-tests 會碰到一些小問題,目前還沒著手去處理,暫時用舊版指令測試。


問題:WebKit/WebKitBuild/Release/bin/DumpRenderTree.exe: error while loading shared libraries: MSVCR80.dll: cannot open shared object file: No such file or directory


解法:請安裝 Safari 瀏覽器


沒有留言:

張貼留言