Skip to content

Arduino Cmake toolchain leveraging ``arduino-cli`` via python wrapper script

License

Notifications You must be signed in to change notification settings

SterlingPeet/arduino-cli-cmake-wrapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎉 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

About

Arduino Cmake toolchain leveraging ``arduino-cli`` via python wrapper script

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages