123 Commits

Author SHA1 Message Date
Timothy Flynn
ce7b69ff31 Meta: Move utility scripts to a subfolder
The idea is that scripts directly under Meta are meant to be run by
people. Scripts that are only imported or run by other scripts are
moved to a subdirectory.
2026-04-23 12:36:08 -04:00
Andrew Kaster
5c835157c6 Documentation+Meta: Remove references to nonexistent Toolchain directory
After b1d708dd16, the Toolchain directory
was removed from the repository. Some documentation and scripts still
referenced it, so this commit removes those references. The only
remaining references are in the gitignore file, to prevent bisections
from being polluted by the presence of a Toolchain directory in the
working copy.
2026-04-21 06:56:32 -04:00
Andrew Kaster
f7c932f50e Meta: Add option to select GUI Framework to ladybird.py 2026-04-20 18:41:42 -04:00
Johan Dahlin
6c99bf74ea Documentation: Add GTK UI build prerequisites and style guide
Add GTK4/libadwaita build instructions alongside Qt.
Add Documentation/GtkFrontend.md with GTK-specific coding style
rules and a manual test checklist.
2026-04-17 11:17:56 -04:00
Jelle Raaijmakers
c3fb1be321 Everywhere: Remove GN build system
We've had some impressive efforts going into setting up and maintaining
GN as an alternative to CMake, but as of today we're still using CMake
and the GN files have bitrotted quite severely.

We've found no convincing reason to keep maintaining two build systems
in parallel - so let's remove GN and make life a bit simpler for us.
2026-04-15 18:54:19 -04:00
darshan
554891b033 Documentation: Replace 'default' CMake preset with 'Release'
The 'CMake --preset default' examples are now invalid, because the
'default' preset no longer exists.
Update all examples to use 'Release' preset.
Update the wording at line 305 to Release preset.
2026-04-08 12:30:10 +01:00
Undefine
fbbcc73fea Meta: Refactor the way the GUI framework is picked
This is largely based of off the work done by Andrew Kaster in #5918.
Having this toggle makes much more sense, especially if there will be
more UIs in the future.

Co-authored-by: Andrew Kaster <andrew@ladybird.org>
2026-03-29 13:59:11 -06:00
Timothy Flynn
3ad6fef866 Documentation: Clarify Rust installation note
* It is required for more than LibJS, so let's just remove that note.
* Only recommend using rustup to install the toolchain. System package
  managers have been found to be too out of date.
2026-03-14 11:47:44 -04:00
Andreas Kling
a64e13d232 Meta: Add Rust toolchain as a build dependency
There's now an ENABLE_RUST CMake option (on by default).

Install Rust via rustup in devcontainer scripts, document the
requirement in build instructions, and add Cargo's target/ directory
to .gitignore.
2026-02-24 09:39:42 +01:00
Timothy Flynn
372c7b9822 CI: Update the Clang pipeline to Clang 21 2026-02-18 08:02:45 -05:00
Rocco Corsi
8ea0a877a1 Documentation: Add missing 'less' command to Arch Linux dependencies
After installing Arch Linux 2026.02.01 and following the instructions
in Documentation/BuildInstructionsLadybird.md to install the
dependencies, using git command will fail due to missing pager less.
2026-02-12 00:06:27 +01:00
Samq64
a47d59fa7b Documentation: Adjust Arch Linux dependencies
- Remove automake: base-devel already depends directly on it.
- Remove qt6-wayland: QT 6.10 added Wayland support to qt6-base.
- Add Python and Git: Not part of base or base-devel and are listed for
Ubuntu.
2026-01-19 12:04:17 +01:00
Andrew Kaster
f71b909bed CMake+CI: Use the same preset names on every platform
Starting with CMake 3.30 and CMakePresets version 9, the include field
supports interesting macro expansions. We can now define platform
specific presets in separate files and include them in the top-level
CMakePresets.json, while keeping the same preset names across all
platforms. This avoids some preset explosion at the cost of some mostly
empty json files for each unix platform.

