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
+8 -9
View File
@@ -1,3 +1,6 @@
cmake_minimum_required(VERSION 3.31)
project(ld C ASM)
file(GLOB c_sources *.c *.h)
file(GLOB arch_sources arch/${CMAKE_SYSTEM_PROCESSOR}/*.S)
@@ -7,9 +10,11 @@ set_target_properties(ld PROPERTIES
OUTPUT_NAME "ld64"
SUFFIX ".so")
set(libc_deps
libc-core.a libc-malloc.a libc-io.a)
target_link_libraries(ld
libc-core libc-malloc libc-io libmagenta librosetta libxpc-static
interface::fs)
"$<LINK_GROUP:cross_refs,${libc_deps}>"
libmagenta.a librosetta.a -l:libxpc.a)
target_compile_options(ld PRIVATE
-fvisibility=hidden
@@ -19,10 +24,4 @@ target_link_options(ld PRIVATE
# -Wl,--entry="_ld_start"
-T ${CMAKE_CURRENT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/layout.ld
-fPIC -nostdlib -ffreestanding -Wl,-shared)
sysroot_add_program(
NAME ld
BIN_DIR /lib)
bsp_add_program(
NAME ld
BIN_DIR /lib)
install(TARGETS ld DESTINATION lib)
+23
View File
@@ -0,0 +1,23 @@
[seed]
name = 'ld'
[dependency]
no_standard_dependencies = true
seeds = [
'libc-core',
'libc-malloc',
'libc-io',
'libc-headers',
'libxpc-static',
'libmagenta',
'librosetta',
'librosetta-interface',
]
[build]
build_system = 'cmake'
[install]
prefix = "/"
# vim: ft=toml