summaryrefslogtreecommitdiff
path: root/Meta/CMake
AgeCommit message (Collapse)Author
2023-05-30Meta: Update cacert.pemFabian Dellwing
2023-05-29LibWeb: Add preliminary support for CSS animationsAli Mohammad Pur
This partially implements CSS-Animations-1 (though there are references to CSS-Animations-2). Current limitations: - Multi-selector keyframes are not supported. - Most animation properties are ignored. - Timing functions are not applied. - Non-absolute values are not interpolated unless the target is also of the same non-absolute type (e.g. 10% -> 25%, but not 10% -> 20px). - The JavaScript interface is left as an exercise for the next poor soul looking at this code. With those said, this commit implements: - Interpolation for most common types - Proper keyframe resolution (including the synthetic from-keyframe containing the initial state) - Properly driven animations, and proper style invalidation Co-Authored-By: Andreas Kling <kling@serenityos.org>
2023-05-21AK: Add `SPICE_AGENT_DEBUG` flagCaoimhe
2023-05-17LibCompress: Add a lot of debug logging to LZMATim Schumacher
2023-05-16Meta: Copy GML source files to serenity installKarol Kosek
We already install C++ source files to allow debugging applications in HackStudio. Installing GML files can make editing application widgets a bit faster and easier, as you no longer need to copy files to the system. :^)
2023-05-14Meta: Remove unused debug flags, add missing GENERATE_DEBUGBen Wiederhake
Commands that were helpful while investigating this: ``` grep -P '^set' Meta/CMake/all_the_debug_macros.cmake \ | sed -Ee 's,set\((.+) ON\)$,\1,' > macros.lst for i in $(cat macros.lst); do echo -n "$i "; git grep -Pn '\b'"$i"'\b' | wc -l done | tee matches.lst sort -k2 -n matches.lst ```
2023-05-14Meta: Enable DWARF 5 debug informationMacDue
For our use case DWARF 5 seems to work fine now (see previous commit)
2023-05-02Everywhere: Make Lagom build with GCC 13Daniel Bertalan
GCC 13 was released on 2023-04-26. This commit fixes Lagom build errors when using an updated host toolchain: - Adds a workaround for a bug in constraint handling, which made LibJS fail to compile: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109683 - Silences the new `-Wdangling-reference` diagnostic globally. It produces multiple false positives with no clear way to silence them without `#pragmas`. - Silences `-Wself-move` in `RefPtr` tests as GCC 13 adds this previously Clang-exclusive warning.
2023-04-26LibWasm: Start implementing WASIAli Mohammad Pur
This commit starts adding support for WASI, along with the framework to implement all the functions (though only a couple are currently implemented).
2023-04-23LibThreading: Create WorkerThread class run a single task concurrentlyZaggy1024
This class can be used to run a task in another thread, and allows the caller to wait for the task to complete to retrieve any error that may have occurred. Currently, it doesn't support functions returning a value on success, but with some template magic that should be possible. :^)
2023-04-18Meta: Move more common flags to common_compile_options.cmakeNico Weber
For the most part no behavior change, except that we now pass -Wno-implicit-const-int-float-conversion and -Wno-literal-suffix only to clang and gcc each in both lagom and serenity builds, while we previously passed them to both in lagom builds (and passed them to one each in serenity builds). The former is a clang flag, the latter a gcc flag, but since we also use -Wno-unknown-warning-option it doesn't really matter.
2023-04-17Meta: Move some flags to common_compile_options.cmakeNico Weber
No behavior change.
2023-04-13LibLocale: Update to CLDR version 43.0.0Timothy Flynn
https://cldr.unicode.org/index/downloads/cldr-43
2023-04-07LibTimeZone: Update to TZDB version 2023cTimothy Flynn
https://mm.icann.org/pipermail/tz-announce/2023-March/000079.html
2023-03-28Meta: Diable Wshorten-64-to-32 explicitly to silence Xcode defaultsAndrew Kaster
Xcode will set this by default when creating a new project unless we set an xcode property to disable it. Instead of doing that, disable it globally.
2023-03-26LibTimeZone: Update to TZDB version 2023bTimothy Flynn
https://mm.icann.org/pipermail/tz-announce/2023-March/000078.html
2023-03-25Kernel: Add support for Intel HDAJelle Raaijmakers
This is an implementation that tries to follow the spec as closely as possible, and works with Qemu's Intel HDA and some bare metal HDA controllers out there. Compiling with `INTEL_HDA_DEBUG=on` will provide a lot of detailed information that could help us getting this to work on more bare metal controllers as well :^) Output format is limited to `i16` samples for now.
2023-03-21Everywhere: Use `LibFileSystem` where trivialCameron Youell
2023-03-20Meta: Don't install CA certificates during a on-Serenity buildTim Schumacher
`SERENITYOS` is also set when compiling Lagom on SerenityOS, so we can't just check it and expect `CMAKE_STAGING_PREFIX` to be set. Instead, check `CMAKE_STAGING_PREFIX` directly and use that as an indicator for whether we can install a file there.
2023-03-19Meta: Use extract_tar_path for WASM spec test generationkleines Filmröllchen
2023-03-19Meta: Refactor FLAC spec test extraction with extract_tar_pathkleines Filmröllchen
2023-03-19Meta: Add a tar extraction CMake wrapperkleines Filmröllchen
This is a copy of the zip wrapper adopted for tar archives.
2023-03-17LibGfx/OpenType: Add some initial support for GPOS glyph positioningAndreas Kling
This patch parses enough of GPOS tables to be able to support the kerning information embedded in Inter. Since that specific font only applies positioning offsets to the first glyph in each pair, I was able to get away with not changing our API. Once we start adding support for more sophisticated positioning, we'll need to be able to communicate more than a simple "kerning offset" to the clients of this code.
2023-03-16Meta: Download cacert.pem at build timeFabian Dellwing
2023-03-15LibWeb: Support generating IDL namespacesTimothy Flynn
These are similar to prototypes and constructors in that they will now be lazily instantiated when they are first requested.
2023-03-07LibWeb: Support interfaces with the [Global] extended attributeLinus Groh
These are treated differently as the interface members are placed on the object itself, not its prototype. As the object itself still needs to be hand-written code, and we can no longer fully hide the gnarly generated code in the prototype object, these now generate a 'mixin' class that is added to the actual object through inheritance. https://webidl.spec.whatwg.org/#Global
2023-03-04LibCMake: Introduce a CMake lexerSam Atkins
2023-03-01LibGfx+LibUnicode: Support specifying the path to search for emojiTimothy Flynn
Similar to the FontDatabase, this will be needed for Ladybird to find emoji images. We now generate just the file name of emoji image in LibUnicode, and look for that file in the specified path (defaulting to /res/emoji) at runtime.
2023-02-24LibUnicode: Generate the path to emoji images alongside emoji dataTimothy Flynn
This will provide for quicker emoji lookups, rather than having to discover and allocate these paths at runtime before we find out if they even exist.
2023-02-24LibGfx: Add scaffolding for a webp decoderNico Weber
At the moment, this processes the RIFF chunk structure and extracts the ICCP chunk, so that `icc` can now print ICC profiles embedded in webp files. (And are image files really more than containers of icc profiles?) It doesn't even decode image dimensions yet. The lossy format is a VP8 video frame. Once we get to that, we might want to move all the image decoders into a new LibImageDecoders that depends on both LibGfx and LibVideo. (Other newer image formats like heic and av1f also use video frames for image data.)
2023-02-18LibGfx: Rename `JPGLoader` to `JPEGLoader`Lucas CHOLLET
The patch also contains modifications on several classes, functions or files that are related to the `JPGLoader`. Renaming include: - JPGLoader{.h, .cpp} - JPGImageDecoderPlugin - JPGLoadingContext - JPG_DEBUG - decode_jpg - FuzzJPGLoader.cpp - Few string literals or texts
2023-02-15CMake: Add -mstrict-align flag to compile options for aarch64 buildTimon Kruiper
The aarch64 processor is set up to trap on unaligned memory accesses, so to enforce that the compiler correctly generates aligned accesses, the -mstrict-align flag is needed. We also need the -Wno-cast-align as there are some files in AK that don't build without the flag.
2023-02-13Shell: Start implementing a POSIX-compliant parserAli Mohammad Pur
The parser is still very much a work-in-progress, but it can currently parse most of the basic bits, the only *completely* unimplemented things in the parser are: - heredocs (io_here) - alias expansion - arithmetic expansion There are a whole suite of bugs, and syntax highlighting is unreliable at best. For now, this is not attached anywhere, a future commit will enable it for /bin/sh or a `Shell --posix` invocation.
2023-02-04CMake: Don't require to install glapi.h to systemKarol Kosek
This failed when a current build configuration hadn't got any program depending on LibGL.
2023-02-02CMake: Set DWARF version before the debug information levelTim Schumacher
Setting the DWARF version after having selected which level of debug information to generate apparently undoes some settings again. Doing the reverse apparently keeps both the version and the debug level setting, resulting in a significantly smaller disk image size.
2023-01-19Meta: Use existing test-sources lists for Lagom instead of globbingSam Atkins
...mostly. This creates and uses an override for the `serenity_test()` function, so that Lagom can make use of the existing `Tests/LibFoo/CMakeLists.txt` files instead of having to GLOB for test source files and manually copy any data files. Some GLOBs remain but this is most of them. Co-authored-by: Andrew Kaster <akaster@serenityos.org>
2023-01-18LibUnicode: Parse and generate case folding code point dataTimothy Flynn
Case folding rules have a similar mapping style as special casing rules, where one code point may map to zero or more case folding rules. These will be used for case-insensitive string comparisons. To see how case folding can differ from other casing rules, consider "ß" (U+00DF): >>> "ß".lower() 'ß' >>> "ß".upper() 'SS' >>> "ß".title() 'Ss' >>> "ß".casefold() 'ss'
2023-01-10LibWeb: Generate dedicated methods to create Web constructors/prototypesTimothy Flynn
Currently, for each exposed interface, we generate one massive function to create every Web constructor and prototype. In an effort to lazily create these instead, this first step is to extract the creation of each of these into its own method. First, this generates a forwarding header for all IDL types. This is to allow callers to remain unchanged without forcing them to include the (very heavy) generated IDL headers. This header is included by LibWeb's forwarding header. Next, this defines a base template method on Web::Bindings::Intrinsics to create a prototype/constructor pair. Specializations of this template are now generated in a new .cpp file, IntrinsicDefinitions.cpp. The base Intrinsics class is updated to use this new method, and will continue to cache the result. Last, some WebAssembly classes are updated to use this new mechanism. They were using some ad hoc cache keys that are now in line with the generated specializations. That one massive function is still used to invoke these specializations, so they are not lazy as of this commit.
2023-01-08Kernel: Remove the NE2000 PCI network adapter driverLiav A
Nobody tests this network card as the person who added it, Jean-Baptiste Boric (known as boricj) is not an active contributor in the project now. After a discussion with him on the Discord server, we agreed it's for the best to remove the driver, as for two reasons: - The original author (boricj) agreed to do this, stating that he will not be able to test the driver anymore after his Athlon XP machine is no longer supported after the removal of the i686 port. - It was agreed that the NE2000 network card family is far from the ideal hardware we would want to support, similarly to the RTL8139 that got removed recently for almost the same reason.
2023-01-07Kernel: Remove the RTL8139 PCI network adapter driverLiav A
Nobody tests this network card, and the driver has bugs (see the issue https://github.com/SerenityOS/serenity/issues/10198 for more details), so it's almost certain that this happened due to code being rotting when there's simply no testing of it. Essentially this has been determined to be dead-code so this is the most important reason to drop this code. Another good reason to do so is because the RTL8139 only supports Fast Ethernet connections (10/100 Megabits per second), and is considered obsolete even for bare metal setups.
2022-12-28Meta: Force compilation with DWARF revision 4Liav A
We currently don't support DWARF revision 5 and LLVM/Clang might create such debug info into our binaries in x86_64, which will lead to a crash in CrashReporter that is unable to parse that information correctly.
2022-12-25Lagom: Add option to build Ladybird as part of a Lagom buildAndrew Kaster
This means that Ladybird can be built with either Meta/Lagom or Ladybird as the top-level source directory. This setup is a bit awkward, but will preserve the packaging story for Ladybird until we come up with a more permanent solution.
2022-12-24Meta: Move UCD/CLDR/TZDB downloaded artifacts to Build/cachesTimothy Flynn
They currently reside under Build/<arch>, meaning that they would be redownloaded for each architecture/toolchain build combo. Move them to a location that can be re-used for all builds.
2022-12-21CMake: Fall back to the Web Archive when downloading filesTim Schumacher
2022-12-20LibUnicode: Use www.unicode.org domain to download emoji-test.txtTimothy Flynn
The non-www domain does not appear to be available now. We use the www domain for UCD.zip already. Co-authored-by: Stephan Unverwerth <s.unverwerth@serenityos.org>
2022-12-20LibGL: Generate the API wrappersJelle Raaijmakers
We now generate all LibGL API wrappers from a single API method definition list stored in `GLAPI.json`. Since a significant portion of the OpenGL API methods are relatively consistent variants, we take advantage of this to generate a lot of these variants at once. The autogenerated methods check for the non-nullness of the current `GLContext`, and only perform an action if a `GLContext` is present. This prevents a crash in ports like GLTron, who assume you can still call the OpenGL API without an active context. This increases our API wrapper method count from 211 to 356. Fixes #15814.
2022-12-14Meta+CMake: Extract Wasm spec tests into the binary directoryAndrew Kaster
Clean up the Wasm spec tests CMake rules to extract and compile the wat files into wasm files in the LibWasm binary directory instead of its source directory. Also make the rules more robust to missing host tools, and use more CMake install rules for the test files rather than relying on build-root-filesystem.sh. Add some FIXMEs for later, we really shouldn't be doing installation of test files into /home/anon at the build-root-filesystem stage in $CURRENT_YEAR. Tests go in /usr/Tests
2022-12-14CMake: Pass NO_POLICY_SCOPE to options cmake helpersAndrew Kaster
Tell CMake to not create a new policy scope for the (lagom|serenity|common)_options.cmake helpers, and lets us set common policies for both projects in common_options.cmake that actually apply to the rest of the project, instead of just common_options.cmake itself.
2022-12-13Lagom: Don't compile with `-fPIC` on WIN32Filiph Siitam Sandström
2022-12-13LibTimeZone: Update to TZDB version 2022gTimothy Flynn
https://mm.icann.org/pipermail/tz-announce/2022-November/000076.html