The CMake minimum required in the top-level and Lagom CMakeLists.txt
have not been adjusted in this patch, as that would have the effect of
changing the default policy versions and is a bit out of scope.
2026-01-17 12:18:46 -07:00
R-Goc
aa6b588c97 Meta: Document Windows build
This updates the documentation for the state of the Windows build.
2026-01-16 11:15:16 -07:00
Jacob M Hunter
51114d12fb Documentation: Fix typos in build instructions 2025-12-29 09:02:34 -05:00
usebeforefree
89870f82ba Docs: Add libtool as a linux void build dependency 2025-12-06 13:08:29 -05:00
Zaggy1024
9f44fcbded Everywhere: Remove AudioCodecPlugin and Qt Multimedia
These are no longer needed now that audio is played through
PlaybackManager.
2025-10-27 17:28:49 -07:00
Undefine
865699066e Documentation: Add libdrm to FreeBSD packages 2025-10-22 13:54:54 +02:00
Rocco Corsi
12bb266bf2 Documentation: Add libtool to openSUSE dependencies
Provide help with out-of-date openSUSE packages.

Update the libpulse-devel and qt6-multimedia-devel instructions
when dynamic linking errors are encountered.
2025-09-28 21:30:34 -04:00
Rocco Corsi
1ecb78897f Documentation: Add 'libtool' & 'perl-Time-Piece` to fedora dependencies 2025-09-28 11:26:10 -04:00
Tim Ledbetter
e1e7007707 Documentation: Add libtool as a dependency on Ubuntu 2025-09-26 13:45:45 +01:00
InvalidUsernameException
a975988f9c Meta: Update vcpkg baseline 2025-09-25 21:14:29 -04:00
Viktor Szépe
1c01e183b7 Everywhere: Fix even more typos 2025-08-27 08:48:01 +02:00
Sam Atkins
437062819b Documentation: Note libdrm-devel requirement on Fedora 2025-08-19 12:49:51 +02:00
rmg-x
82dd8d4dd5 Documentation: Add libdrm-dev to Ubuntu/Debian build instructions 2025-08-19 11:43:51 +01:00
Undefine
9d26caf0d5 Documentation: Add build instructions for FreeBSD 2025-07-15 13:44:54 -06:00
Olekoop
a70fade461 Documentation: Remove metions about Android port not working 2025-07-10 15:44:53 -06:00
Rocco Corsi
f882c446cb Documentation: Update missing distribution packages for building
Ubuntu missing: python3-venv
Fedora missing: git
Manjaro OK
OpenSUSE missing: git and libpulse-devel
2025-07-04 15:58:36 +01:00
Timothy Flynn
9a5b31ccd1 LibWebView+Tests+UI: Migrate headless-browser to test-web
Now that headless mode is built into the main Ladybird executable, the
headless-browser's only purpose is to run tests. So let's move it to the
testing directory and rename it to test-web (a la test-js / test-wasm).
2025-06-10 12:04:59 -04:00
Timothy Flynn
7ce88eb4cd Everywhere: Document use of ladybird.py over ladybird.sh 2025-05-29 16:24:17 -04:00
Timothy Flynn
3d0fdaacff Meta: Migrate find_compiler.sh logic to a python script
This will allow us to re-use this logic from within other python
scripts. The find_compiler.sh script still exists, as it is used by
some other bash scripts. The pick_host_compiler() function will now
execute find_compiler.py and store its result in $CC and $CXX.

