[webkit-help] Building wincairo on Windows 10 64bit

Isaac Devine isaac at devinesystems.co.nz
Sun Nov 8 22:15:55 PST 2015


Hi Alex,

To follow-up on the build problem I was having with DumpRenderTree, I've
raised a bug and attached a patch which fixes this:

https://bugs.webkit.org/show_bug.cgi?id=151013

Thanks,
Isaac

On 9 November 2015 at 14:01, Isaac Devine <isaac at devinesystems.co.nz> wrote:

> Hi Alex,
>
> Thanks for your help and the link, I have made more progress with those
> instructions.
>
> The update-webkit-wincairo-libs calls update-webkit-dependency, which
> looks it requests
> a file called WinCairoRequirements.headers so that it can check the
> last-modified time.
> I'm not familiar with perl, so I could be mistaken here.
>
> If I do as you suggest and download and extract it manually (and comment
> out the check from update-webkit-wincairo-libs) the build proceeds, as I've
> documented below:
>
> When I call perl build-webkit --wincairo --release from the windows
> command prompt, I get an error alert dialog appear with the following text:
> ---------------------------
> cl.exe - System Error
> ---------------------------
> The program can't start because mspdb140.dll is missing from your
> computer. Try reinstalling the program to fix this problem.
> ---------------------------
> OK
> ---------------------------
>
>
> When I click ok the build continues.
>
> After some time it then fails when building the dumprendertree project,
> complaining about a missing win-cairo.h, however it does exist under
> Webkit\WebkitLibraries\win\include\cairo.
> From WebKitBuild\Release\webkit_errors.log:
>
> C:\work\WebKit\Tools\DumpRenderTree\cairo\PixelDumpSupportCairo.h(38):
> fatal error C1083: Cannot open include file: 'cairo-win32.h': No such file
> or directory (compiling source file
> C:\work\WebKit\Tools\DumpRenderTree\PixelDumpSupport.cpp)
> [C:\work\WebKit\WebKitBuild\Release\Tools\DumpRenderTree\DumpRenderTreeLib.vcxproj]
> C:\work\WebKit\Tools\DumpRenderTree\cairo\PixelDumpSupportCairo.h(38):
> fatal error C1083: Cannot open include file: 'cairo-win32.h': No such file
> or directory (compiling source file
> C:\work\WebKit\Tools\DumpRenderTree\win\PixelDumpSupportWin.cpp)
> [C:\work\WebKit\WebKitBuild\Release\Tools\DumpRenderTree\DumpRenderTreeLib.vcxproj]
> c:\work\webkit\tools\dumprendertree\cairo\PixelDumpSupportCairo.h(38):
> fatal error C1083: Cannot open include file: 'cairo-win32.h': No such file
> or directory (compiling source file
> C:\work\WebKit\Tools\DumpRenderTree\cairo\PixelDumpSupportCairo.cpp)
> [C:\work\WebKit\WebKitBuild\Release\Tools\DumpRenderTree\DumpRenderTreeLib.vcxproj]
> C:\work\WebKit\Tools\DumpRenderTree\win\ImageDiffCairo.cpp(32): fatal
> error C1083: Cannot open include file: 'cairo.h': No such file or directory
> [C:\work\WebKit\WebKitBuild\Release\Tools\DumpRenderTree\ImageDiffLib.vcxproj]
>
> I tried running build-webkit again, and it fails with the "missing
> win-cairo.h" error still.
>
> Another point is that the "build failed" message suggests looking into
> WebKitBuild/obj/<project>/<config> but I don't have a WebKitBuild/obj
> directory.
>
> Is build-webkit still the correct build script to run? Or should I be
> using cmake directly?
>
> Thanks,
> Isaac
>
>
> On 7 November 2015 at 08:58, Alex Christensen <achristensen at apple.com>
> wrote:
>
>> Sorry about that.  We really need to update
>> webkit.org/building/tools.html
>> http://trac.webkit.org/wiki/WindowsWithoutCygwin should be more up to
>> date.  You shouldn’t need the old version of the DirectX SDK any more, and
>> you shouldn’t need iTunes installed for WinCairo to build and run.  You
>> will need CMake, though, which isn’t on that list yet.
>> Source/WebKit/WebKit.vcxproj/WebKit.sln is out of date and will be removed
>> soon.  You will need to use CMake to generate a Visual Studio solution.
>> I’ve never used the cygwin64 installer, and I’m not sure what problems
>> you may run into when using that.  It might work fine, but you shouldn’t
>> need cygwin installed at all to build and run if you have the non-cygwin
>> version of all the tools installed.
>> You shouldn’t need the WEBKIT_LIBRARIES or WEBKIT_OUTPUTDIR environment
>> variables, either.
>> I’m not sure what WinCairoRequirements.headers are, but
>> WinCairoRequirements.zip is required.  If you’re having trouble downloading
>> it, piece together the url from Tools/Scripts/update-webkit-wincairo-libs
>> and put the contents of the zip into WebKitLibraries/win.  That will make
>> it so it can find the unicode and other headers.
>>
>> Alex
>>
>> On Nov 5, 2015, at 9:32 PM, Isaac Devine <isaac at devinesystems.co.nz>
>> wrote:
>>
>> Hi,
>>
>> I'm trying to build the wincairo webkit port with Visual Studio 2015
>> (community edition) by following the instructions on:
>>
>>  * http://www.webkit.org/building/tools.html
>>  * http://trac.webkit.org/wiki/BuildingOnWindows#WebKit_Libraries
>>  * http://trac.webkit.org/wiki/BuildingCairoOnWindows
>>
>> However I was unsuccessful in using the supplied cygwin installer and
>> instead used the cygwin64 installer from cygwin.org
>>
>> After installing all of the dependencies, when I try to build with:
>>
>>
>> However when I try to build (from the cygwin prompt) via:
>> $ PROGRAMFILES="C:\\Program Files (x86)" Tools/Scripts/build-webkit
>> --wincairo --release
>>
>> It is unable to download the WinCairoRequirements.headers file (even
>> though it can download the WinCairoRequirements.zip).
>>
>> If I manually change this so that it extracts the zip regardless I can
>> continue the build.
>>
>> Also it seems to ignore the windows-style paths I have set in
>> WEBKIT_OUTPUTDIR and WEBKIT_LIBRARIES and instead has them as
>> "/WebkitBuild" and "/WebkitLibraries/win" in unix style; which corresponds
>> to "C:\cygwin64\WebkitBuild" & "C:\cygwin64\WebkitLibraries" respectively.
>>
>> The build output seems to go to a mix of C:\cygwin64\WebkitBuild and
>> C:\cygwin64\home\isaac\WebKit\WebkitBuild.
>>
>> The build eventually fails by WTL not finding unicode\uchar.h in the
>> include directories, e.g.:
>>
>> C:\cygwin64\home\isaac\WebKit\Source\WTF\wtf/text/ASCIIFastPath.h(26):
>> fatal error C1083: Cannot open include file: 'unicode/utypes.h': No such
>> file or directory (compiling source file
>> C:\cygwin64\home\isaac\WebKit\Source\WTF\wtf\Assertions.cpp)
>> [C:\cygwin64\home\isaac\WebKit\WebKitBuild\Release\Source\WTF\wtf\WTF.vcxproj]
>>
>> Looking into the generated project files the additional include
>> directories are (if I have not defined WEBKIT_OUTPUTDIR or
>> WEBKIT_LIBRARIES):
>>
>> <AdditionalIncludeDirectories>C:\cygwin64\WebKitBuild\Release\DerivedSources\ForwardingHeaders;C:\cygwin64\WebKitBuild\Release\DerivedSources;\WebKitLibraries\win\include;C:\cygwin64\home\isaac\WebKit\Source\bmalloc;C:\cygwin64\home\isaac\WebKit\Source\WTF;C:\cygwin64\home\isaac\WebKit\Source\WTF\wtf;C:\cygwin64\home\isaac\WebKit\Source\WTF\wtf\dtoa;C:\cygwin64\home\isaac\WebKit\Source\WTF\wtf\text;C:\cygwin64\home\isaac\WebKit\Source\WTF\wtf\threads;C:\cygwin64\home\isaac\WebKit\Source\WTF\wtf\unicode;C:\cygwin64\home\isaac\WebKit\Source\ThirdParty;C:\cygwin64\WebKitBuild\Release;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
>>
>> If do have WEBKIT_OUTPUTDIR and WEBKIT_LIBRARIES defined:
>>
>> The directories aren't specified correctly, i.e:
>> "\WebkitBuild\include" instead of "C:\cygwin64\WebkitBuild\include"
>>
>> What am I doing wrong here?
>>
>> Is there a more complete and up-to-date guide on building the wincairo
>> port with visual studio 2015?
>>
>>
>> Cheers,
>> Isaac
>>
>> _______________________________________________
>> webkit-help mailing list
>> webkit-help at lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-help
>>
>>
>>
>
>
> --
> Isaac Devine
> Director
> Devine Systems Limited
>
> +64 21 1700 929
>



-- 
Isaac Devine
Director
Devine Systems Limited

+64 21 1700 929
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-help/attachments/20151109/557ec7d7/attachment-0001.html>


More information about the webkit-help mailing list