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
+38
View File
@@ -0,0 +1,38 @@
[seed]
name = 'bsp'
[build]
build_system = 'generic'
build_command = {
args = [
'root-src:toolchain/mkbsp/mkbsp',
'--preset',
'src:rosetta.preset',
'--sysroot',
'install:.',
'--out',
'bin:rosetta-system.bsp',
],
}
watch_files = [ 'install:**' ]
[dependency]
seeds = [
'ld',
'bshell',
'libc',
'libpthread',
'libfx',
'liblaunch',
'libfs',
'libxpc',
'herdd',
'herdd-targets',
'nsd',
'devmd',
]
[install]
"/boot" = [ 'bin:rosetta-system.bsp' ]
# vim: ft=toml
+8
View File
@@ -0,0 +1,8 @@
[bootstrap]
bootstrap_exec = '/boot/bootstrap'
[contents]
"/lib" = [ '/lib/ld64.so' ]
"/usr/bin" = [ '/usr/bin/herdd' ]
# vim: ft=toml
+16
View File
@@ -0,0 +1,16 @@
[contents]
"/usr/lib" = [
'/usr/lib/libc.so',
'/usr/lib/libpthread.so',
'/usr/lib/libfs.so',
'/usr/lib/libfx.runtime.so',
'/usr/lib/libfx.collections.so',
'/usr/lib/libfx.io.so',
'/usr/lib/libfx.serial.so',
'/usr/lib/libfx.term.so',
'/usr/lib/libfx.cmdline.so',
'/usr/lib/liblaunch.so',
'/usr/lib/libxpc.so',
]
# vim: ft=toml
+12
View File
@@ -0,0 +1,12 @@
[contents]
"/usr/bin" = [
'/usr/bin/devmd',
'/usr/bin/nsd',
]
"/etc/herdd/services" = [
'/etc/herdd/services/devmd.service',
'/etc/herdd/services/nsd.service',
]
# vim: ft=toml
+7
View File
@@ -0,0 +1,7 @@
[contents]
"/etc/herdd/targets" = [
'/etc/herdd/targets/minimal.target',
'/etc/herdd/targets/single-user.target',
]
# vim: ft=toml
+8
View File
@@ -0,0 +1,8 @@
[contents]
"/usr/bin" = [ '/usr/bin/bshell' ]
"/usr/lib" = [
'/usr/lib/libbshell.runtime.so',
'/usr/lib/libbshell.core.so',
]
# vim: ft=toml