일이 막힐 때, 머리를 비우고 아래 사이트에서 검색어를 입력한 다음 일년치 정도의 기사를 정독하면 문제 해결의 실마리를 잡을 수 있을 것이다.
http://www.nabble.com/Webkit-f14949.html
Qt-WebKit을 Windows Mobile 6.1 단말기에 올렸다.
"자, 이젠 빠른 성능과 아름다운 페이지를 보여줘." 하는 마음으로 실행시켰는데... 결론을 말하자면 실망이다. 아직 모자란 점이 많다. 이건 WebKit의 문제라기 보다는 Qt-WebKit의 문제다. 포팅이 불충분하다. 적어도 Windows Mobile에서는 그렇다.
1. 우선 네트웍에 관한 처리가 미흡하다.
스스로 단말의 네트웍 연결을 초기화시키지 못한다. 백그라운드로 Windows Mobile의 Internet Explorer를 실행시켜서 네트웍을 잡고 실행시키면 그나마 조금 상태가 나아진다. 하지만 한 화면을 구성하는 모든 document 들을 네트웍을 통해 다운로드하지 못한다. 화면 상태로 미루어 추정하자면, base HTML document만 다운로드해서 보여주는 것 같다.
2. 속도가 미흡하다.
난 빠른 속도를 기대했다. 적어도 Mobile IE보다는 빠른 속도를 기대했다. 그런데 체감 속도가 IE에 비해 대등하거나 느리다. 이건 Qt 레이어의 오버헤드 때문일 것 같다.
Windows Mobile 단말기가 하나 있다. 이놈 위에 웹킷을 올려보고 싶었다. 이리저리 찾던 중에, Qt WebKit 브라우저가 눈에 들어왔다. 다시 말하지만, 웹킷은 브라우저 엔진일뿐 브라우저가 아니다. 이놈을 브라우저로 동작하게 만들려면 많은 노력이 필요하다. Qt WebKit 프로젝트가 바로 그런 노력을 하고 있는 프로젝트다. 마침 "한.글.로.된." 좋은 블로그 글을 찾아 편안한 마음으로 시도해볼 수 있었다. 자기가 겪은 경험을 글로 정리해서 공개하는 사람들에게 다시 한번 감사하는 마음을 전한다.
http://www.korone.net/bbs/board.php?bo_table=qt_lecture&wr_id=465
하지만, 세상 모든 일이 그렇듯 뭔가 넘기 힘든 고개들이 있었다. 그런 고개들이 있어야 성공했을 때 성취감을 느낄 수 있는 것 아니겠는가? 나 다음 개발자들은 그런 성취감(?)을 느끼지 못하기를 기도하며 몇가지 경험을 정리한다.
처음에는 Cygwin 콘솔창을 열고 작업 했는데, 뭔가 잘 안됐다. 다음의 웹 페이지를 보고 원인을 알게 됐다. Qt WebKit을 Cygwin서 빌드하는 것은 원래 아직 안되는 것이었다 (2008.11.13. 현재). 그래서 WinXP 32bit의 커맨드 콘솔(cmd.exe)에서 작업했다. 커맨드 콘솔에서 작업하려면, 몇가지 GnuWin32 도구들을 설치해줘야 한다. 아래 "빌드 환경" 파트에 관련 내용을 정리했다.
http://trac.webkit.org/wiki/BuildingQtOnWindows
그리고, 빌드할 때 Qt WebKit 소스가 있는 드라이브의 루트 아래에 tmp 폴더를 만들어줘야 한다. 별거 아닌데, 이것 때문에 조금 고생했다.
빌드 환경
- WinXP 32bit
- Qt-wince를 다운로드 받아 빌드 완료한 상태 (참조 URL)
- Qt-WebKit 소스를 다운로드 받은 상태 (E:\Work\QtWebKit에 소스를 다운로드 함)
- 빌드를 위해 필요한 perl 및 GnuWin32 툴들을 설치한 상태 (참조 URL)
빌드 시퀀스
(win xp 32bit 환경에서)
WebKit 빌드& 실행 과정 정리
참조 URL
l http://webkit.org/building/tools.html
l http://trac.webkit.org/wiki/BuildingOnWindows
할일
- VS2005 설치
- VS2005 patch 설치
- Cygwin 설치
- QuickTime SDK 설치
참조 URL
l http://webkit.org/building/checkout.html
l http://svn.webkit.org/repository/webkit/trunk(subversion 소스 URL)
할일
- subversion client(TortoiseSVN)으로 http://svn.webkit.org/repository/webkit/trunk 소스 가져오기
참조 URL
l http://webkit.org/building/checkout.html
할일
- http://developer.apple.com/opensource/internet/webkit_sptlib_agree.html 에서 WebKitSupportLibrary.zip 파일을 다운로드 하여 WebKit 프로젝트 홈디렉토리에 복사
참조 URL
l http://webkit.org/building/checkout.html
할일
- WebKitTools/Scripts/update-webkit 스크립트 실행
참조 URL
l http://trac.webkit.org/wiki/BuildingOnWindows
l *.sh 파일만 변환하면 될 줄 알았는데, 그게 아님. 모든 소스를 변환해야 함. 빌드과정에서 perl을 통해 소스파일을 생성할 때 문제가 생김.
l 빌드에 참여하는 소스 코드만 변환해야 시간을 절약할 수 있다. 소스 디렉토리에는 테스트 관련 파일들이 무척 많다. 전부 변환하려면 세월이다.
할일
- *.sh 변환
find . -name "*.sh" -exec dos2unix {} \;
- JavaScriptCore/* 변환
find JavaScriptCore -type f -exec dos2unix {} \;
- JavaScriptGlue/* 변환
find JavaScriptGlue -type f -exec dos2unix {} \;
- WebCore/* 변환
find WebCore -type f -exec dos2unix {} \;
- WebKit/* 변환
find WebKit -type f -exec dos2unix {} \;
- WebKitLibraries/* 변환
find WebKitLibraries -type f -exec dos2unix {} \;
참조 URL
l http://trac.webkit.org/wiki/BuildingOnWindows
일러두기
l VS2005 프로젝트 파일이 build-webkit 스크립트에도 동일하게 사용된다. 그래서 ~/WebKit/win/WebKit.vcproj/WebKit.sln 의 빌드 옵션을 설정하면, 스크립트(WebKitTools/Scripts/build-webkit)로 빌드 할 때도 여기서 설정한 빌드 옵션이 적용된다.
할일
- VS2005로 ~/WebKit/win/WebKit.vcproj/WebKit.sln 로드
- 아래 프로젝트의 컴파일러 옵션에 /wd4819 추가 ( 이렇게 하지 않으면 빌드 과정에서 문자열 코드 페이지관련 워닝을 낸다. 영어권 개발자들은 경험하지 못할 문제다. 해당 워닝을 무시하지 않으면 이를 에러로 취급한다. )
QTMovieWin, WebCore, WebKit, TestNetscapePlugin
할일
- WebKitTools/Scripts/build-webkit --debug 실행
참조 URL
l http://webkit.org/building/debug.html
할일
- WebKitTools/Scripts/debug-safari 실행 (PC에 Safari 브라우저가 설치되어 있어야 한다.)
- debug-safari를 실행하면 VS2005 디버깅 환경이 뜬다.
- 소스를 열고, 원하는 지점에 브레이크 포인트를 설정한다.
- F5를 눌러 디버깅을 시작한다.
debug-safari 스크립트로 웹킷을 실행시키려면, PC에 사파리 브라우저가 설치되어 있어야 한다. 다시 한번 말하지만, 웹킷은 브라우저가 아니라 브라우저 엔진이다.
(끝)