🔨 Code | |
---|---|
📝 Docs | |
🧪 Tests | |
📦️ Package |
Arduino Cmake toolchain leveraging arduino-cli
via python wrapper script.
It does not intend to replace the arduino-cli
tool, nor is it intended to be a full featured IDE-like solution.
This project seeks to programmatically scrape up the necessary parts of the compile and link calls from the arduino-cli
tool, set CMake variables, and allow a CMake project to roughly emulate the Arduino compile process.
The goal is to make it possible to leverge the Arduino libraries in a CMake-bound framework, for Arduino supported targets.
If you just want to compile a normal Arduino project from the command line, skip this project and CMake altogether and just use the arduino-cli
as intended.
On the other hand, if you are trying to use a CMake-bound project as the primary development process, you need a way to extract the working compile process from the Arduino IDE and reformat it into a CMake Toolchain.
E.g.: To compile an F Prime project for an Arduino target using Arduino libraries, you need a shim like this to avoid hard dependence on the exact version or Arduino, Arduino Core, and the specific versions of installed libraries.
Most typically, the cmake tooling is included as a git submodule in your project, or it is included as an external project dependency. If you want to install the python wrapper directly, it can be done like this:
pip install arduino-cli-cmake-wrapper
You can also install the in-development version with:
pip install https://github.com/SterlingPeet/arduino-cli-cmake-wrapper/archive/main.zip
During initial development, documentation is sparse. It should be set up on readthedocs when the project is mature.
https://arduino-cli-cmake-wrapper.readthedocs.io/
If you are working on developing the software, head on over to the Developer Notes page for orientation and quick reference. You can also take a look at the Contributing Guide.
This project was not created in a vacuum. Here is a list of projects that came before this one and why they are different or not appropriate.
- Arduino CMake: Original project to compile for Arduino in CMake, abandoned circa 2014
- Arduino-CMake NG: Next Generation Arduino CMake tool, abandoned circa 2018, officially abandoned in 2020
- Arduino CMake Toolchain: Named successor to NG, Abandoned almost immediately thereafter, circa 2020
- Arduino AVR CMake: AVR-only CMake toolchain with support for VScode, intended as a template as explained on the Arduino forum