Skip to content

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