Build and configuration system
The Bridle build and configuration system is based on the one from the Zephyr Project, with some additions.
Zephyr’s build and configuration system
Zephyr’s build and configuration system uses the following building blocks as a foundation:
CMake, the cross-platform build system generator.
Kconfig, a powerful configuration system also used in the Linux kernel.
Devicetree, a hardware description language that is used to describe the hardware that Bridle is to run on.
Since the build and configuration system used by Bridle comes from the Zephyr Project, references to the original Zephyr Project documentation are provided here in order to avoid duplication. See the following links for information about the different building blocks mentioned above:
Application Development is a complete guide to application development with Zephyr, including the build and configuration system.
Build System (CMake) describes in-depth the usage of CMake for Zephyr-based applications.
Kconfig Configuration contains a guide for Kconfig usage in applications.
Set devicetree overlays explains how to use devicetree and its overlays to customize an application’s devicetree.
Bridle additions
Bridle adds some functionality on top of the Zephyr Project build and configuration system. Those additions are automatically included into the Zephyr Project build system using a Zephyr Build Configuration CMake packages.
You must be aware of these additions when you start writing your own Bridle applications.
Bridle provides an additional set of
*.cmake
module files that are automatically included when using the Zephyr Project CMake package in theCMakeLists.txt
file of your application:find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
Also it is possible and the default use case to using the Bridle CMake package (that automatically includes the Zephyr Project) in the
CMakeLists.txt
file of your application:find_package(Bridle REQUIRED HINTS $ENV{BRIDLE_BASE})
Bridle allows you to create custom build type files instead of using a single
prj.conf
file.