Template
44 lines
1.5 KiB
KDL
44 lines
1.5 KiB
KDL
/* stupid.kdl - the canonical stupidtools build file (todo 9 fixture).
|
|
|
|
Pins the stupidtools DSL grammar (enforced by src/kdl/schema.h):
|
|
|
|
project "name" version "semver" required, MUST be the first node
|
|
target "name" { src "file" ... ; feature "name" ... }
|
|
feature "name" { <checks> } checks: structural until todo 10
|
|
option "name" default=#bool default is an optional bool property
|
|
|
|
This is the VALID fixture for tests/unit/test_schema.c and is reused by
|
|
todo 16 (configure generation) and todo 23 (self-host), so it is
|
|
representative of a real build file, not a minimal toy. */
|
|
|
|
// The project node: the name is the first positional argument; the
|
|
// version string follows the literal `version` keyword.
|
|
project "stupidtools" version "1.0.0"
|
|
|
|
// Features bundle the checks a target depends on. `header` and `library`
|
|
// are two of the 8 check kinds (todo 10 defines them all); here they are
|
|
// structural placeholders.
|
|
feature "pthread" {
|
|
header "pthread.h"
|
|
library "pthread"
|
|
}
|
|
|
|
feature "math" {
|
|
library "m"
|
|
}
|
|
|
|
// A target: the sources that make up one artifact, plus the features it
|
|
// needs at build/link time.
|
|
target "default" {
|
|
src "src/main.c"
|
|
src "src/cli.c"
|
|
src "src/kdl/lexer.c"
|
|
src "src/kdl/parser.c"
|
|
feature "pthread"
|
|
feature "math"
|
|
}
|
|
|
|
// An option maps to --enable-debug / --disable-debug; `default` is an
|
|
// optional boolean property (unannotated #true/#false only).
|
|
option "debug" default=#false
|