Merge Go frontend (apiserver + xcecli) into meson build

This commit is contained in:
Rongsong Shen 2026-04-14 11:20:17 +08:00
parent 43dc12a36c
commit c9dc8c4676
205 changed files with 30793 additions and 328 deletions

30
src/lib/CLAUDE.md Normal file
View file

@ -0,0 +1,30 @@
# XCE Shared Library (libxce)
## Overview
Shared C library providing common utilities, data structures, and IPC primitives used by the controller, worker, and scheduler daemons.
## Build
```bash
# From workspace root
nix develop
meson build && ninja -C build
```
## Architecture
- Produces `libxce.a` (static) and/or `libxce.so` (shared)
- Linked by all C/C++ system components: controller, worker, scheduler
- Public headers exposed via `src/include/xce/`
- Test suite in `src/lib/testsuite/`
## Conventions
- C standard: C99 or later
- Format with `clang-format` (config at repo root if present)
- All public API headers go in `src/include/xce/` — not in `src/lib/`
- Implementation files stay in `src/lib/`
## Key Files
- `src/include/xce/` — Public header files consumed by all components
- `src/lib/testsuite/` — Library unit tests
## See Also
- Root guidelines: `/workspace/CLAUDE.md`

View file

@ -1,11 +1,13 @@
capnp = find_program('capnp')
packcc = find_program('packcc')
schema_dir = meson.current_source_dir() / '..' / 'schema'
gen_srcs = custom_target(
'controllercapnp.[ch]',
output:['controller.capnp.c', 'controller.capnp.h'],
input: '../schema/controller.capnp',
command: [capnp, 'compile','-o' ,'c:lib', '-I', '../schema','--src-prefix', '../schema', '@INPUT@']
command: [capnp, 'compile','-o' ,'c:lib', '-I', schema_dir, '--src-prefix', schema_dir, '@INPUT@']
)
section_parser = custom_target(