Building from Source
This guide covers how to build Cromite from the Chromium source code. You can use either a pre-built Docker image for a streamlined experience or manually set up your build environment.Prerequisites
Before building Cromite, familiarize yourself with the official Chromium build documentation to understand the basic Chromium build process.Build Configuration Files
Cromite uses several key files to configure the build:RELEASE
Contains the Chromium version tag (currently 145.0.7632.120)Location:
build/RELEASEcromite.gn_args
GN build arguments that configure Cromite’s featuresLocation:
build/cromite.gn_argscromite_patches_list.txt
Lists all 332 patches applied to ChromiumLocation:
build/cromite_patches_list.txtbuild_cromite.yaml
GitHub Actions workflow for automated buildsLocation:
.github/workflows/build_cromite.yamlBuilding with Docker (Recommended)
The easiest way to build Cromite is using the pre-built Docker images. Each release includes a corresponding Docker image.Set Build Variables
Define your build environment variables:
The Docker image format is:
uazo/cromite-build:(VERSION)-(COMMIT)All available images are listed at Docker HubConfigure Build Environment
Inside the container, set up the PATH and navigate to the source directory:
Key GN Build Arguments
Cromite uses custom GN arguments to configure the build. Here are the key settings fromcromite.gn_args:
Core Build Settings
Core Build Settings
Privacy & Security
Privacy & Security
Media Codecs
Media Codecs
Disabled Features
Disabled Features
Platform-Specific Builds
- Android
- Linux
- Windows
Building for Android
Android builds support multiple architectures: arm64-v8a, arm32-v7a, and x86_64.Android-Specific GN Args
The Docker commands shown above are valid for Android and Linux builds.
Build Outputs
Successful Android builds produce:arm64_ChromePublic.apkarm_ChromePublic.apkx64_ChromePublic.apkSystemWebView.apk(separate build)
Applying Patches
Cromite applies 332 patches to Chromium. These patches must be applied in the order specified incromite_patches_list.txt.
See the Patch System documentation for detailed information about Cromite’s patches.
Debug Builds
To create a debug build, set the debug environment variable:Build Automation
Cromite uses GitHub Actions for automated builds. The workflow file at.github/workflows/build_cromite.yaml shows the complete build process:
- Builds Docker containers for dependencies (
uazo/build-deps) - Pulls Chromium source (
uazo/chromium) - Applies Cromite patches (
uazo/cromite) - Creates final build image (
uazo/cromite-build) - Compiles for all platforms (Android arm/arm64/x64, Windows, Linux)
Troubleshooting
Build fails with clang errors
Build fails with clang errors
Ensure you’re using the correct LLVM/Clang version bundled with Chromium:
Out of memory during build
Out of memory during build
Chromium builds require significant RAM (16GB+ recommended). Consider:
- Reducing parallel jobs:
ninja -j 4 - Using swap space
- Building with
is_component_build=truefor development
Windows cross-compilation fails
Windows cross-compilation fails
Make sure you’ve run the Windows SDK preparation script:
Next Steps
Patch System
Learn about Cromite’s 332 patches to Chromium
Docker Setup
Deep dive into Docker development environment
Contributing
Contribute patches and features to Cromite
GitHub Workflow
View the complete build automation workflow