Ultralight maintains its own port of WebCore (the core layout engine of WebKit). This module statically links against JavaScriptCore and uses our own custom, lightweight renderer (UltralightCore) for all drawing.
We've streamlined the build process to use CMake/Ninja on all platforms. Pre-built dependencies will be automatically fetched for your platform during build.
Building typically takes 20 minutes or less on most modern machines.
Link | URL |
---|---|
Main Website | https://ultralig.ht |
Chat on Discord! | https://chat.ultralig.ht |
Pre-built binares are uploaded to the following S3 buckets every commit:
- Release Bins: https://webcore-bin.sfo2.digitaloceanspaces.com/
Click any of the bucket links to get an XML file listing. Download a package by appending the filename to the bucket URL.
- CMake 3.2+ (https://cmake.org/)
- Ninja (https://ninja-build.org/)
- Recent GCC/Clang on macOS/Linux
- Visual Studio 2019 on Windows
- Perl 5.10+
- Python 2.7+
- Ruby 1.9+
- Gperf 3.0.1+
- Install Visual Studio 2019 (Free Community Edition works fine). Remember to select the C++ packages.
- Install Chocolatey (https://chocolatey.org).
- Run the following from command line:
choco install cmake ninja activeperl python2 ruby1.9 gperf
- Install Xcode Command Line Tools (or the full Xcode package).
- Download the macOS 10.14 Platform SDK from https://github.com/phracker/MacOSX-SDKs/releases and
extract it to
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk
. - Install Homebrew (https://brew.sh/)
- Run the following from the Terminal to setup the needed homebrew packages:
brew install cmake ninja
To get everything on Linux, just type the following:
sudo apt install cmake ninja-build gperf ruby clang libgcrypt20 libgcrypt11-dev lld-4.0
To build WebCore for Windows / 64-bit:
make release x64
To build non-optimized WebCore with Debug PDBs:
make debug x64
By default, the build scripts in this repo fetch pre-built dependencies from our servers.
To build WebCore using locally-built dependencies in the /deps
folder (really only useful
if you need to build against modified modules/deps):
make release x64 local
To build for macOS/Linux:
./make
Build products will be in <build_dir>/out
.
If your checkout is up-to-date, a 7zip release archive will also be generated in <build_dir>
.