Commit graph

602 commits

Author SHA1 Message Date
Andrew Kaster
53f4e98818 Documentation: Re-organize and update build instructions
Add CMake 3.25 download instructions from apt.kitware.org, and add
option to grab gcc-13 from ubuntu-toolchain-r/test PPA.
2024-07-15 10:15:40 +02:00
sideshowbarker
6d097a1aa9 Documentation: Add how-to for building a Debug binary 2024-07-11 11:06:08 -06:00
Jess
dba448799d Meta: Docs: Update Nix dev-shell commands 2024-07-10 10:19:43 -06:00
Timothy Flynn
2a36fd2aed Documentation: List nasm as a required package
This is required for libavif.
2024-07-09 20:08:38 -04:00
sideshowbarker
322b088505 Documentation: Add how-to for building with homebrew clang on macOS 2024-07-09 04:41:42 -06:00
sideshowbarker
b832837106 Meta: Add .clangd config file (with project-recommended defaults)
This change also removes parts of the existing docs that explain how to
create a .clangd file with the project-recommended  defaults. (Those
docs are no longer necessary — since this change adds a .clangd file to
the repo, containing those same defaults).
2024-07-09 04:40:52 -06:00
Andrew Kaster
22d7aa53fa Meta: Tell vcpkg we don't need to build vulkan-loader
Trying to build VulkanLoader from source is a giant headache of
unnecessary packages. Every modern distro has vulkan packages, let's
depend on those instead of trying to build something for both wayland
and X11.
2024-07-07 09:51:29 -06:00
Jörg Strebel
1140c965cd Documentation: Extend openSUSE Leap build instructions 2024-07-06 15:51:58 -06:00
lalitrn44
eaf2384f1c Documentation: Add new dependencies libx11-dev libxrandr-dev 2024-07-06 14:50:10 -06:00
Diego
84acd1138c Documentation: Add nvim-lspconfig support to Neovim config guide
`nvim-lspconfig` has become more popular recently and is from the
Neovim organization directly. Headers have also been shifted to match
other documentation files.
2024-07-05 10:11:53 -06:00
Dario Castañé
be26cc106c Documentation: Update BuildInstructionsLadybird.md for openSUSE
Adding packages that are required to compile without errors
2024-07-05 07:15:29 +02:00
Aliaksandr Kalenik
830b287c46 Everywhere: Remove GPU painter and AccelGfx
GPU painter that uses AccelGfx is slower and way less complete compared
to both default Gfx::Painter and Skia painter. It does not make much
sense to keep it, considering Skia painter already uses Metal backend on
macOS by default and there is an option to enable GPU-accelerated
backend on linux.
2024-07-04 14:47:02 +02:00
Kemal Zebari
9dd14c6a7f Documentation: Remove LibGUI mention in VSCode configuration
Since this fork no longer supports LibGUI, we should not mention
it here to avoid confusion from contributors who aren't familiar
with SerenityOS.
2024-07-04 14:46:46 +02:00
mendhak
24651233b0 Documentation: Add missing libssl dependency for Ubuntu 2024-07-04 14:46:28 +02:00
Jason Fairchild
afaaa23c70 Documentation: Add automake as dependency on Arch, Fedora and openSUSE 2024-07-03 23:26:04 -06:00
Daeraxa
cf64118821 Documentation: Add libavcodec-free-devel for Fedora build 2024-07-03 20:06:13 -06:00
Andrew Kaster
d220cf3abd CMake: Add a command for codesigning with the get-task-allow entitlement
This allows developers on macOS to open Ladybird.app in Instruments.

