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 -16
View File
@@ -1,17 +1,9 @@
rosetta_add_misc_service(
NAME bshell-test
CFG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/bshell-test.service)
cmake_minimum_required(VERSION 3.31)
project(bshell-test)
rosetta_service_add_file(
NAME bshell-test
SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/test.bshell
DEST_DIR /sbin)
sysroot_add_service(
NAME bshell-test
BIN_DIR /usr/bin
SVC_DIR /etc/herdd/services)
bsp_add_service(
NAME bshell-test
BIN_DIR /usr/bin
SVC_DIR /etc/herdd/services)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/bshell-test.service
DESTINATION etc/herdd/services)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/test.bshell
DESTINATION sbin)
+12
View File
@@ -0,0 +1,12 @@
[seed]
name = 'bshell-test'
[build]
build_system = 'cmake'
[install]
prefix = "/"
'/etc/herdd/services' = [ 'bshell-test.service' ]
'/sbin' = [ 'test.bshell' ]
# vim: ft=toml
+6 -14
View File
@@ -1,15 +1,7 @@
file(GLOB sources *.c)
rosetta_add_service(
NAME devmd
SOURCES ${sources}
CFG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/devmd.service)
target_link_libraries(devmd libc libc-runtime)
cmake_minimum_required(VERSION 3.31)
project(devmd C)
sysroot_add_service(
NAME devmd
BIN_DIR /usr/bin
SVC_DIR /etc/herdd/services)
bsp_add_service(
NAME devmd
BIN_DIR /usr/bin
SVC_DIR /etc/herdd/services)
file(GLOB sources *.c)
add_executable(devmd ${sources})
target_link_libraries(devmd c -l:crt0.o)
install(TARGETS devmd)
+10
View File
@@ -0,0 +1,10 @@
[seed]
name = 'devmd'
[build]
build_system = 'cmake'
[install]
"/etc/herdd/services" = [ 'src:devmd.service' ]
# vim: ft=toml
+6 -8
View File
@@ -1,13 +1,11 @@
cmake_minimum_required(VERSION 3.31)
project(herdd C)
file(GLOB sources *.c)
add_executable(herdd ${sources})
target_link_libraries(herdd
libc libc-runtime
libmagenta libpthread liblaunch librosetta
c -l:crt0.o
magenta pthread launch rosetta
fx.runtime fx.collections fx.serial)
sysroot_add_program(
NAME herdd
BIN_DIR /usr/bin)
bsp_add_program(
NAME herdd
BIN_DIR /usr/bin)
install(TARGETS herdd)
+15
View File
@@ -0,0 +1,15 @@
[seed]
name = 'herdd'
[dependency]
seeds = [
'liblaunch',
'librosetta',
'libfx'
]
[build]
build_system = 'cmake'
watch_files = [ 'src:*.c', 'src:*.h' ]
# vim: ft=toml
+6 -14
View File
@@ -1,15 +1,7 @@
file(GLOB sources *.c)
rosetta_add_service(
NAME nsd
SOURCES ${sources}
CFG_FILE ${CMAKE_CURRENT_SOURCE_DIR}/nsd.service)
target_link_libraries(nsd libc libc-runtime)
cmake_minimum_required(VERSION 3.31)
project(nsd C)
sysroot_add_service(
NAME nsd
BIN_DIR /usr/bin
SVC_DIR /etc/herdd/services)
bsp_add_service(
NAME nsd
BIN_DIR /usr/bin
SVC_DIR /etc/herdd/services)
file(GLOB sources *.c)
add_executable(nsd ${sources})
target_link_libraries(nsd c -l:crt0.o)
install(TARGETS nsd)
+10
View File
@@ -0,0 +1,10 @@
[seed]
name = 'nsd'
[build]
build_system = 'cmake'
[install]
"/etc/herdd/services" = [ 'src:nsd.service' ]
# vim: ft=toml
+15
View File
@@ -0,0 +1,15 @@
[seed]
name = 'herdd-targets'
[dependency]
no_standard_dependencies = true
[build]
build_system = 'source-only'
build_for = 'target'
watch_files = [ 'src:*.target' ]
[install]
"/etc/herdd/targets" = [ 'src:*.target' ]
# vim: ft=toml