Meta: Remove Meta/Lagom
This commit is contained in:
parent
7f3cb3efb6
commit
b29d3622af
2 changed files with 0 additions and 48 deletions
5
Meta/Lagom/.gitignore
vendored
5
Meta/Lagom/.gitignore
vendored
|
|
@ -1,5 +0,0 @@
|
|||
liblagom.a
|
||||
CMakeCache.txt
|
||||
CMakeFiles
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
# Lagom
|
||||
|
||||
The Serenity C++ libraries, for other Operating Systems.
|
||||
|
||||
## About
|
||||
|
||||
If you want to bring the comfortable Serenity classes with you to another system, look no further. This is basically a "port" of the `AK` and `LibCore` libraries to generic \*nix systems.
|
||||
|
||||
*Lagom* is a Swedish word that means "just the right amount." ([Wikipedia](https://en.wikipedia.org/wiki/Lagom))
|
||||
|
||||
Lagom is used by the Serenity project in the following ways:
|
||||
|
||||
- [Build tools](./Tools) required to build Serenity itself using Serenity's own C++ libraries are in Lagom.
|
||||
- [Unit tests](../../Documentation/Testing.md) in CI are built using the Lagom build for host systems to ensure portability.
|
||||
- [Continuous fuzzing](#fuzzing-on-oss-fuzz) is done with the help of OSS-fuzz using the Lagom build.
|
||||
- [The Ladybird browser](../../README.md) uses Lagom to provide LibWeb and LibJS for non-Serenity systems.
|
||||
- [ECMA 262 spec tests](https://ladybirdbrowser.github.io/libjs-website/test262) for LibJS are run per-commit and tracked on [LibJS website](https://ladybirdbrowser.github.io/libjs-website/).
|
||||
- [Wasm spec tests](https://ladybirdbrowser.github.io/libjs-website/wasm) for LibWasm are run per-commit and tracked on [LibJS website](https://ladybirdbrowser.github.io/libjs-website/).
|
||||
|
||||
## Using Lagom in an External Project
|
||||
It is possible to use Lagom for your own projects outside of Serenity too!
|
||||
|
||||
An example of this in use can be found in the [LibJS test262 runner](https://github.com/SerenityOS/libjs-test262).
|
||||
|
||||
To implement this yourself:
|
||||
- Download a copy of [SerenityOS/libjs-test262/cmake/FetchLagom.cmake](https://github.com/SerenityOS/libjs-test262/blob/7832c333c1504eecf1c5f9e4247aa6b34a52a3be/cmake/FetchLagom.cmake) and place it wherever you wish
|
||||
- In your root `CMakeLists.txt`, add the following commands:
|
||||
```cmake
|
||||
include(FetchContent)
|
||||
include(cmake/FetchLagom.cmake) # If you've placed the file downloaded above differently, be sure to reflect that in this command :^)
|
||||
```
|
||||
- In addition, you will need to also add some compile options that Serenity uses to ensure no warnings or errors:
|
||||
```cmake
|
||||
add_compile_options(-Wno-literal-suffix) # AK::StringView defines operator""sv, which GCC complains does not have an underscore.
|
||||
add_compile_options(-fno-gnu-keywords) # JS::Value has a method named typeof, which also happens to be a GNU keyword.
|
||||
```
|
||||
|
||||
Now, you can link against Lagom libraries.
|
||||
|
||||
Things to keep in mind:
|
||||
- You should prefer to use a library's `Lagom::` alias when linking
|
||||
- Example: `Lagom::Core` vs `LibCore`
|
||||
- If your application has name clashes with any names in AK, you may have to define `USING_AK_GLOBALLY=0` for the files that have visibility to both sets of headers.
|
||||
Loading…
Reference in a new issue