Add some documentation for how to use the command as well. It is enabled
automatically when CMAKE_BUILD_TYPE is not Release or RelWithDebInfo.
2024-07-02 16:57:51 -06:00
Harm133
09f76098b0 Documentation: Fix dead link in Qt creator page 2024-07-01 21:15:22 -04:00
lalitrn44
2248ea1ae3 Documentation: Add steps to install clang 2024-07-01 10:15:58 -06:00
Zaggy1024
81001b37ce LibMedia: Use FFmpeg to decode more video formats
VP9 continues to function, but this also allows AV1 to be decoded. With
this commit, H.264 is still non-functional, as the decoder requires
some extra initial data from the track definition in the Matroska file.
2024-06-24 12:41:32 -06:00
Timothy Flynn
9220a89d2f CI+LibUnicode: Remove the UCD from the system 2024-06-22 14:56:39 +02:00
ryan gibbons
1a9dbd28e5 Documentation: Add pkg-config to homebrew deps 2024-06-21 11:40:15 -06:00
Alec Murphy
6957b87ac2 Documentation: Add missing required Fedora package
Same as with #117, this package is required for building on Fedora.
2024-06-09 21:05:50 -04:00
Matthew Olsson
37a5fedcd6 Documentation: Add missing required Arch package 2024-06-09 15:55:50 +01:00
Andreas Kling
c096608dd9 Meta: Update for GitHub org rename to LadybirdBrowser 2024-06-09 13:02:56 +02:00
Diego
5f66e31e56 CI+Documentation: Use WABT version 1.0.35
Required for `wast2json` to work with latest spec-tests.
2024-06-09 12:16:17 +02:00
Timothy Flynn
221507c567 LibLocale: Install ICU package and link into LibLocale
Rather than removing LibLocale entirely, we will use it as a wrapper
around ICU (which has some C-like interfaces, and uses UTF-16 for its
string types). Using ICU will provide better web compatibility overall,
and will let us implement features we were previously unable to (e.g.
Intl.Collator requires data that is not in the JSON export of the CLDR).
2024-06-09 10:47:28 +02:00
Andrew Kaster
9f25dc6b09 CMake+CI: Remove BUILD_LAGOM=OFF option in favor of LAGOM_TOOLS_ONLY=ON
The far more common configuration for Ladybird is to always build the
Lagom libraries.
2024-06-08 07:58:11 +02:00
Alexander Rigbo
33cfa8f5a6 Documentation: Add new dependencies for vcpkg 2024-06-07 09:49:29 +02:00
Simon Wanner
da8ad13510 Documentation: Add some fonts to required packages
Sometimes, especially on WSL, no fonts are installed, which will fail
`VERIFY(m_default_font)` in Ladybird/FontPlugin.

Note that Liberation Sans does not provide fonts for `cursive` and
`fantasy`, which will fall back to the default, sans-serif, font.

To cover all generic font families Microsoft's "Core fonts for the Web"
are available as `ttf-mscorefonts-installer`, `ttf-ms-fonts`, etc.
2024-06-07 09:42:50 +02:00
Andrew Kaster
4f406b0d1d Documentation: Update RunningTests to refer to CMakePresets 2024-06-06 10:09:46 -06:00
Andrew Kaster
1d502dfd7c Documentation: Update IDE docs to reference CMakePresets.json 2024-06-06 10:09:46 -06:00
Andrew Kaster
b9fb075419 Documentation: Add two new FAQ entries for independence and Windows 2024-06-06 17:44:37 +02:00
xnacly
f0aa378dab Documentation: Remove links to outdated guides 2024-06-05 13:05:30 -04:00
Andrew Kaster
f234429392 Documentation: Update Build instructions for new and removed features
Removed options, the fact that the CMakePresests.json exists, etc.
2024-06-05 12:23:54 -04:00
Andrew Kaster
c6e9f0e7b5 Meta+Documentation: Switch default build dir to Build/Ladybird
Also prefer using the new top-level CMakeLists.txt
2024-06-04 13:44:22 -06:00
Vroumm
23428c0b9a Documentation: Remove unnecessary newline in documentation
The commit removes an unnecessary newline character in the
documentation that was breaking the bold formatting.
2024-06-04 11:23:29 -06:00
Federico Guerinoni
337e1caa02 Documentation: Fix name in QtCreator documentation
I'll leave the change of variable `__serenity__` in another PR, also
code need to be changed.
2024-06-04 11:22:36 -06:00
Andreas Kling
f2fd8fc928 Everywhere: Remove LibGemini
This hasn't been maintained (or worked at all) for a long time,
and it's not a widely supported protocol, so let's drop it.
2024-06-04 09:19:39 +02:00
Timothy Flynn
126cbce632 Meta: Remove empty LibSystem library and references 2024-06-04 07:45:42 +02:00
Federico Guerinoni
0e02279b5d Documentation: Update instruction for building with QtCreator 2024-06-03 13:19:00 -06:00
Timothy Flynn
bdbe2fdcc5 Everywhere: Replace SERENITY_SOURCE_DIR with LADYBIRD_SOURCE_DIR
In order to have checkouts of both SerenityOS and Ladybird, we need to
use a different environment variable for Ladybird.
2024-06-03 15:57:59 +02:00
Andrew Kaster
9dd24991a8 Documentation: Remove references to serenity.sh and its build configs
Build/lagom only now.
2024-06-03 10:53:53 +02:00
Tim Ledbetter
1a4fbfe495 Everywhere: Remove references to the kernel 2024-06-03 10:53:53 +02:00
Tim Ledbetter
d147ed8549 Meta: Remove references to LibC 2024-06-03 10:53:53 +02:00
Tim Ledbetter
3e56835611 Everywhere: Remove references to non-existent paths 2024-06-03 10:53:53 +02:00
Tim Ledbetter
f3a0e16ae9 Meta: Remove non-existent documentation links 2024-06-03 10:53:53 +02:00
Andrew Kaster
6d3a54e4a8 Meta: Update Documentation and CI for repo move 2024-06-03 10:53:53 +02:00
Andrew Kaster
dd1fbd3513 Meta: Remove SerenityOS components not needed for Ladybird 2024-06-03 10:53:53 +02:00
Gurkirat Singh
e444b0aace Toolchain+Docs: Improve the way to enable clangd
Allowing an environment variable to enable/disable the build for clangd
and other toolchains will improve the developer-experience than
reconfiguring and building the toolchain manually.

