Project Configuration Reference
Ceedling's project configuration is assembled from one or more sources and
merged into a single in-memory data structure before any build begins. The
base configuration comes from a YAML project file. That base can be extended
by Mixins — additional YAML files
merged in after the base is loaded. Mixins can be specified from the command
line, via environment variables, or from within the project file using the
:mixins: section listed below.
For the full details on how loading and merging work — including the search order for the default project file and all Mixin sources — see Loading Configuration. For the environment variables that influence configuration loading, see Environment Variables.
For conceptual overview and project file conventions, see Configuration.
Configuration sections
Each top-level key in your project YAML file corresponds to one configuration section. All sections are optional; Ceedling supplies defaults for anything left unset.
| Section | Description |
|---|---|
:project |
Build root, build modes, version info, and global project switches |
:mixins |
Load and merge additional YAML configuration files into the base project configuration |
:test_build |
Test-specific build options: assembly support, mock generation, preprocessor use, and more |
:release_build |
Release artifact build options and output settings |
:paths |
Source, test, include, support, library, and vendor path globs |
:files |
Explicit file inclusion and exclusion overrides |
:environment |
Set and export environment variables from within the project configuration |
:extension |
File extension strings for source, header, object, binary, and other file types |
:defines |
Per-context, per-file preprocessor symbol definitions |
:flags |
Compiler, linker, assembler, and preprocessor flags per build context |
:libraries |
Test and release libraries plus linker search paths |
:unity |
Unity test framework configuration (defines, helper file paths, etc.) |
:cmock |
CMock mock generation configuration |
:test_runner |
Test runner generation configuration |
:cexception |
CException configuration |
:plugins |
Enable built-in plugins and configure custom plugin load paths |
:tools |
Define or override compiler, linker, and other tool invocations |