serenity/Kernel
Andrew Kaster b5c98ede08 Meta: Switch to a SuperBuild that splits host and target builds
Replace the old logic where we would start with a host build, and swap
all the CMake compiler and target variables underneath it to trick
CMake into building for Serenity after we configured and built the Lagom
code generators.

The SuperBuild creates two ExternalProjects, one for Lagom and one for
Serenity. The Serenity project depends on the install stage for the
Lagom build. The SuperBuild also generates a CMakeToolchain file for the
Serenity build to use that replaces the old toolchain file that was only
used for Ports.

To ensure that code generators are rebuilt when core libraries such as
AK and LibCore are modified, developers will need to direct their manual
`ninja` invocations to the SuperBuild's binary directory instead of the
Serenity binary directory.

This commit includes warning coalescing and option style cleanup for the
affected CMakeLists in the Kernel, top level, and runtime support
libraries. A large part of the cleanup is replacing USE_CLANG_TOOLCHAIN
with the proper CMAKE_CXX_COMPILER_ID variable, which will no longer be
confused by a host clang compiler.
2021-09-15 19:04:52 +04:30
..
API Kernel+Userland: Introduce a new way to reboot and poweroff the machine 2021-09-12 11:52:16 +02:00
Arch Kernel: Move ACPI and BIOS code into the new Firmware directory 2021-09-12 11:52:16 +02:00
Bus Kernel: Move ACPI and BIOS code into the new Firmware directory 2021-09-12 11:52:16 +02:00
Devices Kernel: Move ACPI and BIOS code into the new Firmware directory 2021-09-12 11:52:16 +02:00
FileSystem Kernel/SysFS: Make it possible to have custom permissions for nodes 2021-09-12 11:52:16 +02:00
Firmware Kernel+Userland: Introduce a new way to reboot and poweroff the machine 2021-09-12 11:52:16 +02:00
Graphics Kernel/Devices: Defer creation of SysFS component after the constructor 2021-09-11 11:41:14 +02:00
Heap Kernel: Zero initialize SlabAllocator member variables 2021-09-12 16:36:52 +02:00
Interrupts Kernel: Move ACPI and BIOS code into the new Firmware directory 2021-09-12 11:52:16 +02:00
Library Kernel: Stop leaking TmpFS inodes 2021-09-07 22:16:25 +02:00
Locking Kernel: Disable lock rank enforcement by default for now 2021-09-14 18:31:16 +00:00
Memory Kernel: Fix off-by-one in Memory::is_user_range() check 2021-09-11 02:34:55 +02:00
Net AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
Prekernel Meta: Switch to a SuperBuild that splits host and target builds 2021-09-15 19:04:52 +04:30
Storage Kernel/Devices: Defer creation of SysFS component after the constructor 2021-09-11 11:41:14 +02:00
Syscalls Kernel+Userland: Introduce a new way to reboot and poweroff the machine 2021-09-12 11:52:16 +02:00
Tasks Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00
Time Kernel: Move ACPI and BIOS code into the new Firmware directory 2021-09-12 11:52:16 +02:00
TTY Kernel/Devices: Defer creation of SysFS component after the constructor 2021-09-11 11:41:14 +02:00
AddressSanitizer.cpp
AddressSanitizer.h
Assertions.h AK+Kernel: Print TODO when a TODO() is executed 2021-08-04 11:01:16 +02:00
AtomicEdgeAction.h Kernel: Add AtomicEdgeAction class 2021-07-07 21:57:01 +02:00
BootInfo.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
CMakeLists.txt Meta: Switch to a SuperBuild that splits host and target builds 2021-09-15 19:04:52 +04:30
CMOS.cpp
CMOS.h
CommandLine.cpp Kernel/CommandLine: Verify ACPI feature level cannot have invalid string 2021-09-10 22:01:23 +02:00
CommandLine.h Kernel: Use KString all the way in sys$execve() 2021-09-09 21:25:10 +02:00
ConsoleDevice.cpp Kernel/Devices: Defer creation of SysFS component after the constructor 2021-09-11 11:41:14 +02:00
ConsoleDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
Coredump.cpp Kernel: Use KString all the way in sys$execve() 2021-09-09 21:25:10 +02:00
Coredump.h Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
Debug.h.in Kernel: Disable lock rank enforcement by default for now 2021-09-14 18:31:16 +00:00
DoubleBuffer.cpp Kernel: Remove KBuffer::is_null() and bogus call sites :^) 2021-09-07 16:00:39 +02:00
DoubleBuffer.h Kernel: Make DoubleBuffer::try() return KResultOr 2021-09-07 13:53:14 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel: Rename DevFS => DevTmpFS 2021-09-08 00:42:20 +02:00
FutexQueue.cpp Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
FutexQueue.h Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
GlobalProcessExposed.cpp Kernel+Userland: Remove loadable kernel moduless 2021-09-11 19:05:00 +02:00
init.cpp Kernel: Unify BIOS and ACPI components in the SysFS firmware directory 2021-09-12 11:52:16 +02:00
IO.h Kernel: Specify I/O size for BMIDEChannel 2021-06-28 15:55:00 +02:00
KBuffer.h Kernel: Add KBuffer::bytes() and use it 2021-09-08 20:16:00 +02:00
KBufferBuilder.cpp AK+Kernel: Avoid unescaped control chars in append_escaped_for_json() 2021-09-13 14:38:53 +04:30
KBufferBuilder.h Kernel: Add KBuffer::bytes() and use it 2021-09-08 20:16:00 +02:00
KLexicalPath.cpp Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
KLexicalPath.h Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
kprintf.cpp Kernel: Add kernelearlyputstr and use it in dbgln in very-early boot 2021-09-10 22:58:08 +03:00
kstdio.h Kernel: Add kernelearlyputstr and use it in dbgln in very-early boot 2021-09-10 22:58:08 +03:00
KString.cpp Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
KString.h Kernel: Specialize Traits<(Nonnull)OwnPtr<T>> for KString 2021-09-13 14:38:53 +04:30
KSyms.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
KSyms.h Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
linker.ld Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
MiniStdLib.cpp Kernel: Build MiniStdLib.cpp in aarch64 builds 2021-09-07 20:15:15 +01:00
mkmap.sh Kernel: Use our toolchain's c++filt tool for the kernel map 2021-07-29 10:38:31 +02:00
Multiboot.h Prekernel: Export some multiboot parameters in our own BootInfo struct 2021-07-27 13:15:16 +02:00
Panic.cpp Kernel: Track when a thread is in the middle of crashing 2021-09-07 13:16:01 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Deduplicate signpost perf event strings 2021-09-13 14:38:53 +04:30
PerformanceEventBuffer.h Kernel: Deduplicate signpost perf event strings 2021-09-13 14:38:53 +04:30
PerformanceManager.h Kernel: Add syscall performance event type 2021-08-10 21:55:48 +02:00
PhysicalAddress.h Kernel: Move PhysicalPage classes out of the heap into an array 2021-07-08 11:43:34 +02:00
Process.cpp Kernel+Userland: Remove loadable kernel moduless 2021-09-11 19:05:00 +02:00
Process.h Kernel+Userland: Introduce a new way to reboot and poweroff the machine 2021-09-12 11:52:16 +02:00
ProcessExposed.cpp Kernel: Make it possible for KBufferBuilder creation to fail 2021-09-07 15:54:23 +02:00
ProcessExposed.h Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ProcessGroup.cpp Kernel: Use KResultOr better in ProcessGroup construction 2021-09-06 01:55:27 +02:00
ProcessGroup.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
ProcessProcFSTraits.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ProcessSpecificExposed.cpp Kernel: Make PerformanceEventBuffer::to_json() return a KResult 2021-09-07 22:16:25 +02:00
Random.cpp Kernel: Convert random bytes interface to use AK::Bytes 2021-09-01 18:06:14 +02:00
Random.h Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
RTC.cpp Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel/KCOV: Bring closer to typical SerenityOS coding style 2021-09-06 01:55:27 +02:00
Scheduler.cpp AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
Scheduler.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Sections.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
StdLib.cpp Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
StdLib.h Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
Syscall.cpp Kernel: Declare syscall handlers with "using" instead of "typedef" 2021-09-05 09:48:43 +01:00
Thread.cpp Kernel: Use AK::to_underlying in lock rank tracking 2021-09-12 18:24:15 +02:00
Thread.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
ThreadBlockers.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ThreadTracer.cpp Kernel: Remove unused header includes in root kernel tree 2021-07-11 21:37:38 +02:00
ThreadTracer.h Kernel: Use KResultOr and TRY() for ThreadTracer 2021-09-07 14:48:13 +02:00
TimerQueue.cpp Kernel: Remove a bunch of unused TimerQueue functions 2021-09-07 22:16:25 +02:00
TimerQueue.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
UBSanitizer.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
UserOrKernelBuffer.h Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
VirtualAddress.h Kernel: Make VirtualAddress methods constexpr 2021-08-25 12:12:59 +02:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WorkQueue.cpp Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00
WorkQueue.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00