Now you will have to call the command as following
	$ CLANG_ENABLE_CLANGD=ON Toolchain/BuildClang.sh
2024-05-23 00:54:20 -06:00
Timothy Flynn
b4af851c74 Meta: Update gcc version requirement to 13+
The project can no longer be compiled with gcc-12.
2024-05-17 15:40:07 -06:00
Timothy Flynn
0d7ea1bd2f CI: Remove the Sonar Cloud and PVS Studio workflow
Static analysis is great, but these workflows have not worked in a long
time, and no one was looking at the results. Our PVS Studio license and
our Sonar Cloud token have expired. Remove the workflows (at least for
now) so we don't waste CI runners and cache space. If someone is
motivated to revive these, they can revert this commit.
2024-05-11 15:43:18 -04:00
Timothy Flynn
1c20865d79 Meta: Remove outdated Azure link
We no longer use Azure for any pipeline.
2024-05-11 15:43:18 -04:00
Andreas Kling
76df5ae030 Meta: Update Clang version requirement to 17+ 2024-05-10 19:53:15 +02:00
Liav A.
897b5dfe8b Documentation+Base: Remove old remainders of RAM disk support
We don't support such configuration for a very long time, so there's no
point of keeping references to that feature.
2024-05-07 17:02:09 -06:00
Andrew Kaster
6d72d02d7e Documentation: Describe how to use add_libweb_test.py for Text tests 2024-05-07 16:29:19 -06:00
Andrew Kaster
77e890b15e Meta+Documentation+Ports: Move from C++20 to C++23
Now that oss-fuzz is on a clang commit > the 17.x release candidates,
we can start looking at some shiny new features to enable.
2024-05-06 11:46:28 -06:00
Andrew Kaster
68ec099b66 Ladybird: Update Android build to work with current LibWebView/LibCore
Also update to the latest gradle plugin versions and other dependencies
as recommended by Android Studio Jellyfish.
2024-05-06 09:31:32 -06:00
Timothy Flynn
823fdb83db Meta: Switch to clang-format-18 as the standard formatter 2024-04-24 16:50:01 -04:00
Andrew Kaster
2e385e4c12 CI: Bump Lagom CI builds to gcc-13 and clang-18
This includes Lagom Tools for Serenity builds, and the Lagom builds on
Azure.
2024-04-23 15:37:07 -06:00
Andrew Kaster
e5415f6d86 Documentation: Add more specific instructions on how to use the GN build 2024-04-08 18:49:41 -06:00
RGBCube
720feaa658 nix: Clean up files, use good practices 2024-03-25 14:19:34 -06:00
Andrew Kaster
c83e50af0b Documentation: Update for the removal of SERENITY_SOURCE_DIR requirement 2024-02-26 13:16:27 -07:00
Kemal Zebari
7fbc8bf719 Documentation: Recommend using clangd for code formatting in VSCode
Turns out clangd supports code formatting using the clang-format
engine. Because we also document another code formatter to install,
when users use both extensions VSCode will ask to choose one or the
other. Therefore, let's just choose clangd for code formatting since
it is needed anyways for code comprehension.
2024-02-24 16:45:41 -07:00
Kenneth Myhra
babddc24c2 Documentation: Add 'python3-packaging' to additional dependency list
The 'python3-packaging' depedency is required to build the GLib port
after version 2.79.0.
2024-02-07 15:04:21 +01:00
Andrew Kaster
713698d2ca Documentation: Recommend disabling clangd's IncludeCleaner feature 2024-02-05 08:04:24 -07:00
Brad Parbs
b2bb7d919d Documentation: Update link to Default.css in LibWeb docs 2024-01-31 12:34:16 -05:00
kleines Filmröllchen
3a9278b31c Documentation: Add guidelines for writing manual pages
Based on current consensus and the way our manpages are written.
2024-01-29 05:30:30 -07:00
kleines Filmröllchen
63de4d3ada Documentation: Expand package manager FAQ with pkg info
Explain a bit about what pkg is and what it isn't, and clarify that
while Serenity kinda-sorta has the beginnings of a "package manager",
it's not exactly like a typical Linux package manager with binary
software.
2024-01-06 05:01:35 -07:00
Ali Mohammad Pur
5e1499d104 Everywhere: Rename {Deprecated => Byte}String
This commit un-deprecates DeprecatedString, and repurposes it as a byte
string.
As the null state has already been removed, there are no other
particularly hairy blockers in repurposing this type as a byte string
(what it _really_ is).

