用Visual Studio 2008(VS)编译WebKit的r63513
准备:
Cygwin:官方提供的
QuickTime SDK:需要注册一个Apple ID
WebKitSupportLibrary和WebKitAuxiliary:http://developer.apple.com/opensource/网页底部,顺便一起下了。
WebKit
WebKit is the open source web browser engine at the heart of Apple's Safari web browser on Mac, Windows, and iOS. It also provides a system-level framework engine that powers Dashboard, Mail, and many other Mac OS X applications. Webkit Open Source Project
iOS and Mac OS X
这三个软件按照自己喜欢爱装哪就哪,不一定要在系统盘的(C盘)。
代码:
http://nightly.webkit.org/,下了个最新的。在Cygwin中使用tar -xjvf WebKit-r63513.tar.bz2,然后重命名为WebKit。
环境变量:
WEBKIT_DIR=刚才的WebKit目录。
WEBKITLIBRARIESDIR=%WEBKIT_DIR%\WebKitLibraries\win。
WEBKITOUTPUTDIR=%WEBKIT_DIR%\WebKitBuild。
VS2008=这个不用说就是我常用的也是唯一一个版本的VS。
QT_SDK=之前的QuickTime的目录。
CYG_HOME=Cygwin目录。
项目修改:
所有的项目,用记事本打开,替换%SystemDrive%\cygwin为%CYG_HOME%这个很关键,所有的都替换了。
脚本修改:
build-webkit 437行
if ($ENV{'VS2008'}) {
$result = buildVisualStudioProject("../WebKit2/WebKit2-2008.sln", $clean);
} else {
$result = buildVisualStudioProject("../WebKit2/WebKit2.sln", $clean);
}
webkitdirs.pm 1066行
if ($ENV{'VS2008'}) {
$vsInstallDir = $ENV{'VS2008'};
}
$vsInstallDir = `cygpath "$vsInstallDir"`;
。。。
my $qtSDKPath = "$programFilesPath/QuickTime SDK";
if ($ENV{'QT_SDK'}) {
$qtSDKPath = $ENV{'QT_SDK'};
}
parallelcl 19行
my $clexe;
if ($ENV{'VS2008'}) {
$clexe = `cygpath -u '$ENV{'VS90COMNTOOLS'}/http://www.cnblogs.com/VC/bin/cl.exe'`;
} else {
$clexe = `cygpath -u '$ENV{'VS80COMNTOOLS'}/http://www.cnblogs.com/VC/bin/cl.exe'`;
}
chomp $clexe;
如果愿意,把update-webkit-auxiliary-libs也改了,下载临时目录,多浪费呀。这个自己改,我经常不能联网,所以对下下来的资源分外看重,宁可硬盘塞满。
最后,复制WebKit2下的WebKit2.sln为WebKit2-2008.sln,在Cygwin中定位到WebKit的上层目录,
依次输入
WebKit/webkittools/scripts/update-webkit
WebKit/webkittools/scripts/build-webkit
由于版本问题,不会编译的,但重要的是,此时编译环境已经完成。
打开WebKit2-2008.sln,自动升级为2008的项目,然后依次编译JavaScriptCore、WebKitCore。。。。