ladybird/Ladybird
Daniel Bertalan af5250b2cb Ladybird: Fix compilation on macOS/Clang
- Silences the -Wuser-defined-literals warning which is triggered by our
  use of the `sv` suffix for StringView
- Removes an unused captured `this` pointer [-Wunused-lambda-capture]
- Changes a JSONArray.h include to JSONObject.h to get the definition
  for `JSONValue::serialize`. This is needed because template functions
  are not exported for dylibs on macOS. This is a hack; the JSON headers
  should be refactored so that each one includes the definition of
  the template functions it sees. -- Maybe we should build with
  -fvisibility-inlines-hidden on Linux to catch issues like this?
2022-12-25 07:58:58 -07:00
..
cmake Ladybird/Meta: Convert to CMake build 2022-12-25 07:58:58 -07:00
.gitignore Ladybird/Meta: Convert to CMake build 2022-12-25 07:58:58 -07:00
BrowserWindow.cpp Ladybird: Replace StatusBar with ToolTip 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: Fix compilation on macOS/Clang 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
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: Implement basic cookie support 2022-12-25 07:58:58 -07:00
WebView.h Ladybird: Add "View Source" menu action (Ctrl+U) 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