This commit is auto-generated:
  $ xs=$(ack -l \bDeprecatedString\b\|deprecated_string AK Userland \
    Meta Ports Ladybird Tests Kernel)
  $ perl -pie 's/\bDeprecatedString\b/ByteString/g;
    s/deprecated_string/byte_string/g' $xs
  $ clang-format --style=file -i \
    $(git diff --name-only | grep \.cpp\|\.h)
  $ gn format $(git ls-files '*.gn' '*.gni')
2023-12-17 18:25:10 +03:30
Sönke Holz
ec06c47c06 Documentation: Correct IPC socket path in Browser/ProcessArchitecture.md 2023-12-09 08:37:32 +00:00
Andrew Kaster
08cacea7d5 Documentation: Begin document on execution and navigation in LibWeb 2023-12-04 12:01:25 -07:00
networkException
b95e7772e7 Documentation: Improve nix related commands
This patch fixes `nix develop` commands not using proper paths, uses
the serenity root directory as an assumption for all commands and
adds variants of nix commands to use a custom entry point, for example
a shell.
2023-12-04 08:03:29 +00:00
Timothy Flynn
08572d45b8 Documentation: Change macOS Ladybird command to launch in the foreground
Also add flags to direct stdout/stderr to the terminal, and show how to
pass arguments to the browser.
2023-11-17 19:14:53 +01:00
Valtteri Koskivuori
427ca284f1 Documentation: Update Helix editor documentation
Helix 23.10 made breaking changes to the way lsp configuration works, so
update documentation to reflect the new structure.
2023-11-15 06:49:48 -05:00
Timothy Flynn
bbdd624d50 Ladybird: Do not require Qt6 Multimedia if PulseAudio is available
If PulseAudio is available, the Qt6 audio plugin will never be used. So
let's remove it from the build.

Note that on macOS, the Qt6 audio plugin will be used if the Qt chrome
is enabled. Otherwise, Audio Unit will be used for the AppKit chrome.
2023-11-04 08:36:34 -04:00
Andrew Kaster
49d21619d4 CMake: Use a helper file to find GL and EGL in a platform agnostic way
Also add a flag to turn off accelerated graphics entirely.
2023-10-31 02:32:58 -06:00
Andrew Kaster
4dbb73b360 Meta+Documentation+Ladybird: Update places that use ladybird filename
Fallout from 01feae24b2

These places referred to the filename "ladybird" directly, but we
changed the OUTPUT_NAME of ladybird to "Ladybird".
2023-10-27 07:11:35 +02:00
Dan Klishch
8b49bdb724 Meta+Documentation: Restore links to LibJS website
This partially reverts dacf7265 and 67ca5d65.
2023-10-27 07:08:57 +02:00
Emanuele Torre
f92f571019 Documentation: SerenityOS' => SerenityOS's in Patterns.md
This is the only instance of `*OS's` in the repo that does not use `s`
after the apostrophe.
Generally, the saxon genitive for singular nouns is always written as
`'s` even if they end in `s`.
2023-10-26 15:45:50 -06:00
Timothy Flynn
1682e46df9 Ladybird+Meta: Make the AppKit chrome the default on macOS
The Qt chrome is still available and may be enabled with CMake.
2023-10-26 11:00:56 +02:00
Tim Schumacher
b91d03c2b8 Meta: Don't pass ^C through the serial console on CI
`-serial mon:stdio` passes through all kinds of key combinations,
`-serial stdio` doesn't. This probably isn't something that we want
while running tests or CI, so switch to the non-passing variant.

