EAWebKit

From DisNCord Community Wiki
Revision as of 22:34, 29 January 2023 by Kraaabs (talk | contribs) (→‎Building EAWebKit)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

EAWebKit is EA's WebKit fork for use in their games and software. It's technically open source as per LGPL requirements[1], but getting it to build is another story...

User:Kraaabs is currently trying to get a build of EAWebKit working.

Building EAWebKit

EAWebKit does away with the CMake build system of regular WebKit (see Notes on WebKit) in favour of a set of hacked up Visual Studio solutions and projects. Therefore, at the moment we're only trying to build for Windows (however, other platforms should still be supported).

Unfortunately, the versions of EASTL[2] and EABase[3] (support libraries) bundled with the GPL source release of EAWebKit 16.4.2.0.0 are either broken or misconfigured, and they will not build correctly in Visual Studio 2022. Things that are broken are:

  • MSVC floating point intrinsics (such as _Nan etc.)
    • This can be resolved by defining EASTL_CUSTOM_FLOAT_CONSTANTS_REQUIRED 1 in order to force EASTL to use EA's own implementations of these definitions
  • Include paths... Like all of the include paths.
    • No resolution yet... this will probably require manual fixing of every single vcxproj in the build system.
  • Some source paths are wrong in the vcxproj files
    • An example is EAWebKitSupportPackages\JavaScriptCore\local\JavaScriptCore\DerivedSources\pc64\dev-debug\LowLevelInterpreterWin.asm in the JavaScriptCore vcxproj. This can be worked around by replacing that source path with an absolute path (is the working directory wrong?)

What about other releases of EAWebKit?

Those are even more broken! Releases of EAWebKit before 16.4.2.0.0 are full of hardcoded paths in the project files that break the build completely unless you manually tweak all of them. Luckily, the least broken version seems to be the latest one anyway.

See also

Notes on WebKit

Notes and References