meta: replace cmake mono-build system with a custom build co-ordinator

every system component now has its own self-contained build system, and a
seed file describing the component and its build system and dependencies.

a new tool, meadow, collects and uses these seed files to build the
components into a full system. meadow also manages the target system root
and a host prefix where toolchain tools are installed to.

the build system has also been updated to use a new $ARCH-rosetta-gcc
compiler, and the patches files necessary to build it have been
added to toolchain/cross-compiler.
This commit is contained in:
2026-07-19 13:34:32 +01:00
parent 59034be9e6
commit 1ec33767ab
104 changed files with 7111 additions and 257 deletions
+11 -6
View File
@@ -1,15 +1,19 @@
cmake_minimum_required(VERSION 3.31)
project(bootstrap C ASM)
file(GLOB c_sources *.c *.h)
file(GLOB arch_sources arch/${CMAKE_SYSTEM_PROCESSOR}/*.S)
add_executable(bootstrap ${c_sources} ${arch_sources})
set(static_deps
magenta rosetta
libc-core.a libc-malloc.a libc-io.a
libfs.a
liblaunch.a
libxpc.a)
target_link_libraries(bootstrap
libmagenta librosetta
libc-core libc-malloc libc-pthread
libfs-static
liblaunch-static
libxpc-static
interface::fs)
"$<LINK_GROUP:cross_refs,${static_deps}>")
target_compile_options(bootstrap PRIVATE
-fno-stack-protector -nostdlib -ffreestanding -fno-PIC)
@@ -17,3 +21,4 @@ target_link_options(bootstrap PRIVATE
-static -nostdlib -ffreestanding)
set_target_properties(bootstrap PROPERTIES POSITIION_INDEPENDENT_CODE FALSE)
install(TARGETS bootstrap DESTINATION boot)
+24
View File
@@ -0,0 +1,24 @@
[seed]
name = 'bootstrap'
[dependency]
no_standard_dependencies = true
seeds = [
'libmagenta',
'librosetta',
'libc-core',
'libc-malloc',
'libc-pthread',
'libfs-static',
'liblaunch-static',
'libxpc-static',
'librosetta-interface',
]
[build]
build_system = 'cmake'
[install]
prefix = "/"
# vim: ft=toml