aarch64 actually failed to run due to this, since it already had
`-serial stdio` in its arguments, causing a conflict. This is why that
entry is now gone entirely.
2023-10-24 13:45:55 +02:00
Tim Schumacher
acc0fb7a47 Meta: Manually redirect CI serial output to stdout
`-nographic` additionally reconfigures the Terminal, which clears the
previous scrollback and (ocasionally) breaks line wrapping. This is
probably not something that we want, so only ask for the redirection
behavior.
2023-10-24 11:27:20 +02:00
Andrew Duerig
67ca5d6572 Meta: Update libjs.dev links to test262.fyi 2023-10-24 07:32:19 +02:00
Tim Ledbetter
d054116012 Documentation: Replace TRY() example in Patterns.md
The `Menubar::add_menu()` call used in the previous code snippet no
longer returns `ErrorOr`, which defeats the purpose of the example.
2023-09-29 14:05:46 +01:00
Daniel Bertalan
715f452233 Documentation: Hide Meta/serenity.sh rebuild-toolchain
Unless a new toolchain update has been merged, users should not need to
rebuild their toolchain. Yet, the first thing they see in the build
documentation is to run `Meta/serenity.sh rebuild-toolchain`, which
might incorrectly lead them to use it whenever they encounter an error.
This is a waste of time and causes frustration.

Move any mentions of this option to `Troubleshooting.md` and add a note
to `BuildInstructions.md` about the toolchain build being a one-time
endeavor.
2023-09-18 11:13:23 -06:00
Andrew Kaster
f9f5c5a3a9 Documentation: Add prerequisites for Android build 2023-09-17 19:22:29 -06:00
nipos
2c9bf5b935 Documentation: Add Ladybird build instructions for Haiku 2023-09-17 13:38:12 -06:00
Andrew Kaster
78ebeb6a5a Ladybird/Android: Move gradle files to Ladybird/Android directory
And add documentation for how to use the thing
2023-09-15 14:18:52 -06:00
Ali Caglayan
0347d04289 Ladybird: Add ladybird.nix to nix flake in Toolchain/
Add another dev shell to `Toolchain/flake.nix` called `ladybird.nix`
that pulls in the dependencies for building Ladybird.

Also update the documentation to mention building with a flake.
2023-09-09 11:22:00 -06:00
James Williams
6ab11e5f44 Documentation: Correct link to flake.nix in BuildInstructionsOther.md 2023-09-09 08:35:05 -06:00
falkdavid
4a83771a75 Documentation: Fix ladybird executable path 2023-09-06 21:09:13 +02:00
Andrew Kaster
3216cc34a6 Documentation: Remove outdated Android build docs
We'll add new docs once the new build has been tested by enough folks
:^)
2023-09-03 11:38:51 +02:00
Ali Caglayan
f46b393d2d Toolchain: Add Toolchain/nix-profiles/ to .gitignore
Let users save their nix develop derivation in a profile by ignoring
this specific folder. It encourages the following workflow:

```
nix develop Toolchain/ --profile Toolchain/nix-profiles/dev
```

Which stops the dev enviornment being collected in the nix store. Later
devs can come back and do:

```
nix develop Toolchain/nix-profiles/dev
```

To continue where they left off, without having to download everything
from nixpkgs again.
2023-09-01 11:52:04 +02:00
Ali Caglayan
47e0ea8e42 Toolchain: Add nix flake
Add a nix flake to `Toolchain/` that wraps the existing nix derivation
`Toolchain/serenity.nix`. This also comes with a lockfile making the nix
developer enviornment setup more reproducible.

We also update the documentation for "other builds" to mention the
flake.
2023-09-01 11:52:04 +02:00
Timothy Flynn
5d7e73adfe Meta: Add and document convenient method to build non-Qt Ladybird chrome
This lets us switch between the AppKit and Qt chromes more easily.
2023-08-27 19:02:36 -04:00
Daniel Bertalan
075ce53d14 AK: Fix Clang 18 -Wdeprecated-literal-operator warning
The proper syntax for defining user-defined literals does not require a
space between the `operator""` token and the operator name:

> error: identifier 'sv' preceded by whitespace in a literal operator
>        declaration is deprecated
2023-08-19 11:07:12 +02:00
kleines Filmröllchen
096cecb95e Everywhere: Add RISC-V 64 target to the build system
This is a minimal set of changes to allow `serenity.sh build riscv64` to
successfully generate the build environment and start building. This
includes some, but not all, assembly stubs that will be needed later on;
they are currently empty.
2023-08-18 08:37:43 -06:00
Federico Zotti
d250f8fc3e Documentation: Add dependencies for alpine linux
- Add qemu-audio-pa for the audio driver
- Change qemu i386 with x86_64
- Mention fuse2fs for building.
2023-08-18 15:54:39 +02:00
Maxim Solovyov
55edfe5c3c Documentation: Remove qemu-system-x86 from explicit dependencies on Arch
The qemu-system-x86 package is a dependency of the qemu-desktop package
both on Arch and Manjaro Linux so there is no need to install it
explicitly.
2023-08-18 10:20:25 +02:00