用Visual Studio 2008(VS)编译WebKit的r63513

准备:

Cygwin:官方提供的

QuickTime SDK:需要注册一个Apple ID

WebKitSupportLibrary和WebKitAuxiliary:http://developer.apple.com/opensource/网页底部,顺便一起下了。

WebKit

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

这三个软件按照自己喜欢爱装哪就哪,不一定要在系统盘的(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。。。。

原文地址:https://www.cnblogs.com/kathmi/p/1779229.html