EAWebKit: Difference between revisions
create initial eawebkit page (for build instructions/patching and stuff... we'll need it) ~Sarah |
|||
Line 8: | Line 8: | ||
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). | 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 and EABase (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: | Unfortunately, the versions of EASTL<ref>https://github.com/electronicarts/EASTL</ref> and EABase<ref>https://github.com/electronicarts/EABase</ref> (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 <code>_Nan</code> etc.) | * MSVC floating point intrinsics (such as <code>_Nan</code> etc.) |
Latest revision as of 22:34, 29 January 2023
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
- This can be resolved by defining
- 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?)
- An example is
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.