Note that the python script supports Windows.
2025-05-29 16:24:17 -04:00
Andrew Kaster
096bd2369a Documentation: Remove instructions for OpenIndiana
No one has tried to build Ladybird on this Solaris fork since the
fork, and it doesn't have any vcpkg support.
2025-05-14 22:15:40 +01:00
Andrew Kaster
cd06939325 Documentation: Remove instructions for Haiku
No one has tried to build Ladybird on Haiku since the
fork, and it doesn't have any vcpkg support.
2025-05-14 22:15:40 +01:00
Timothy Flynn
70d2b0b6f3 CI: Update the Clang pipeline to Clang 20 2025-05-14 02:01:59 -06:00
Timothy Flynn
a65bbae4c9 CI: Update the GCC pipeline to GCC 14
Although GCC 15 is released, it is not available on Ubuntu 22.04 LTS via
the ubuntu-toolchain-r/test PPA.
2025-05-14 02:01:59 -06:00
Timothy Flynn
6fc7483757 Documentation: Bump OpenIndiana's clang version
Clang 19 seems to be the newest available:
https://pkg.openindiana.org/hipster/en/search.shtml?token=clang&action=Search

It also looks like they have newer versions of GCC now, but let's just
advise clang on this system that no contributer is using.
2025-05-14 02:01:59 -06:00
Timothy Flynn
0e4a2f760f Documentation: Refer to specific compiler versions in fewer places
The required and recommended compiler versions are sort of scattered
across several documents. Let's list them in a single document, and
have other documents refer to that location.

The language here intentionally recommends the same compiler versions
used in CI. The find_compiler.sh script can be updated with the
minimum known good version.
2025-05-14 02:01:59 -06:00
Andrew Kaster
c0f0f45b6e Documentation: Add clang-tools to the Ubuntu/Debian build instructions
When using non-BFD linkers, something about our CMake setup causes
visibility checks from GenerateExportHeader to fail when clang-scan-deps
is not found.
2025-05-12 10:40:43 -06:00
Andrew Kaster
3c8515a1a1 Documentation: Add patchelf as a dependency for on Fedora
The provided patchelf from vcpkg is only version 0.14.3, which is too
old to produce working binaries on Fedora 42. Using that old version
causes hard to debug issues where applications segfault during startup.
2025-05-08 03:21:15 -06:00
Jess
897c83cbcb Docs: Link the external Nix devshell 2025-05-03 16:40:50 +01:00
Ali Mohammad Pur
fac2ee4452 Meta: Add a link job pool with a configurable size
Parallel linking (esp. with bfd) uses a huge chunk of memory, make it
possible for users to limit the number of link jobs to at least
limit the pain.
2025-04-08 14:01:28 +02:00
Jelle Raaijmakers
685cc1aae8 Everywhere: Remove Nix build support
A significant portion of reported build problems come from people trying
to build Ladybird with Nix, and it seems there's always something broken
for someone. The maintainers are currently not focused on supporting
Nix, and as a result PRs are not reviewed as well as they could have
been.

This removes all Nix-related files.
2025-03-24 17:22:08 +00:00
Andrew Kaster
ddcd48d12e Documentation: Update build instructions to remove -GXcode suggestion
Also some other assorted docs cleanup.
2025-03-19 20:42:16 -04:00
Timothy Flynn
3af63bc5a3 Everywhere: Replace miscellaneous references to the chrome process 2025-03-15 19:57:27 -04:00
InvalidUsernameException
d0f80e1f05 Docs: Add note about Android port being broken 2025-03-10 12:58:42 -06:00
Timothy Flynn
2ec97b4548 Meta: Update to clang-19 in CI and build instructions 2024-12-28 05:39:32 -08:00
Jess
61fcccb104 Flake: Add and run formatter + Rename devshell
Add a formatter output to the flake (`nix fmt`), along with moving +
renaming the devshell so it will work by running `nix-shell` in the root
of the project.
2024-12-18 15:15:42 +00:00
mkljczk
0b2fe008a3 Docs: Add perl-lib to build prerequisites for Fedora 2024-12-10 10:36:29 -08:00
Jess
f4cc9c6426 Docs: Update Nixos build instructions 2024-12-01 13:27:59 -05:00
Timothy Flynn
db47cc41f8 Everywhere: Move the Ladybird folder to UI 2024-11-10 12:50:45 +01:00