# 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 compiles the program package it names. # # Declarative and literal-only: one executable per build. List fields take an # address-of an array literal (`&["raylib"]`); empty lists are written `&[]`. BuildConfig :: struct { name []u8 # output executable name 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) }