The Beetroot Project’s documentation¶
- Overview
- Steps to start using the Beetroot:
- Beetroot data model
- How does the Beetroot work?
- Getting started
- Set up the beetroot
- The simplest Hello World (
01_simplest_hello
) - The Hello World with parameter (
02_parameter_hello
) - Targets composed from components (
03_subprojects_basics
) - Forwarding parameters from dependencies (
04_subproject_pars
) - Code generators, known generated files (
05_codegen_known
) - External projects and the superbuild idiom
- Non-compiled components (e.g. header libraries)
- Subcomponents that influence the parent
- List of most important and complex Beetroot functionalities
- Advanced and convenient handling of targets’ parameters
- Distinction between target parameters and link parameters
- Target definition can make multiple physical targets, each one with different set of parameters
- Special handling for target parameters that describe features
- Target definition file can describe more than one template/target
- Support for CMake code that do not produce targets
- Comprehensive error checking
- External dependencies are external to the Beetroot system
- Automatic superbuild by default
- List of the most visible features of the Beetroot
- Targets are defined inside the function
generate_target()
in target definition file - Dependencies of targets are set inside the function
declare_dependencies()
in target definition file - By default the code you write (targets.cmake) does not depend on your target name
- There is only one type of user-supplied input file that defines the targets
- The role of the CMakeLists.txt is hugely downplayed
- The location of the CMakeLists.txt is no longer relevant
- Targets are defined inside the function