ciabatta/src/library.json

101 lines
2.3 KiB
JSON

// Manifest file for the ciabatta build.
// Platform sections describe available platforms and
// which files they need to include to function
// API sections describe API subsets and their TinyRT
// dependencies. If an API requires TinyRT module that
// isn't implemented by the platform that API won't be included
// in the final build
// This file is used to auto-generate ciabatta.c
// `include` section specifies the header files that ciabatta
// implements
// `platform` sections describe platforms, the directories
// where the source code for these platforms resides and the
// files that should be included in the build for that platform
// (relative to "src" dir) as well as the location of TinyRT
// implementation.
// `api` sections describe modules, where the implementation resides,
// the source files and the TinyRT modules, on which this module
// depends. If the platform doesn't implement one of the dependencies
// this module will not be included in the final build
includes: [
"stdlib.h",
"stdio.h",
"cia-mem.h",
],
platforms: [
{
name: "linux",
path: "linux",
includes: [
"syscall.c",
"entry.c"
],
tinyrt: [
"tinyrt.c"
]
},
{
name: "windows",
path: "windows",
includes: [
"windows.c"
],
tinyrt: [
"tinyrt.c",
"cia-init.c"
],
},
],
apis: [
{
name: "cia_memory",
path: "impl/cia-mem",
includes: [
"util.c",
"allocator.c",
"arena.c",
"pool.c",
],
reqs: [
"rt_api_memory"
]
},
{
name: "stdlib_program",
path: "impl/stdlib-program",
includes: [
"program.c",
],
reqs: [
"rt_api_program",
"cia_memory",
]
},
{
name: "stdlib_file",
path: "impl/stdlib-file",
includes: [
"file.c"
],
reqs: [
"rt_api_file",
"cia_memory",
]
}
],
// Edit this part for a particular build you want
// this contains list of "name" properties for modules
// in the "apis" section
export: [
"cia_memory",
"stdlib_program",
"stdlib_file",
]