summaryrefslogtreecommitdiff
path: root/Meta/CMake
AgeCommit message (Collapse)Author
2022-03-24LibWeb: Rename PARSER_DEBUG => HTML_PARSER_DEBUGIdan Horowitz
Since this macro was created we gained a couple more parsers in the system :^)
2022-03-24CMake: Add serenity_lib_staticLenny Maiorani
2022-03-20Everywhere: Move commonmark.spec.json to /home/anon/TestsBrian Gianforcaro
2022-03-19Meta: Error out on find_program errors with CMake less than 3.18Brian Gianforcaro
We have seen some cases where the build fails for folks, and they are missing unzip/tar/gzip etc. We can catch some of these in CMake itself, so lets make sure to handle that uniformly across the build system. The REQUIRED flag to `find_program` was only added on in CMake 3.18 and above, so we can't rely on that to actually halt the program execution.
2022-03-19CMake: Modify include path when building from Hack StudioItamar
With regular builds, the generated IPC headers exist inside the Build directory. The path Userland/Services under the build directory is added to the include path. For in-system builds the IPC headers are installed at /usr/include/. To support this, we add /usr/include/Userland/Services to the build path when building from Hack Studio. Co-Authored-By: Andrew Kaster <akaster@serenityos.org>
2022-03-19CMake: Install generated IPC headers under /usr/include in compile_ipc()Itamar
Generated IPC headers are now installed under /usr/include in the system's filesystem image.
2022-03-17LibTimeZone: Update to TZDB version 2022aTimothy Flynn
https://mm.icann.org/pipermail/tz-announce/2022-March/000070.html
2022-03-08Meta: Read MAKEJOBS to limit jobs for ninja in serenity.shdavidot
The default behavior of using all cores will still apply if no MAKEJOBS variable is supplied.
2022-03-04LibWeb: Hide some debug logging behind CANVAS_RENDERING_CONTEXT_2D_DEBUGLinus Groh
This can be quite noisy and isn't generally useful information.
2022-02-17LibWeb: Add partially functioning Worker APIBen Abraham
Add a partial implementation of HTML5 Worker API. Messages can be sent from the inner context externally.
2022-02-16LibUnicode: Extract the BCP 47 package from the CLDRTimothy Flynn
This package was originally meant to be included in CLDR version 40, but was missed in their release scripts. This has been resolved: https://unicode-org.atlassian.net/browse/CLDR-15158 Unfortunately, the CLDR was re-released with the same version number. So to bust the build's CLDR cache, change the "version" used to detect that we need to redownload the CLDR.
2022-02-15Meta+LibUnicode: Download and parse Unicode block propertiesthankyouverycool
This parses Blocks.txt for CharacterType properties and creates a global display array for use in apps.
2022-02-09LibTLS+RequestServer: Add an option to dump TLS keys to a log fileAli Mohammad Pur
This file allows us to decrypt TLS messages in wireshark, which can help immensely in debugging network stuff :^)
2022-02-06LibWeb: Put ResolvedCSSStyleDeclaration debug spam behind a macroAndreas Kling
Blowing up the debug console with a fajillion FIXME's whenever you navigate in the web inspector is no fun.
2022-02-03LibTimeZone: Parse and generate time zone coordinate dataTimothy Flynn
2022-01-31LibUnicode: Download and parse {Grapheme,Word,Sentence} break propsIdan Horowitz
2022-01-29Kernel: Stop using HashMap in MutexIdan Horowitz
This commit removes the usage of HashMap in Mutex, thereby making Mutex be allocation-free. In order to achieve this several simplifications were made to Mutex, removing unused code-paths and extra VERIFYs: * We no longer support 'upgrading' a shared lock holder to an exclusive holder when it is the only shared holder and it did not unlock the lock before relocking it as exclusive. NOTE: Unlike the rest of these changes, this scenario is not VERIFY-able in an allocation-free way, as a result the new LOCK_SHARED_UPGRADE_DEBUG debug flag was added, this flag lets Mutex allocate in order to detect such cases when debugging a deadlock. * We no longer support checking if a Mutex is locked by the current thread when the Mutex was not locked exclusively, the shared version of this check was not used anywhere. * We no longer support force unlocking/relocking a Mutex if the Mutex was not locked exclusively, the shared version of these functions was not used anywhere.
2022-01-27LibUnicode: Create a nearly empty generator for relative-time formattingTimothy Flynn
This sets up the generator plumbing to create the relative-time data files. This data could probably be included in the date-time generator, but that generator is large enough that I'd rather put this tangentially related data in its own file.
2022-01-26LibEDID: Do not check if ${PNP_IDS_EXPORT_PATH} exists in pnp_ids.cmakeTimothy Flynn
This check isn't needed because download_file() will check if it exists already before doing the download. Worse, it would prevent the generator target from being defined if the file existed, which then made CMake not realize the generated files were important and delete them.
2022-01-26LibEDID: Rename the downloaded PNP IDs fileTimothy Flynn
After fixing the CMake file to use the correct paths, users may have had to manually remove the existing downloaded pnp.ids.html for CMake to re- run the generator. So this change renames the downloaded file to pnp_ids.html to ensure everyone picks up that change without manual intervention.
2022-01-26LibEDID: Use correct paths for LibEDID generated filesTimothy Flynn
Code generators that generate their files for both Lagom and Serenity have a blob in their CMake file like this: set(TIME_ZONE_DATA_HEADER LibTimeZone/TimeZoneData.h) set(TIME_ZONE_DATA_IMPLEMENTATION LibTimeZone/TimeZoneData.cpp) set(TIME_ZONE_META_TARGET_PREFIX LibTimeZone_) if (CMAKE_CURRENT_BINARY_DIR MATCHES ".*/LibTimeZone") # Serenity build. set(TIME_ZONE_DATA_HEADER TimeZoneData.h) set(TIME_ZONE_DATA_IMPLEMENTATION TimeZoneData.cpp) set(TIME_ZONE_META_TARGET_PREFIX "") endif() LibEDID generates files only for Serenity, but was using the Lagom build version of the _HEADER, _IMPLEMENTATION, and _PREFIX variables. Thus if pnp_ids.cmake was ever touched, the following error would be raised: Userland/Libraries/LibEDID/EDID.cpp:18:18: fatal error: LibEDID/PnpIDs.h: No such file or directory 18 | # include <LibEDID/LibEDID/PnpIDs.h> Use the Serenity paths in pnp_ids.cmake and in the #include within LibEDID itself.
2022-01-26Meta: Download PNP ID data with fallible download functionTimothy Flynn
2022-01-26Meta: Download TZDB data with fallible download functionTimothy Flynn
2022-01-26Meta: Download UCD and CLDR data with fallible download functionTimothy Flynn
2022-01-26Meta: Add a CMake function to download remote files during the buildTimothy Flynn
This function will handle download failures. It doesn't support hashing for integrity yet, but if the download times out or otherwise fails, the build itself will fail. But default, file(DOWNLOAD) in CMake doesn't fail the build; we must pass in and check a STATUS variable.
2022-01-26Meta: Correct the PNP ID download conditionAli Mohammad Pur
`PNP_IDS_PATH` does not exist, set this to `PNP_IDS_EXPORT_PATH` to avoid redownloading the database every reconfigure.
2022-01-24Toolchain: Add support for building the userland with the mold linkerDaniel Bertalan
This commit adds support for building the SerenityOS userland with the new [mold linker]. This is not enabled by default yet; to link using mold, run the `Toolchain/BuildMold.sh` script to build the latest release of mold, and set the `ENABLE_MOLD_LINKER` CMake variable to ON. This option relies on toolchain support that has been added just recently, so you might need to rebuild your toolchain for mold to work. [mold linker]: https://github.com/rui314/mold
2022-01-23Meta+LibEDID: Download and generate the PNP ID databaseTom
This downloads the UEFI's published PNP ID database and generates a lookup table for use in LibEDID. The lookup table isn't optimized at all, but this can be easily done at a later point if needed.
2022-01-23LibHTTP+AK: Rename CNETWORKJOB_DEBUG to NETWORKJOB_DEBUGNico Weber
2022-01-23LibHTTP+AK: Rename CHTTPJOB_DEBUG to HTTPJOB_DEBUGNico Weber
2022-01-22RequestServer+AK: Move happy-path logging behind REQUESTSERVER_DEBUGNico Weber
vdbgln() was responsible for ~10% of samples on pv's flamegraph for RequestServer (under request_did_finish) when loading github.com in Browser and recording a whole-system profile. This makes that almost completely disappear.
2022-01-22Meta: Add JS_MODULE_DEBUG define flagdavidot
2022-01-12CMake: Add HACKSTUDIO_BUILD option for building from Hack StudioItamar
If this option is set, we will not build all components. Instead, we include an external CMake file passed in via a variable named HACKSTUDIO_BUILD_CMAKE_FILE. This will be used to build serenity components from Hack Studio.
2022-01-12LibUnicode: Parse number system digits from the CLDRTimothy Flynn
We had a hard-coded table of number system digits copied from ECMA-402. Turns out these digits are in the CLDR, so let's parse the digits from there instead of hard-coding them.
2022-01-10LibGUI+AK: Add DRAG_DEBUG opt and put drag operations behind dbgln_ifMarcus Nilsson
No need to have this enabled all the time.
2022-01-08LibTimeZone: Extract and parse the backwards compatibility LINK entriesTimothy Flynn
This set of LINK entries contains the link from "UTC" to "Etc/UTC", which LibJS will heavily depend upon.
2022-01-08LibTimeZone+Meta: Add plumbing for an IANA Time Zone Database generatorTimothy Flynn
The IANA Time Zone Database contains data needed, at least, for various JavaScript objects. This adds plumbing for a parser and code generator for this data. The generated data will be made available by LibTimeZone, much like how UCD and CLDR data is available through LibUnicode.
2022-01-08Meta: Move invoke_generator to utils.cmakeTimothy Flynn
2022-01-08Meta: Move remove_unicode_data_if_version_changed to utils.cmakeTimothy Flynn
This function will be used by the time zone database parser. Move it to the common utilities file, and rename it remove_path_if_version_changed to be more generic.
2022-01-08Meta: Redefine link_with_unicode_data to not include unicode_data.cmakeTimothy Flynn
This is to prevent an import cycle in a subsequent commit.
2022-01-07Everywhere: Fix spelling mistakesmjz19910
2022-01-01Kernel/NVMe: Add initial NVMe driver supportPankaj Raghav
Add a basic NVMe driver support to serenity based on NVMe spec 1.4. The driver can support multiple NVMe drives (subsystems). But in a NVMe drive, the driver can support one controller with multiple namespaces. Each core will get a separate NVMe Queue. As the system lacks MSI support, PIN based interrupts are used for IO. Tested the NVMe support by replacing IDE driver with the NVMe driver :^)
2021-12-30Meta: Add helper CMake function to link directly against LibUnicodeDataTimothy Flynn
Rather than each CMakeLists.txt needing to import unicode_data.cmake and check if Unicode data generation is enabled, add a helper method to do this.
2021-12-05Kernel: Stub out the SO_DEBUG SOL_SOCKET-level optionIdan Horowitz
2021-11-29LibUnicode: Parse and generate calendar (ca) Unicode keywordsTimothy Flynn
Also removes a few fly-by "StringView x = nullptr;" unnecessary initializers.
2021-11-29LibUnicode: Parse and generate regional hour cyclesTimothy Flynn
Unlike most data in the CLDR, hour cycles are not stored on a per-locale basis. Instead, they are keyed by a string that is usually a region, but sometimes is a locale. Therefore, given a locale, to determine the hour cycles for that locale, we: 1. Check if the locale itself is assigned hour cycles. 2. If the locale has a region, check if that region is assigned hour cycles. 3. Otherwise, maximize that locale, and if the maximized locale has a region, check if that region is assigned hour cycles. 4. If the above all fail, fallback to the "001" region. Further, each locale's default hour cycle is the first assigned hour cycle.
2021-11-29LibUnicode: Create a nearly empty generator for date-time formattingTimothy Flynn
Similar to number formatting, the data for date-time formatting will be located in its own generated file. This extracts the cldr-dates package from the CLDR and sets up the generator plumbing to create the date-time data files.
2021-11-28Kernel: Add AC97_DEBUG macroJelle Raaijmakers
2021-11-26CMake: Also install the source files of userland programsItamar
Previously, we only copied the source files of libraries to `/usr/src/serenity`. We now also install the source files of userland programs.
2021-11-26CMake: Simplify serenity_install_sources by inferring installation pathItamar
The serenity_install_sources function now infers the path under `/usr/src/serenity` in which to install the source files according to the relative path of the source files in the repository. For example `Userland/Libraries/LibGUI/Widget.h` gets installed at `/usr/src/serenity/Userland/Libraries/LibGUI/Widget.h`. This fixes cases where the source files of libraries are not under `Userland/Libraries` (for example LibShell & LibLanguageServer).