#! build configuration surface for `brolang build` (v0). #! #! a project's `build.bro` imports this module and declares a top-level constant #! named `config` of type `BuildConfig`. `brolang build [root]` type-checks #! build.bro, reads the config, and writes root/build/name. #! #! declarative and literal-only: one executable per build. list fields take an #! address-of an array literal (`&["raylib"]`) and default to empty. BuildConfig :: struct { name []u8 # output executable name under root/build source []u8 # program package directory, relative to build.bro libraries [][]u8 = &[] # library names to link (-l) lib_paths [][]u8 = &[] # library search directories (-L) includes [][]u8 = &[] # C include directories (-I) defines [][]u8 = &[] # C preprocessor defines (name or name=value) links [][]u8 = &[] # extra linker inputs (object/source files, -framework pairs) }