[[PageOutline]] WinCairo port is a WebKit port for Windows, which is fully OpenSouce and redistributable unlike AppleWin port. It is using Cairo for the graphics backend, libcurl for the network backend. = Installing Development Tools = You need CMake, Perl, Python 2.7, Ruby, gperf and Visual Studio 2019 to build WinCairo port. You can follow [https://webkit.org/webkit-on-windows/#installing-development-tools AppleWin port's instructions] to install the necessary developer tools, and check out the WebKit code. The easiest way to install some tools is using [https://chocolatey.org/ Chocolatey], {{{ choco install cmake ActivePerl python2 ruby git svn patch diffutils gperf -y pip install pywin32 }}} You can optionally install some other tools, {{{ choco install ninja llvm Bitnami-XAMPP -y }}} = Building on Windows = In the top source directory, use {{{ perl Tools/Scripts/build-webkit --wincairo --release }}} to start the build. Ensure you don't have GCC in your PATH, otherwise CMake is going to use GCC and builds will fail. If you are behind http proxy, set following environment variabls for libcurl. {{{ set http_proxy=http://proxy.example.com:8080/ set https_proxy=%http_proxy% set no_proxy=localhost,127.0.0.1 }}} == Building from within Visual Studio == Some environment variables should be propagated to Visual Studio. {{{ perl WebKit/Tools/Scripts/build-webkit --wincairo --release --generate-project-only set WEBKIT_LIBRARIES=%cd%\WebKitLibraries\win set WEBKIT_OUTPUTDIR=%cd%\WebKitBuild devenv WebKitBuild\Release\WebKit.sln }}} = Required Libraries = You will get required libraries downloaded automatically when you perform a {{{build-webkit --wincairo}}}. The source code is hosted in: https://github.com/WebKitForWindows/WinCairoRequirements = Running the tests = Install Ahem font. XAMPP should be installed in the default install path (c:\xampp). Extensions .pl and .cgi need to be registered as CGI. Modify the following commands along your Perl path, and run them as administrator. {{{ reg add HKEY_CLASSES_ROOT\.pl\Shell\ExecCGI\Command /ve /d "C:\tools\perl\perl\bin\perl.exe -T" reg add HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command /ve /d "C:\tools\perl\perl\bin\perl.exe -T" }}} Open a command prompt as administrator because http tests need to run Apache service. {{{ set WEBKIT_LIBRARIES=%cd%\WebKitLibraries\win set WEBKIT_OUTPUTDIR=%cd%\WebKitBuild # for WebKit1 python Tools/Scripts/run-webkit-tests --release --wincairo --dump-render-tree # for WebKit2 python Tools/Scripts/run-webkit-tests --release --wincairo }}} You can use Docker to run LayoutTests by mounting the host directory. {{{ docker run -it --rm --cpu-count=8 --memory=16g -v %cd%:c:\repo -w c:\repo webkitdev/msbuild }}} = Download build artifacts from Buildbot = * Go to [https://build.webkit.org/builders Buildbot]. * Click "WinCairo 64-bit WKL Release (Build)". * Click any "Build #" which looks green. * Click "stdio" of "transfer-to-s3" of "Steps and Logfiles" * You can find "S3 URL" in the console log. * Download the zip. * Download the corresponding release of WinCairoRequirements. https://github.com/WebKitForWindows/WinCairoRequirements/releases