About
mcu.cmake
is a CMake library/toolchain helping with integrating the chip vendors SDKs into your CMake-based builds.
Goals and considerations
- Make microcontroller projects look and feel as much as possible as any other c/c++ project.
- Use as much as possible of the chip vendor's SDK without requiring any changes to the SDK code.
- Make the CMake code as uniform as feasible between platforms, but allow for platform-specific options and features.
Recommended layout
For single target builds:
- A top-level CMake file for your project that sets the current target.
- A copy of mcu.cmake under the project directory
-
A single build directory
/CMakeLists.txt /mcu.cmake/ /build/
To build the project the developers would execute something like this:
git clone --recursive
mkdir build
cd build
cmake ..
For builds that can build for different targets:
- A top-level CMake file with all general rules
- A copy of mcu.cmake under the project directory
- A per-configuration settings file that is used when creating the build directory
-
A build directory per configuration
/CMakeLists.txt /mcu.cmake/ /target-a.cmake /target-b.cmake /build-a /build-b
To build the project the developers would execute something like this:
git clone --recursive
mkdir build
cd build
cmake -C ../target-a.cmake ..