阿里云中英文網(wǎng)站建設(shè)福州關(guān)鍵詞搜索排名
WebKit的Windows接口
使用cairo作為圖形后端,libcurl作為網(wǎng)絡(luò)后端。并且它只支持64位的Windows。
安裝開發(fā)工具?
安裝帶有“使用c++進(jìn)行桌面開發(fā)”工作負(fù)載的最新Visual Studio。
Activate Developer Mode.激活開發(fā)者模式。Build-webkit腳本創(chuàng)建一個(gè)指向生成的compile_commands.json的符號(hào)鏈接。
安裝CMake、Perl、Python、Ruby、gperf (GnuWin32 gperf)、LLVM、Ninja。Python 3.12目前對(duì)WebKit有一個(gè)問(wèn)題a problem for WebKit at the moment。使用Python 3.11。
您可以使用Chocolatey安裝工具。ActivePerl巧克力包有一個(gè)問(wèn)題,現(xiàn)在沒(méi)有包維護(hù)者。XAMPP包括Perl,并且運(yùn)行布局測(cè)試需要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默認(rèn)啟用了autoplf。但是,有些布局測(cè)試文件必須以LF行結(jié)束樣式簽出。參見?Bug 240158.
git config --global core.autocrlf input
使用WinGet?
如果你喜歡WinGet而不是Chocolatey,你可以用它。在提升的PowerShell或cmd提示符中調(diào)用以下命令。
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
如果沒(méi)有指定——scope=machine, Python將安裝在用戶配置文件目錄下。
WinGet可能不會(huì)將路徑附加到您的PC中。如果出現(xiàn)錯(cuò)誤,請(qǐng)檢查您的路徑設(shè)置,包括LLVM和GnuWin32(Gperf)。
WebKit命令提示符?
要編譯、運(yùn)行程序和運(yùn)行測(cè)試,需要設(shè)置一些環(huán)境變量。為了便于開發(fā),建議創(chuàng)建一個(gè)批處理文件來(lái)設(shè)置環(huán)境變量并打開PowerShell。創(chuàng)建一個(gè)具有以下內(nèi)容的批處理文件,并將其調(diào)整到您的PC。并把它放在WebKit的頂部源代碼目錄中。雙擊打開PowerShell,我們稱這個(gè)打開的shell為“WebKit命令提示符”。
@echo off
cd %~dp0path 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=%%Irem 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-clrem 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=0rem You can show check TextureMapper FPS via WEBKIT_SHOW_FPS.
rem set WEBKIT_SHOW_FPS=1call "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat"
cd %~dp0
start powershell
如果你喜歡,你可以用cmd或wt (Windows終端)替換powershell。
構(gòu)建?
在WebKit命令提示符中,調(diào)用build-webkit來(lái)開始構(gòu)建。
perl Tools/Scripts/build-webkit --release
當(dāng)你執(zhí)行build-webkit時(shí),你會(huì)自動(dòng)下載所需的庫(kù)WebKitRequirements。它每次都會(huì)檢查最新的WebKitRequirements。我建議使用——skip-library-update進(jìn)行增量構(gòu)建,以加快下一次的速度。
python Tools\Scripts\update-webkit-win-libs.py
perl Tools\Scripts\build-webkit --release --skip-library-update
如果您收到WebKit is now built消息,則構(gòu)建成功。運(yùn)行你的迷你瀏覽器MiniBrowser
.。
WebKitBuild/Release/bin64/MiniBrowser.exe
您可以使用此指令在調(diào)試器下運(yùn)行程序?this instruction.
使用Visual Studio內(nèi)部構(gòu)建??
你可以使用CMake Visual Studio生成器來(lái)代替Ninja生成器。安裝MSBuild的LLVM擴(kuò)展。它捆綁了一個(gè)Clang編譯器。但是,如果綁定的編譯器太舊,您可能需要設(shè)置自定義LLVM位置和工具集。您可以設(shè)置LLVMInstallDir和LLVMToolsVersion環(huán)境變量,而不是創(chuàng)建Directory.build.props文件。
在WebKit命令提示符中,
perl Tools/Scripts/build-webkit --release --no-ninja --generate-project-only
通過(guò)從WebKit命令提示符調(diào)用devenv命令打開生成的解決方案文件。
devenv WebKitBuild\Release\WebKit.sln
構(gòu)建“MiniBrowser”項(xiàng)目。
運(yùn)行測(cè)試?
WebKit測(cè)試運(yùn)行器run-webkit-tests使用命令行調(diào)試器NTSD來(lái)獲取崩潰日志。但是,Windows SDK安裝程序默認(rèn)不安裝它。
- 右鍵單擊Windows開始菜單
- 選擇“應(yīng)用程序和功能”菜單項(xiàng)
- 從應(yīng)用程序列表中單擊“Windows Software Development Kit”
- 點(diǎn)擊“修改”按鈕
- 選擇“更改”并按“下一步”按鈕
- 選擇“Debugging Tools for Windows”,繼續(xù)安裝
如上所述安裝XAMPP。
安裝所需的Python和Ruby模塊。
python -m pip install pywin32
gem install webrick
如果Apache服務(wù)正在運(yùn)行,請(qǐng)停止Apache服務(wù)。
net stop apache2.4
一些擴(kuò)展需要注冊(cè)為CGI。為您的Perl和Python路徑修改以下命令,并以管理員身份運(yùn)行它們。
以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"
一個(gè)使用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來(lái)運(yùn)行wpt服務(wù)器。XAMPP包含openssl.exe在C:\ XAMPP \apache\bin目錄下。將目錄追加到PATH。
以管理員身份打開WebKit命令提示符,因?yàn)閔ttp測(cè)試需要運(yùn)行Apache服務(wù)。
調(diào)用run-webkit-tests。
python Tools/Scripts/run-webkit-tests --release
如果使用的是日文窗口,則由于表單控件大小不同,一些布局測(cè)試會(huì)失敗。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。另外,將系統(tǒng)區(qū)域設(shè)置更改為英語(yǔ),因?yàn)镻ython腳本會(huì)崩潰非英語(yǔ)系統(tǒng)區(qū)域設(shè)置。參見Bug 273060.
如果http測(cè)試由于套接字?jǐn)?shù)量限制而失敗,則增加用戶端口范圍。參見?Bug 224523
netsh int ipv4 set dynamicport tcp start=1025 num=64511
在Docker中運(yùn)行測(cè)試?
您可以使用Docker通過(guò)掛載主機(jī)目錄來(lái)運(yùn)行LayoutTests。
docker run -it --rm --cpu-count=8 --memory=16g -v %cd%:c:\repo -w c:\repo webkitdev/msbuild
從Buildbot下載構(gòu)建構(gòu)件?
- 進(jìn)入?Windows-64-bit-Release-Build Buildbot builder page頁(yè)面.
- 點(diǎn)擊任何綠色的“Build #”。
- 點(diǎn)擊“compile-webkit”下的“Archive”鏈接下載壓縮包
- 下載相應(yīng)版本的WebKitRequirements.
- 解包,將WebKitRequirements的所有DLL拷貝到MiniBrowser.exe目錄下
- 安裝最新的Microsoft Visual c++ Redistributable for Visual Studio的vc_redists .x64.exe
WebKit和WebKit徽標(biāo)是Apple Inc.的商標(biāo)。.