Skip to content

Latest commit

 

History

History
150 lines (105 loc) · 6.92 KB

README.rst

File metadata and controls

150 lines (105 loc) · 6.92 KB

🎉 Arduino CLI Wrapper for CMake

🔨 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.

🚀 Installation

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

📝 Documentation

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/

🤝 Contributing and Development

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.

🌎 Similar Projects

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.

  1. Arduino CMake: Original project to compile for Arduino in CMake, abandoned circa 2014
  2. Arduino-CMake NG: Next Generation Arduino CMake tool, abandoned circa 2018, officially abandoned in 2020
  3. Arduino CMake Toolchain: Named successor to NG, Abandoned almost immediately thereafter, circa 2020
  4. Arduino AVR CMake: AVR-only CMake toolchain with support for VScode, intended as a template as explained on the Arduino forum