1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 06:28:13 +00:00
serenity/Ladybird
Andrew Kaster 261f078a28 Ladybird/Meta: Add Android build
Build an Android APK file that, when configured properly in Qt Creator,
can be used to deploy the browser to an Android device.

The current build requires NDK 24, targets no less than Android API 30,
and Qt Creator 6.4.0.
2022-12-25 07:58:58 -07:00
..
android Ladybird/Meta: Add Android build 2022-12-25 07:58:58 -07:00
cmake Ladybird/Meta: Add Android build 2022-12-25 07:58:58 -07:00
.gitignore Ladybird/Meta: Add Android build 2022-12-25 07:58:58 -07:00
AndroidPlatform.cpp Ladybird/Meta: Add Android build 2022-12-25 07:58:58 -07:00
BrowserWindow.cpp Ladybird: Add quick & dirty port of the JS console from Browser :^) 2022-12-25 07:58:58 -07:00
BrowserWindow.h Ladybird: Hide TabBar if count <= 1 2022-12-25 07:58:58 -07:00
CMakeLists.txt Ladybird/Meta: Add Android build 2022-12-25 07:58:58 -07:00
ConsoleClient.cpp Ladybird: Remove debug spam about non-existent console messages 2022-12-25 07:58:58 -07:00
ConsoleClient.h Ladybird: Add files I forgot to commit :^) 2022-12-25 07:58:58 -07:00
ConsoleGlobalObject.cpp Ladybird: Add quick & dirty port of the JS console from Browser :^) 2022-12-25 07:58:58 -07:00
ConsoleGlobalObject.h Ladybird: Add files I forgot to commit :^) 2022-12-25 07:58:58 -07:00
CookieJar.cpp Ladybird: Update for removal of StringView(char const*) 2022-12-25 07:58:58 -07:00
CookieJar.h Ladybird: Implement basic cookie support 2022-12-25 07:58:58 -07:00
History.cpp Ladybird: Expanded toolbar with browser history and home button 2022-12-25 07:58:58 -07:00
History.h Ladybird: Expanded toolbar with browser history and home button 2022-12-25 07:58:58 -07:00
LICENSE.md Ladybird: Add a separate license file 2022-12-25 07:58:58 -07:00
main.cpp Ladybird: Trigger browser to quit when the main window is closed 2022-12-25 07:58:58 -07:00
README.md Ladybird: Added Arch Linux/Manjaro required packages to build 2022-12-25 07:58:58 -07:00
RequestManagerQt.cpp Ladybird: Fix compilation on macOS/Clang 2022-12-25 07:58:58 -07:00
RequestManagerQt.h Ladybird: Use QtNetwork for HTTP and HTTPS requests 2022-12-25 07:58:58 -07:00
Tab.cpp Ladybird: Fix compilation on macOS/Clang 2022-12-25 07:58:58 -07:00
Tab.h Ladybird: Port over part of the "Debug" menu from the SerenityOS browser 2022-12-25 07:58:58 -07:00
WebView.cpp Ladybird/Meta: Add Android build 2022-12-25 07:58:58 -07:00
WebView.h Ladybird: Add quick & dirty port of the JS console from Browser :^) 2022-12-25 07:58:58 -07:00

Ladybird Web Browser

The Ladybird Web Browser is a browser using the SerenityOS LibWeb engine with a Qt GUI.

Build Prerequisites

Qt6 development packages and a c++20-enabled compiler are required. On Debian/Ubuntu required packages include, but are not limited to:

sudo apt install build-essential cmake libgl1-mesa-dev ninja-build qt6-base-dev qt6-tools-dev-tools

On Arch Linux/Manjaro:

sudo pacman -S base-devel cmake libgl ninja qt6-base qt6-tools qt6-wayland

For the c++ compiler, gcc-11 or clang-13 are required at a minimum for c++20 support.

For Ubuntu 20.04 and above, ensure that the Qt6 Wayland packages are available:

sudo apt install qt6-wayland

Build steps

Basic workflow, using serenity source dir cloned from github:

cmake -GNinja -B Build
cmake --build Build
ninja -C Build run

Advanced workflow, using pre-existing serenity checkout.

If you previously didn't set SERENITY_SOURCE_DIR, probably want to blast the Build directory before doing this:

cmake -GNinja -B Build -DSERENITY_SOURCE_DIR=/path/to/serenity
ninja -C Build run

To automatically run in gdb:

ninja -C Build debug

To run without ninja rule:

# or your existing serenity checkout /path/to/serenity
export SERENITY_SOURCE_DIR=${PWD}/Build/serenity
./Build/ladybird