webkit浏览器内核编译
本文详细介绍了如何安装和配置Webkit的编译环境和工具的安装,以及在Windows上编译和运行WebKit浏览器引擎的过程,包括安装依赖、设置环境变量、生成解决方案并最终运行附带的MiniBrowser示例。
一、WebKit简介
WebKit 是一个开源的浏览器引擎,与之相对应的浏览器内核引擎有Gecko(Mozilla Firefox 等使用),Trident(也称MSHTML,IE 使用)和EdgeHTML(也称Chakra,Edge和其他UWP浏览器使用)。
同时WebKit 也是苹果Mac OS X 系统浏览器的引擎框架版本的名称,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。WebKit 前身是 KDE 小组的 KHTML,WebKit 所包含的 WebCore 排版引擎和 JSCore 引擎来自于 KDE 的 KHTML 和 KJS,当年苹果比较了 Gecko 和 KHTML 后,仍然选择了KHTML,主要原因是因为它拥有清晰的源码结构、极快的渲染速度。苹果公司将 KHTML进行优化 发扬光大,逐渐演进开发为WebKit 引擎的浏览器 Safar,后来又将WebKit进行了开源i。
二、安装choco管理器和依赖
1.安装chocolatey管理器
在管理员模式打开cmd,输入下面的指令
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
进行安装chocolatey管理器的程序框架。
2.安装依赖
安装好chocolatey后,接着安装安装CMake、Perl、Python、Ruby、gperf (GnuWin32 gperf)、LLVM、Ninja。Python 3.12等编译webkit所需的必备工具。
choco install -y cmake ActivePerl ruby gperf ninja svn patch diffutils
上面的命令,安装还是很顺利能执行的,但是由于版本更新的原因,active Perl和svn,可能会提示失败,本人就经历了这个痛苦,可以自己下载相应的版本,再单独安装就可以。建议下载ActivePerl-5.28.0000-MSWin32-x64-b462fde1,Setup-Subversion-1.8.17,避免下错版本错误导致编译不成功。
LLVM,在安装VS的相应版本时,要选择配置相应的插件。以便clang-cl插件的安装,可以为后面配置clang-cl选项提供工具。
3.源码下载
以下三个链接选一个进行下载(推荐第三个,这个在国内比较稳定,前两个国外的服务器,下载很慢,或者基本不成功)
git clone https://git.webkit.org/WebKit.git
git clone https://github.com/webkit/webkit.git
git clone https://gitee.com/mirrors/WebKit.git
额外的依赖 在更新编译时,会自动下载相应的目录下,
三、配置环境变量
打开X64 Native Tools Command Prompt for VS 2022,并切换到Webit目录,输入一下命令进行配置:
set WEBKIT_LIBRARIES=%cd%\WebKitLibraries\win
set WEBKIT_OUTPUTDIR=%cd%\WebKitBuild //编译之后存放的文件夹
set CC=clang-cl
set CXX=clang-cl
设置好编译环境的变量。
四、开始编译
继续在X64 Native Tools Command Prompt for VS 2022窗口命令行,并确保切换到Webit目录。
perl Tools\Scripts\update-webkit //检查更新webkit脚本
perl Tools/Scripts/build-webkit --wincairo --release --no-ninja --generate-project-only //生成解决方案(此处有坑,尤其是国内用户,编译遇到困难时可以联系我,并下载我提前下载更新的依赖包,具体下载地址如下:https://download.csdn.net/download/jyl_sh/90027148)
devenv WebKitBuild\Release\WebKit.sln //打开解决方案
把Tools/MiniBrowser设置为启动项目 之后本地windows调试编译,编译是个痛苦的过程,需要很久(有可能是跨天额^-^)。
五、运行
最后进入WebKitBuild\Release\bin64,把额外的依赖包下面的bin目录下的内容拷贝到此目录下。
运行 Minibrowser.exe
编译结果可以从下面的网址下载:https://download.csdn.net/download/jyl_sh/90027503