Skip to main content

🎉 Arduino CLI Wrapper for CMake

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]

Metadata

Release files for arduino-cli-cmake-wrapper 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for arduino-cli-cmake-wrapper 0.1.0
File Interpreter ABI Platform Actions
arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl Python 3 none any Details for arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl

Release files / arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl

Download URL arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl
Size 17.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6fc3f9c7057d108586ff449b9373e196f5ccb630d259d0ba1e4e9fc1539c889e
BLAKE2b-256 checksum
How to use checksums
ab520604ded7d7637cea4dccb877288ded896c5e6697e7c8d9c5dde766bfbd5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.12

Security for arduino-cli-cmake-wrapper 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page