Skip to main content

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

Project description

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

Changelog

v0.0.0 (2022-11-09)

🎉 Other

  • 🎉 Initial Commit. [Sterling Peet]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

File details

Details for the file arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6fc3f9c7057d108586ff449b9373e196f5ccb630d259d0ba1e4e9fc1539c889e
MD5 d6bc4f443e2516a89474336824098592
BLAKE2b-256 ab520604ded7d7637cea4dccb877288ded896c5e6697e7c8d9c5dde766bfbd5a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page