WebKit的Windows接口(适用2024年11月份版)
WebKit的Windows接口
使用cairo作为图形后端,libcurl作为网络后端。并且它只支持64位的Windows。
安装开发工具¶
安装带有“使用c++进行桌面开发”工作负载的最新Visual Studio。
Activate Developer Mode.激活开发者模式。Build-webkit脚本创建一个指向生成的compile_commands.json的符号链接。
安装CMake、Perl、Python、Ruby、gperf (GnuWin32 gperf)、LLVM、Ninja。Python 3.12目前对WebKit有一个问题a problem for WebKit at the moment。使用Python 3.11。
您可以使用Chocolatey安装工具。ActivePerl巧克力包有一个问题,现在没有包维护者。XAMPP包括Perl,并且运行布局测试需要XAMPP。改为安装XAMPP。
choco install -y xampp-81 python311 ruby git cmake gperf llvm ninja
为run-webkit-tests和git-webkit安装pywin32 Python模块。
python -m pip install pywin32
Windows Git默认启用了autoplf。但是,有些布局测试文件必须以LF行结束样式签出。参见 Bug 240158.
git config --global core.autocrlf input
使用WinGet¶
如果你喜欢WinGet而不是Chocolatey,你可以用它。在提升的PowerShell或cmd提示符中调用以下命令。
winget install --scope=machine --id Git.Git Kitware.CMake Ninja-build.Ninja Python.Python.3.11 RubyInstallerTeam.Ruby.3.2 ApacheFriends.Xampp.8.2 LLVM.LLVM
winget install --id GnuWin32.Gperf
如果没有指定——scope=machine, Python将安装在用户配置文件目录下。
WinGet可能不会将路径附加到您的PC中。如果出现错误,请检查您的路径设置,包括LLVM和GnuWin32(Gperf)。
WebKit命令提示符¶
要编译、运行程序和运行测试,需要设置一些环境变量。为了便于开发,建议创建一个批处理文件来设置环境变量并打开PowerShell。创建一个具有以下内容的批处理文件,并将其调整到您的PC。并把它放在WebKit的顶部源代码目录中。双击打开PowerShell,我们称这个打开的shell为“WebKit命令提示符”。
@echo off
cd %~dp0
path C:\xampp\apache\bin;%path%
path C:\xampp\perl\bin;%path%
path %ProgramFiles%\CMake\bin;%path%
path %ProgramFiles(x86)%\Microsoft Visual Studio\Installer;%path%
for /F "usebackq delims=" %%I in (`vswhere.exe -latest -property installationPath`) do set VSPATH=%%I
rem set WEBKIT_LIBRARIES=%~dp0WebKitLibraries\win
path %~dp0WebKitLibraries\win\bin;%path%
set WEBKIT_TESTFONTS=%~dp0Tools\WebKitTestRunner\fonts
set DUMPRENDERTREE_TEMP=%TEMP%
set CC=clang-cl
set CXX=clang-cl
rem set http_proxy=http://your-proxy:8080
rem set https_proxy=%http_proxy%
rem You can pass necessary JSC options https://github.com/WebKit/WebKit/blob/main/Source/JavaScriptCore/runtime/OptionsList.h#L83-L607.
rem set JSC_dumpOptions=1
rem set JSC_useJIT=0
rem set JSC_useDFGJIT=0
rem set JSC_useRegExpJIT=0
rem set JSC_useDOMJIT=0
rem You can show check TextureMapper FPS via WEBKIT_SHOW_FPS.
rem set WEBKIT_SHOW_FPS=1
call "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat"
cd %~dp0
start powershell
如果你喜欢,你可以用cmd或wt (Windows终端)替换powershell。
构建¶
在WebKit命令提示符中,调用build-webkit来开始构建。
perl Tools/Scripts/build-webkit --release
当你执行build-webkit时,你会自动下载所需的库WebKitRequirements。它每次都会检查最新的WebKitRequirements。我建议使用——skip-library-update进行增量构建,以加快下一次的速度。
python Tools\Scripts\update-webkit-win-libs.py
perl Tools\Scripts\build-webkit --release --skip-library-update
如果您收到WebKit is now built消息,则构建成功。运行你的迷你浏览器MiniBrowser
.。
WebKitBuild/Release/bin64/MiniBrowser.exe
您可以使用此指令在调试器下运行程序 this instruction.
使用Visual Studio内部构建¶¶
你可以使用CMake Visual Studio生成器来代替Ninja生成器。安装MSBuild的LLVM扩展。它捆绑了一个Clang编译器。但是,如果绑定的编译器太旧,您可能需要设置自定义LLVM位置和工具集。您可以设置LLVMInstallDir和LLVMToolsVersion环境变量,而不是创建Directory.build.props文件。
在WebKit命令提示符中,
perl Tools/Scripts/build-webkit --release --no-ninja --generate-project-only
通过从WebKit命令提示符调用devenv命令打开生成的解决方案文件。
devenv WebKitBuild\Release\WebKit.sln
构建“MiniBrowser”项目。
运行测试¶
WebKit测试运行器run-webkit-tests使用命令行调试器NTSD来获取崩溃日志。但是,Windows SDK安装程序默认不安装它。
- 右键单击Windows开始菜单
- 选择“应用程序和功能”菜单项
- 从应用程序列表中单击“Windows Software Development Kit”
- 点击“修改”按钮
- 选择“更改”并按“下一步”按钮
- 选择“Debugging Tools for Windows”,继续安装
如上所述安装XAMPP。
安装所需的Python和Ruby模块。
python -m pip install pywin32
gem install webrick
如果Apache服务正在运行,请停止Apache服务。
net stop apache2.4
一些扩展需要注册为CGI。为您的Perl和Python路径修改以下命令,并以管理员身份运行它们。
以Chocolatey为例
reg add HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command /ve /d "c:\xampp\perl\bin\perl.exe -T"
reg add HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command /ve /d "c:\xampp\perl\bin\perl.exe -T"
reg add HKEY_CLASSES_ROOT\.py\Shell\ExecCGI\Command /ve /d "c:\Python311\python.exe -X utf8"
一个使用WinGet的例子
reg add HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command /ve /d "c:\xampp\perl\bin\perl.exe -T"
reg add HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command /ve /d "c:\xampp\perl\bin\perl.exe -T"
reg add HKEY_CLASSES_ROOT\.py\Shell\ExecCGI\Command /ve /d "\`"C:\Program Files\Python311\python.exe\`" -X utf8"
在PATH中需要openssl.exe来运行wpt服务器。XAMPP包含openssl.exe在C:\ XAMPP \apache\bin目录下。将目录追加到PATH。
以管理员身份打开WebKit命令提示符,因为http测试需要运行Apache服务。
调用run-webkit-tests。
python Tools/Scripts/run-webkit-tests --release
如果使用的是日文窗口,则由于表单控件大小不同,一些布局测试会失败。GetStockObject(DEFAULT_GUI_FONT)返回MS UI哥特。删除GUIFont。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize。并且,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ fontsubstitute \MS Shell Dlg中替换MS UI Gothic与Microsoft Sans Serif。另外,将系统区域设置更改为英语,因为Python脚本会崩溃非英语系统区域设置。参见Bug 273060.
如果http测试由于套接字数量限制而失败,则增加用户端口范围。参见 Bug 224523
netsh int ipv4 set dynamicport tcp start=1025 num=64511
在Docker中运行测试¶
您可以使用Docker通过挂载主机目录来运行LayoutTests。
docker run -it --rm --cpu-count=8 --memory=16g -v %cd%:c:\repo -w c:\repo webkitdev/msbuild
从Buildbot下载构建构件¶
- 进入 Windows-64-bit-Release-Build Buildbot builder page页面.
- 点击任何绿色的“Build #”。
- 点击“compile-webkit”下的“Archive”链接下载压缩包
- 下载相应版本的WebKitRequirements.
- 解包,将WebKitRequirements的所有DLL拷贝到MiniBrowser.exe目录下
- 安装最新的Microsoft Visual c++ Redistributable for Visual Studio的vc_redists .x64.exe
WebKit和WebKit徽标是Apple Inc.的商标。.
原文地址:https://blog.csdn.net/jyl_sh/article/details/143767007
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!